终极二进制手表

53701年

556

111

简介:终极二进制手表

简介:瑞典电子爱好者

最近我被介绍到二进制表的概念,并开始做一些研究,看看我是否可以为自己制作一个。然而,我无法找到一个既实用又时尚的现有设计。所以,我决定完全从零开始创造我自己的设计!


供应:

这个项目的所有文件:

Arduino代码的库可以从GitHub下载这里:

M41T62 RTC图书馆

FastLED图书馆

低电力库

第一步:创意!

我最近偶然发现了以下视频:

DIY二进制手表

上面的视频展示了一个基本的自制二进制表。我不知道有这样的东西存在,但在做了一些深入研究二进制手表的主题后,我很快意识到有大量不同的设计!我想为自己建造一个,但找不到我喜欢的设计。我发现的二进制表缺少很多功能,看起来也不是特别好。所以,我决定完全从头开始设计自己的游戏!

第一步是为我的设计建立标准。这就是我想到的:

  • 二进制RGB接口
  • 时间显示(具有非常精确的计时功能)
  • 日期显示
  • 秒表功能
  • 报警功能
  • 电池寿命至少2周
  • USB充电
  • 软件易于定制的用户
  • 一个干净简单的设计

这些标准成为整个项目的基础。下一步就是弄清楚我想要的手表的功能!

第二步:一些二进制手表理论

计划很简单。二进制手表将像普通手表一样运行,除了接口将是二进制的,特别是BCD(二进制编码的十进制)。BCD是一种二进制编码,其中每个十进制数字由固定的位数表示。我需要4位来表示0-9中的一个数字。作为一个标准时间格式,我需要4个数字。这意味着我总共需要16位,这将由16个led表示。

一旦你习惯了,用BCD读时间是很容易的。表底部的一行代表最低有效位(1),表顶部的一行代表最高有效位(8),每一列代表表中的一个数字时间格式。如果LED是ON,则计算该值。当有LED灯灭时,忽略该LED灯。

要读取第一个数字,只需将第一列(最左边)中所有激活的led对应值相加。对从左到右的其他数字做同样的处理。你现在已经在BCD上读到了时间!

这一原则也适用于手表上的其他功能。使用RGB led将有助于使用不同颜色区分不同的功能和模式。颜色由用户选择,可以很容易地调整到他们喜欢的任何调色板。这使得用户可以轻松地浏览这些功能而不会感到困惑。

下一步是创建框图!

第三步:开始工作

作为任何典型的电子项目,框图是早期设计阶段必不可少的一部分。使用这些标准,我设法将上面的框图组合在一起。图中的每个块表示电路中的一个函数,箭头表示函数之间的关系。整个框图很好地概述了电路是如何工作的。

下一步是开始为框图中的每个块的单个组件做决定!

步骤4:选择组件

在这个电路中有相当多的元件。下面,我挑选了一些最重要的,并解释了我为什么选择它们。

发光二极管的

对于二进制接口,选择相当简单。我知道我想要使用led来显示,并发现我需要16个led(在4×4网格中)来显示尽可能多的信息。在我研究完美LED的过程中APA102浮现了出来。它是一个非常小的(2mm x 2mm)可寻址的LED,具有广泛的颜色,而且相当便宜。尽管我以前从未与他们共事过,但他们似乎是这个项目的完美人选,所以我决定使用他们。

的微控制器

微控制器的选择也很简单。我有很多使用Atmega328P-AU并且非常熟悉它的特性。这与Arduino Nano板中使用的微控制器相同。我知道可能有一个更便宜的微控制器我可以用,但知道Atmega328所有Arduino库都将得到充分支持,这是为本项目选择它的一个重要因素。

实时时钟(RTC)

RTC的主要要求是准确性。我知道手表没有任何互联网连接,因此无法通过互联网连接重新校准,用户需要手动重新校准。因此,我想使计时尽可能准确。这个M41T62RTC有一个最高的准确性,我可以找到(±2ppm,相当于±5秒每个月)。结合高精度I2C兼容性和超低电流消耗使该RTC成为该项目的一个很好的选择。

直流-直流提升转换器

选择DC-DC升压转换器IC是简单地通过查看电路,并计算出所需的电压和电流。在低电压下运行电路会降低电流消耗,但我不能低于4.5V(在16MHz时钟下的最小微控制器电压),也不能高于4.5V (RTC的最大电压)。这意味着我必须以精确的4.5V运行电路,以便在推荐的规格范围内运行元件。我计算出电路的最大电流不会超过250mA。因此,我开始寻找一种升压转换器,可以满足要求,并很快发现TPS61220. 这个TPS61220需要最少的外部元件,相当便宜,能够满足电流和电压的要求。

电池

电池的主要要求是尺寸。电池必须足够小,这样才能装在手表外壳内而不会显得笨重。我估计电池不能超过20mm×35mm×10mm。由于这些尺寸限制和当前250 mA的要求,我选择的电池仅限于LiPo电池。我在车上发现了一个“Turnigy nano tech 300mAh 1S”电池Hobbyking我决定用它。

充电电路

除了需要与1S LiPo电池兼容外,对充电控制器没有特别的要求。我发现了MCP73831T这是一个完全集成的充电控制器,专为单电池充电应用。它的特点之一是能够通过外部电阻调整充电电流,我发现这在这个应用程序中相当有用。

脂肪保护

我想包括电压和电流监测,以保护电池免受任何危险的过充和过放电条件。提供这种功能的集成电路数量有限,其中一个较便宜的选择是BQ29700它需要最小数量的外部组件,包括所有必要的保护单细胞LiPo电池。

既然组件已经选定,就该创建原理图了!

第五步:原理图

通过使用Altium Designer,我能够使用每个组件数据表中的建议将上面的示意图组合在一起。该示意图被划分为不同的块,以使其更具可读性。我还添加了一些重要信息的注释,以防其他人想要重新创建此设计。

下一步是在PCB上布置示意图!

步骤6:PCB布局

PCB布局是这个项目中最具挑战性的部分。我选择使用2层PCB,以保持PCB制造成本到最低。我选择使用标准尺寸的36毫米的手表,因为这似乎很适合led。我增加了一些1mm的螺丝孔,将PCB固定在手表外壳上。我们的目标是通过将所有组件(当然除了led)放置在底层来保持一个干净和好看的设计。我还想使用绝对最小数量的通道,以避免在顶层有可见的通道。这意味着我必须在一个单层上布线所有的线路,同时确保电路的“噪声”部分远离敏感信号的线路。我还确保保持所有的痕迹尽可能短,把旁路电容靠近负载,使用更厚的痕迹高功率组件,否则遵循所有常见的良好实践的PCB设计。路线安排花了不少时间,但我觉得效果很好。

下一步是为手表外壳创建一个3D模型!

步骤7:3D设计

手表外壳的设计是经过非常传统,经典,手表设计使用融合360。我使用了标准的18mm间距的表带,使手表与其他多种表带兼容。PCB的切口设计比PCB本身大0.4毫米,以适应任何制造误差。我包括一些螺钉柱安装的PCB和一个小的边缘PCB lay上。我确保将PCB凹进一个有限元毫米从顶部,以避免led的尖锐边缘卡在衣服上。外壳的高度完全由电池的厚度决定。其余的外壳被设计成简单的好看的圆角和抛光角。我必须保持设计的3d打印友好,这样我就可以在家里3d打印它,没有任何支持材料。

现在硬件已经完成,是时候开始开发软件了!

第八步:准则

我开始编写代码时包含了所有必要的库。这包括用于与RTC通信和驱动led的库。之后,我为每个模式创建了单独的函数。当用户按下按钮切换模式时,程序调用对应于该模式的功能。如果用户在规定的时间内没有按下按钮,手表就会进入睡眠状态。

睡眠模式是由所有的led衰落,直到他们完全关闭。使用睡眠模式大大增加电池寿命,并保持led关闭时,他们不使用。用户按上面的按钮即可唤醒手表。手表醒来后会检查电池电量,确保不需要充电。如果需要充电,led会在显示时间前闪烁几次红色。如果电池低于临界水平,它根本不会打开。

剩下的时间里,编程会让其他模式尽可能直观。我认为,让同一个按钮负责所有模式下的相同功能将是最直观的。经过一些测试,这是我提出的按钮配置:

  • 顶部按钮按下:“显示时间”、“显示日期”、“秒表”和“闹钟”模式之间的唤醒/周期。
  • 顶部按钮保持:进入“设置时间”、“设置日期”、“启动秒表”或“设置报警”模式。
  • 底部的按钮按下:增加亮度。
  • 底部按钮保持:进入“选择颜色”模式。

底部按钮总是负责亮度和颜色的调整,不管你在什么模式。当用户进入“选择颜色”模式时,led开始循环使用所有可能的RGB颜色。用户可以暂停动画,并为特定模式选择他们喜欢的颜色(显示时间用红色,显示日期用蓝色,等等)。颜色是为了便于用户自定义,以帮助他们区分不同的模式。

现在代码已经完成了,是时候把它上传到微控制器了!

步骤9:编程

几乎是焊接和组装的时间,但在那之前,我需要为微控制器编程。我遵循了这个教程

将引导加载程序刻录到ATmega328P-AU SMD上

如何刻录引导加载程序,并使用常规Arduino Uno作为编程器来编写微控制器。

第一步是通过上传“ArduinoISP”示例代码,将Arduino Uno变成一个ISP。我使用了一个面包板和一个编程插座,并连接了教程中的原理图。之后,我可以通过在Arduino IDE中按下“burn bootloader”将bootloader刻录到微控制器上。

一旦微控制器有了引导加载程序,我就简单地将现有的微控制器从Arduino Uno上移除,使用Arduino Uno板作为串行适配器的USB,将代码上传到编程插座中的微控制器上。上传完成后,我可以开始焊接过程。

下一步是收集所有的组件,并将它们焊接在一起!

第十步:焊接

焊接过程分为两部分。首先,底层需要焊接,然后是上层。

我用胶带将手表PCB固定在几块原型板之间。这确保了PCB在焊接过程中不移动,这是非常重要的。然后我将焊接模板放置在PCB上,并使用大量的锡膏覆盖所有的焊锡垫。我接着用一把薄镊子把所有组件放在相应的垫子上。然后我用热枪回流焊所有的组件到位。

当底层焊接时,我给了它一个快速的视觉检查,以确保焊接是成功的。然后我把电路板翻转过来,在另一边重复焊接过程,这次是所有的led。这是非常重要的,不过热的板焊接时,最上层,因为所有的组件在底部有跌落的风险。值得庆幸的是,所有的组件都在原地,在使用常规烙铁将按钮焊接到位后,PCB完成了!

现在是最后集合的时候了!

步骤11:组装

集会非常简单。我将电池连接到PCB,并将电池和PCB放在3D打印外壳内。我接着在PCB每个角落的安装孔中拧入四颗螺丝。之后,我用18毫米的弹簧条系上表带,手表就完好无损了!

步骤12:结论和改进

这款手表如预期的那样工作,我对它的结果非常满意。到目前为止,我还没有遇到任何问题,在使用了一个星期后,电池几乎仍然充满电。

我将来可能会给这款手表增加其他功能。由于USB端口连接到微控制器,固件可以随时更新新功能。不过现在,我将继续使用这款手表,看看它在长时间使用后的表现如何。

如果你对这个项目有任何想法、评论或问题,请在下面留下。你也可以把它们发送到aptechnologies.se@gmail.com。

钟比赛

第一名
钟比赛

第一个分享

    建议

    • 单片机竞赛

      单片机竞赛
    • 自动化竞赛

      自动化竞赛
    • 让它发光竞赛

      让它发光竞赛

    111年的讨论

    0
    Jorge224

    问题16天前

    Seu project é incrível!不可能有巴西人在eletrônica são caros e a aquisição de muitas coisas é complicada para pessoas que não代表uma empresa。我们的项目是você,我们的项目是comercialização,我们有什么想法可以向巴西出口吗?

    0
    uniplast21

    20天前

    如果使用BCD,则不需要超过13个LED来显示时间。最左边的小时数字永远不会大于2,最左边的分钟数字永远不会大于5。这使得3个LED永远不会用于显示时间。

    0
    APTechnologies

    19天前回复

    显示时间或日期时,这是正确的。但是当使用秒表功能时,所有LED都会被使用,因为它在最左边的列中计算分钟数。显示器允许任何需要所有数字的自定义功能,加上4x4 LED栅格的对称性,在我看来真的很不错:)

    0
    uniplast21

    19天前回复

    啊,好的。我不知道这块表也有秒表功能。对不起!在这种情况下,所有16个LED都是必需的。快速问题:为什么不使用需要外部时钟源的RTC?我一直在修改您的设计,以供我个人使用,并发现内置晶体的RTC无法获得比+-2ppm更好的精度。对于没有互联网连接的手表,我认为准确度非常关键,因为它们不能自动重新校准。您可以获得由外部振荡器控制的RTC,该振荡器具有更高的频率精度,甚至在温度范围内。

    0
    APTechnologies

    18天前回复

    我没有意识到你可以得到更好的准确性,因为没有办法搜索它在Digikeys参数搜索。但你说得对,准确性很重要。将研究它的一个潜在的版本2!

    2
    APTechnologies

    5周前的回复

    谢谢你!
    我目前正在进行版本2的改进。该设计完成后,即可购买。

    1
    布鲁诺普尔酒店

    5周前的回复

    太棒了!你认为选择拳击的颜色有可能吗?

    0
    APTechnologies

    5周前的回复

    我打算有几种颜色可供选择,可能是白色和黑色。如果你需要自定义颜色,请发邮件给我aptechnologies.se@gmail.com我看看我能做什么!

    0
    leo_goyette

    五周前

    谁为你做的PCB ?是昂贵的吗?

    0
    APTechnologies

    5周前的回复

    我自己设计PCB,并从制造商PCBWay订购。只有几美元可以买到其中的几个。

    0
    leo_goyette

    5周前的回复

    谢谢你的回复。
    他们花了多长时间把pcb给你?我想你对质量满意吧?

    0
    APTechnologies

    5周前的回复

    它通常需要大约一个星期的快速运输选项。我从未对他们的质量有过任何问题。

    0
    righthandeng

    问题5周前在第一步

    我妻子为我找到了这篇文章。非常棒的手表。我是一个做很多Arduino开发的EE。你能卖给我一个PCB和锡膏的gerber文件,这样我就可以订购锡膏模板了吗?手表外壳也一样吗?

    0
    marcioy

    5周前在步骤12

    这张照片有问题。
    现在几点了?26h 04min还是20h 64min??

    0
    APTechnologies

    5周前的回复

    照片里是"约会模式"所以它显示26-04(4月26日)。它应该以不同的颜色显示,以区别于时间模式。我的颜色选择很糟糕。

    0
    marcioy

    5周前的回复

    哦好。非常感谢! !