大数跨境
0
0

用ATtiny85自制一个BCD手表

用ATtiny85自制一个BCD手表 DF创客社区
2022-05-25
3
导读:又一个硬核手表项目来了!

【点击上方「蓝字」关注DF创客社区,一起成为技术颜控】

老朋友应该知道,我们之前推荐过很多手表相关的项目(文末有合集),大家反响也还不错。

这周我们再来推荐一个BCD手表项目。


什么是BCD?

BCD的全称是Binary-Coded Decimal,用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。

由于我们生活中的手表大都是十进制的形式的,二进制的这种独特的时间表示方式普通人比较难以理解,可能需要一些时间来反应转换,所以显得更“极客”一点。

第1步:功能介绍

面板上有一个按键,当我们按下这个按键后,手表会以一秒钟的延迟显示小时和分钟,如图所示:

当你长按按钮时,手表进入设置模式,首先,小时指示灯将闪烁,表示它处于小时设置模式,可以通过按下按钮增加数值。

当你再次长按按钮时,它将进入分钟设置模式,分钟指示灯将开始闪烁。按下按钮可以增加分钟数。

如果要从设置模式中出来,再次长按按钮,在长按之后,它将正常显示时间。

第2步:PCB设计


首先,在kicad软件中设计原理图,使用ATtiny85作为我们的控制器。

ATtiny85的引脚不多,所以这边使用了74HC595移位电阻,它增加了LED的引脚。这边我们添加了一个按钮来显示时间和设置时间。充电方面,我们使用了一个TP4056电路,它可以处理锂电池的充电问题。

做完原理图后,把它放在PCB上,可以看到PCB是圆形的,上面有两个槽,这个槽是用来插入我们手表的皮带的。

Kicad有一个PCB的3D浏览器,所以我们可以验证我们的PCB会是什么样子,所有的元件和通孔都放在正确的位置。我们可以导出这个stl文件,以便在3D建模中进一步使用。

所有的PCB文件都是开源的,可以在GitHub页面下载。

Github链接:https://github.com/vishalsoniindia/BCD-Watch

第3步:订购PCB

可以在网上订购PCB,然后上传的gerber文件,同样可以在GitHub仓库页面获取。

第4步:焊接PCB的正面

首先,我们焊接LED和电阻。为了焊接LED,先焊接LED的一条“腿”,然后再焊接LED的另一条“腿”,这个方法适用于所有SMD元件。

焊接完LED后,接着焊接ATtiny85。首先,先焊接ATtiny85的一条“腿”用来固定,然后焊接了其他7的针脚。表盘上的按键也是这样焊接上去的。

第5步:充电和LDO

对于充电电路,这边使用了TP4056,这是一个充电集成电路,它可以处理锂电池和锂离子电池的恒流充电。

在这里,我们做了魔改,把TP4056集成电路从模块上拆下来,还有额外的元件,像渐变电阻和LED。可以稍微节省点购买新IC的费用。

然后我们把TP4056电路焊接在PCB上,这里还使用了一个LDO,把电池电压调节到3.3v,驱动ATtiny85和移位电阻。

第6步:移位电阻(74HC595)

在这里犯了一个错误,没有检查集成电路的焊盘,并且使用了错误的移位电阻的脚印。

这里使用的是74HC595移位电阻。

所以我决定把通孔移位电阻的脚分开来进行焊接。这对我来说是可行的,不过还是想在下一个版本中,改变一些来减少尺寸。


我们先在PCB上焊好了type - C的接口,会让焊接更加容易。

用超级胶水来固定type - C的位置,这样它就能牢固地固定在位置上。

第7步:熔断设置

这是连接BCD手表PCB和Arduino作为ISP的引脚,如果你不知道Arduino作为ISP,可以看这个视频:

要设置熔断位,首先从Github页面下载文件夹:

Github: https://github.com/vishalsoniindia/BCD-Watch

打开文件夹,进入fuse文件夹,在fuse文件夹中点击顶部栏,如图所示,输入cmd,打开命令终端。

打开cmd.txt文件并复制第一行,将其粘贴到命令终端。如果你看到fuse OK,说明成功了。

复制cmd.txt文件中的第二行,粘贴到命令终端,你将再次看到fuse ok,这意味着你的控制器现在被设置为1Mhz

第8步:上传代码

在同一个文件夹中,你会发现Attiny85_link.txt文件,复制文件中给出的链接或从下面复制。

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


打开Arduino IDE,进入文件,然后进入“首选项”,将链接粘贴到额外的板卡管理器部分。用逗号", "分隔其他链接。

进入工具——开发板管理器,安装ATtiny85

打开代码,进入工具,在这里选择板和处理器为ATtiny85。时钟应该是1Mhz,连接到Arduino的COM端口为ISP。

转到代码页面,点击使用编程器上传。

在上传代码后,手表将显示错误数值,断开ISP,将其连接到外部电源,并按下按钮,然后一切正常。

第9步:连接电池

这边用一个500mAh的电池连接到LDO的输入电容上,如图所示。

红灯表示正在充电。

在验证完毕之后,我们可以把电池用胶水固定住,虽然这暂时不是一个稳定的解决方案,但是有效的,以后可以考虑用环氧树脂固定。

第10步:表带


可以自己找一对表带来装一下!

原文链接:https://www.instructables.com/BCD-Watch-Binary-to-Decimal/

原项目作者: vishalsoniindia

译文首发:DF创客社区

开源项目,转载请务必注明项目出处与原作者信息



硬件军火库


点击了解详情👆


大家有什么想说的或者是对文章翻译的指正,欢迎在下方留言

项目中涉及的代码,如不方便到作者GitHub仓库下载的,可以在点击“阅读原文”到社区论坛下载!




 手表系列回顾 



▼ 开源DIY墨水屏手表!外观可盐可甜,无线蓝牙计步闹钟一应俱全!


点击阅读👆


▼ 用ESP32做一个带有200个LED的物联网手表


点击阅读👆


▼ IO Watch: Arduino UNO 制造的可编程手表


点击阅读👆


▼ DIY一款既实用又时尚的二进制手表


点击阅读👆



▼ 复刻卡西欧F-91W!不过,我比较大。


点击阅读👆


▼ “新年又给自己做了一块新手表!”


点击阅读👆


▼ 电子墨水屏手表——一个至今还没有完工的项目


点击阅读👆


▼ 致敬稚晖君?自制一款太空人主题的透明手表!


点击阅读👆
【声明】内容源于网络
0
0
DF创客社区
我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
内容 1282
粉丝 0
DF创客社区 我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
总阅读2.1k
粉丝0
内容1.3k