RRoy | NPC | 创造力: | 帖子: | 发消息 | 串个门 | 加好友 | 打招呼
2022-5-25 17:53:46 [显示全部楼层]
6974浏览
查看: 6974|回复: 4

用ATtiny85自制一个BCD手表

[复制链接]

qw2.jpg

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

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

qw3.jpg

qw4.jpg

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

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

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

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

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

如果要从设置模式中出来,再次长按按钮,在长按之后,它将正常显示时间。
第2步:PCB设计
qw7.jpg



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

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

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

qw8.jpg

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

qw9.jpg

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

Github链接:https://github.com/vishalsoniindia/BCD-Watch
第3步:订购PCB
可以在网上订购PCB,然后上传的gerber文件,同样可以在GitHub仓库页面获取。
第4步:焊接PCB的正面
qw10.jpg

qw11.jpg

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

焊接完LED后,接着焊接ATtiny85。首先,先焊接ATtiny85的一条“腿”用来固定,然后焊接了其他7的针脚。表盘上的按键也是这样焊接上去的。
第5步:充电和LDO
qw12.jpg

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

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

qw13.jpg

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

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

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

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

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

qw15.jpg

qw16.jpg

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

用超级胶水来固定type - C的位置,这样它就能牢固地固定在位置上。
第7步:熔断设置
qw17.jpg

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


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

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

qw18.jpg

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

qw19.jpg

打开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

qw20.jpg

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

qw21.jpg

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

qw22.jpg

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

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

qw23.jpg

qw24.jpg

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

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

qw26.jpg

红灯表示正在充电。

qw27.jpg

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

第10步:表带
qw28.jpg

qw29.jpg

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

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

原项目作者: vishalsoniindia

译文首发:DF创客社区
开源项目,转载请务必注明项目出处与原作者信息



手表系列回顾

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

qw30.jpg


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

qw31.jpg


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


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

qw33.jpg




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

qw34.jpg




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

qw35.jpg



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


qw36.jpg


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

qw37.jpg



BCD-Watch-main.zip

7.08 MB, 下载次数: 15

白凡  高级技师

发表于 2022-5-29 08:54:04

6666666!膜拜巨佬!
回复

使用道具 举报

 初级技匠

发表于 2022-6-9 15:15:14

这个不戳                 
回复

使用道具 举报

小企鹅  高级技师

发表于 2022-6-25 07:42:51

厉害厉害
回复

使用道具 举报

 初级技匠

发表于 前天 19:25

最近整的点阵手表挺多的啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail