当前位置:首页 > 公众号精选 > OFweek维科网
[导读]我最近了解了二进制手表的概念,并开始做一些研究,看看我是否可以为自己构建一个。但是,我无法找到既实用又时尚的现有设计。所以,我决定完全从头开始创建自己的设计!Button_V1.f3dWatch_Body_w_Buttons_V1.f3dBOM_Binary_Watch.xlsB...


我最近了解了二进制手表的概念,并开始做一些研究,看看我是否可以为自己构建一个。但是,我无法找到既实用又时尚的现有设计。所以,我决定完全从头开始创建自己的设计!
  • Button_V1.f3d
  • Watch_Body_w_Buttons_V1.f3d
  • BOM_Binary_Watch.xls
  • Binary_Watch_V9.ino
补给品
此项目的所有文件:Arduino 代码的库可以从这里的 GitHub 下载:
  • M41T62 RTC 库
  • FastLED 库
  • 低功耗库
第1步:设计建立标准
  • 二进制RGB接口
  • 时间显示(具有非常准确的计时)
  • 日期显示
  • 秒表功能
  • 报警功能
  • 电池寿命至少 2 周
  • USB充电
  • 用户可轻松定制的软件
  • 干净简洁的设计
这些标准成为整个项目的基础。下一步是弄清楚我希望手表如何运作!第 2 步:一些二进制观察理论计划很简单。除了接口是二进制的,特别是 BCD(二进制编码的十进制)外,二进制手表的操作就像普通手表一样。BCD 是一种二进制编码,其中每个十进制数字由固定位数表示。我需要 4 位才能表示 0-9 的数字。对于标准hh:mm时间格式,我需要其中的 4 个数字。这意味着我总共需要 16 位,由 16 个 LED 表示。一旦你习惯了,用 BCD 读取时间就很容易了。手表底部的行代表最低有效位 (1),顶部的行代表最高有效位 (8)。每列代表一个hh:mm时间格式的数字。如果 LED 亮起,则计算该值。如果 LED 熄灭,则忽略它。要读取第一个数字,只需将第一列(最左侧)中所有激活的 LED 对应的值相加即可。从左到右对其他数字执行相同操作。您现在已经阅读了 BCD 时间!手表上的其他功能也遵循这一原则。使用 RGB LED 将有助于区分使用不同颜色的不同功能和模式。颜色由用户选择,可以轻松调整为他们喜欢的任何调色板。这使用户可以轻松浏览功能而不会感到困惑。下一步是创建一个框图!第 3 步:开始工作与任何典型的电子项目一样,框图是早期设计阶段的重要组成部分。使用这些标准,我设法将上面的框图放在一起。图中的每个块代表电路中的一个功能,箭头表示功能之间的关系。整个框图很好地概述了电路将如何工作。
下一步是开始为框图中的每个模块的各个组件做出决策!第 4 步:选择组件
结果证明这个电路中有相当多的组件。下面,我挑选了一些最重要的,并解释了我为什么选择它们。
LED
对于二进制接口,选择相当简单。我知道我想使用 LED 进行显示,并发现我需要其中的 16 个(在 4×4 网格中)来显示尽可能多的信息。在我研究完美 LED 的过程中,APA102不断出现。它是一种非常小的 (2mm x 2mm) 可寻址 LED,具有多种颜色,而且相当便宜。尽管我以前从未与它们合作过,但它们似乎非常适合这个项目,所以我决定使用它们。
微控制器
微控制器的选择也非常简单。我在独立应用程序中使用Atmega328P-AU有很多经验,并且非常熟悉它的功能。这与 Arduino Nano 板中使用的微控制器相同。我知道可能有更便宜的微控制器可以使用,但知道Atmega328将完全支持所有 Arduino 库是为该项目选择它的一个重要因素。
RTC(实时时钟)
RTC 的主要要求是准确性。我知道手表没有任何互联网连接,因此无法通过互联网连接重新校准,用户需要手动重新校准。因此,我想让计时尽可能准确。该M41T62 RTC具有最高的准确度的一个,我能找到(±2ppm的这相当于每月±5秒)。将高精度与I2C兼容性和超低电流消耗相结合,使该 RTC 成为该项目的理想选择。
DC-DC 升压转换器
只需查看电路并确定所需的电压和电流,即可选择 DC-DC 升压转换器 IC。在低电压下运行电路会降低电流消耗,但我不能低于 4.5V(16MHz 时钟下的最小微控制器电压),也不能高于 4.5V(RTC 的最大电压)。这意味着我必须在精确的 4.5V 下运行电路,以便在推荐的规格范围内运行组件。我计算出电路的最大电流不会超过250mA。因此,我开始寻找能够满足要求的升压转换器,并很快偶然发现了TPS61220。该TPS61220 需要最少的外部元件,相当便宜并且能够满足电流和电压要求。
电池
对电池的主要要求是尺寸。电池需要足够小,以便它可以安装在手表外壳内,而不会使其看起来笨重。我认为电池不能超过20mm × 35mm × 10mm。由于这些尺寸限制和 250mA 的电流要求,我选择的电池仅限于 LiPo 电池。我发现了一个“Turnigy纳米技术300mAh的1S”电池Hobbyking,我决定使用。
充电IC
除了需要兼容1S LiPo电池外,对充电控制器没有特别要求。我发现MCP73831T是一款完全集成的充电控制器,专为单节电池充电应用而设计。它的功能之一是能够通过外部电阻调整充电电流,我发现这在此应用中非常有用。
锂聚合物保护
我想包括电压和电流监控,以保护电池免受任何危险的过度充电和过度放电情况的影响。提供此类功能的 IC 数量有限,其中一种更便宜的选择是BQ29700 IC。它需要最少量的外部组件,并包括对单节锂聚合物电池的所有必要保护。
现在已经选择了组件,是时候创建原理图了!第 5 步:原理图使用 Altium Designer,我能够使用来自每个组件数据表的建议将上面的原理图放在一起。原理图分为不同的块,以使其更具可读性。我还添加了一些带有重要信息的注释,以防其他人想要重新创建此设计。
下一步是在 PCB 上布置原理图!第 6 步:PCB 布局事实证明,PCB 布局是该项目最具挑战性的部分。我选择使用 2 层 PCB 以将 PCB 制造成本降至最低。我选择使用 36 毫米的标准手表尺寸,因为这似乎非常适合 LED。我添加了一些 1 毫米螺丝孔以将 PCB 固定在手表外壳中。目标是通过将所有组件(当然 LED 除外)放置在底层来保持干净和美观的设计。我还想使用绝对最少数量的过孔,以避免在顶层出现可见的过孔。这意味着我必须在单层上布线所有走线,同时确保电路的“嘈杂”部分远离敏感的信号走线。我还确保所有走线尽可能短,将旁路电容器放置在靠近负载的位置,对高功率组件使用较粗的走线,否则请遵循 PCB 设计的所有常见良好做法。路由花了相当多的时间,但我认为结果非常好。下一步是为手表外壳创建 3D 模型!第 7 步:3D 设计手表外壳是根据使用 Fusion 360 的非常传统、经典的手表设计而设计的。我为表带使用了标准的 18 毫米间距,以使手表与各种其他表带兼容。PCB 的切口设计为比 PCB 本身大 0.4 毫米,以适应任何制造误差。我包括了一些用于安装 PCB 的螺丝柱和一个用于放置 PCB 的小边缘。我确保将 PCB 从顶部凹进一毫厘,以避免 LED 的锋利边缘卡在衣服上。外壳的高度仅由电池的厚度决定。外壳的其余部分旨在通过圆润的边缘和抛光的边角看起来很好看。我确实必须保持设计的 3D 打印友好性,以便我可以在家里 3D 打印它而无需任何支撑材料。现在硬件已经完成,是时候开始开发软件了!第 8 步:代码我通过包含所有必要的库来开始编写代码。这包括用于与 RTC 通信和驱动 LED 的库。之后,我为每种模式创建了单独的函数。当用户通过按下按钮切换模式时,程序会调用与该模式对应的功能。如果用户在指定的时间内没有按下按钮,手表就会进入睡眠状态。睡眠模式由所有 LED 逐渐消失直至完全关闭来指示。使用睡眠模式可大大延长电池寿命,并在不使用时保持 LED 关闭。用户可以通过按下上按钮来唤醒手表。唤醒后,手表会检查电池电量以确保不需要充电。如果需要充电,LED 会在显示时间之前闪烁几次红色。如果电池电量低于临界水平,则它根本不会开启。剩下的时间编程是让其他模式尽可能直观。我认为在所有模式下使用相同的按钮负责相同的功能将是最直观的。经过一些测试,这是我想出的按钮配置:
  • 顶部按钮按下:唤醒/在“显示时间”、“显示日期”、“秒表”和“闹钟”模式之间循环。
  • 顶部按钮保持:进入“设置时间”、“设置日期”、“开始秒表”或“设置闹钟”模式。
  • 底部按钮按下:增加亮度。
  • 底部按钮按住:进入“选择颜色”模式。
底部按钮始终负责亮度和颜色调整,与您所处的模式无关。当用户进入“选择颜色”模式时,LED 开始循环显示所有可能的 RGB 颜色。用户可以暂停动画并为该特定模式选择他们喜欢的颜色(显示时间为红色,显示日期为蓝色等)。用户可以轻松自定义颜色,以帮助他们区分不同的模式。现在代码已经完成,是时候将它上传到微控制器了!第 9 步:编程几乎是焊接和组装的时间,但在此之前我需要对微控制器进行编程。我跟着这个教程
将引导加载程序刻录到 ATmega328P-AU SMD关于如何使用常规的 Arduino Uno 作为编程器来刻录引导加载程序和对微控制器进行编程。第一步是通过上传“ArduinoISP”示例代码将 Arduino Uno 变成 ISP。我使用了一个面包板和一个编程插座,并连接了教程中的原理图。之后,我只需在 Arduino IDE 中按下“Burn Bootloader”,就可以将引导加载程序刻录到微控制器上。一旦微控制器有了引导加载程序,我只需从 Arduino Uno 中移除现有的微控制器,并将 Arduino Uno 板用作 USB 到串行适配器,将代码上传到编程插座中的微控制器。上传完成后,我可以开始焊接过程。下一步是收集所有组件并将它们焊接在一起!第 10 步:焊接焊接过程分为两部分。首先需要焊接底层,然后是顶层。我使用胶带将手表 PCB 固定在几个原型板之间。这确保了 PCB 在焊接过程中不会移动,这一点非常重要。然后我将焊接模板放在 PCB 上,并使用大量焊膏覆盖所有焊盘。我继续使用一对薄镊子将所有组件放在相应的垫上。然后我使用热风枪将所有组件回流焊接到位。焊接底层时,我对其进行了快速目视检查,以确保焊接成功。然后我翻转电路板并在另一侧重复焊接过程,这次是使用所有 LED。焊接顶层时不要使电路板过热非常重要,因为底部的所有组件都有脱落的风险。值得庆幸的是,所有组件都保持原位,使用普通烙铁将按钮焊接到位后,PCB 就完成了!现在是最后组装的时候了!第 11 步:组装组装非常简单。我将电池连接到 PCB 并将电池和 PCB 放置在 3D 打印外壳内。我继续在 PCB 的每个角的安装孔中拧入四个螺钉。之后,我使用 18 毫米弹簧条连接表带,手表就完成了!
第 12 步:结论和改进手表按预期工作,我对它的结果感到非常满意。到目前为止,我没有遇到任何问题,并且在使用整整一周后,电池几乎保持充满电。
将来我可能会为手表添加其他功能。由于 USB 端口连接到微控制器,固件可以随时更新新功能。不过现在,我将继续使用这个版本的手表,看看它在长期使用后如何保持。



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭