注:圣诞节马上就要到了,作为一个创客or极客,我们送出的圣诞卡片也要与众不同一些……
可以闪烁并发出声音的节日贺卡总是能够吸引我们。图中这个DIY贺卡就是我们用ATtiny13A和一些LED灯制作的极客版圣诞贺卡。按下上面的按钮,圣诞树上的灯就会闪闪发光。今年我们就把这样的卡片送给了朋友和家人们。制作这个贺卡的过程充满了乐趣。这个教程解释了我们的制作过程,还有一些开源的文件供您制作使用。
第一步:硬件—ATtiny13A威廉希尔官方网站
图和PCB是用Cadsoft Eagle的免费软件制作的。可以在谷歌项目代码网页上下载最新版的设计文件和固件。
AVR ATTINY-13A是一个小型的ATMEL ATtiny13A微型控制器它是威廉希尔官方网站
的核心。其中一个引脚 (PWM)用来点亮灯泡,其他的引脚大多数是用来编程和提供电源的。 你也可以用555定时器来得到相似的效果,或者你也可以分立这些原件。总之,我们的目标是学习一下新的微控制器家族,然后让破解变得更简单一些。
ATtiny需要一个10K的上拉电阻(R1),以保持复位引脚高位状态。还需要一个微型触控开关(S1),通过短暂地连接接地复位引脚来重启ATtiny。A0.1uF的电容(C1)要对电源的芯片进行消耦处理。
第二步:硬件—编程和电池
ATtiny单片机是通过一个6针编程在系统编程连接器(ISP)中编程的。ISP的头朝向卡的背面。我们做了一个编程探头,这样就不用在板上再焊接一个镇头了。
电源由PCB背面一个3伏20毫米的纽扣锂电池提供(BAT1)。电池盒应该适用于2025或者2032的纽扣电池。另外,ATtiny可能会在一个电压范围内工作,最低是1.8伏。
第三步:硬件—圣诞树LED灯
我们使用的一闪一闪的小小圣诞树灯是0805表面贴片的发光二极管(LED1-10)。每个LED都有限流电阻(R3-12)。我们在开发过程中使用390OHM电阻,3毫安3伏的和8毫安5伏的。所有的10个LED灯用电池供电总共需要30毫安。
对于ATtiny的引脚来说,30毫安的电流进出有点太多了。所以,要增加一个NPN晶体管(T1)来转换LED灯的接地连接。另外,晶体管也需要一个基极电阻(R2),以限制从单片机引脚中流出的电流。
LED灯需要以正确的方向进行连接才能保证点亮。通孔LED通常有一个较长的引线,它指示电源正极(阳极)。贴片LED(SMD LED)有一个绿色的边沿,有的在背面有一个箭头,它指示接地连接(阴极)。如图中显示了每个LED的正确方向,接地连接应当如箭头所示的指向。
第四步:硬件—PCB
我们使用小孔、一些零部件和丝网来创造卡片上的圣诞主题。这是我们的第一次尝试,可能以后我们每年都会把它作为一个节日传统而时时更新做法。最终的PCB板上面,在圣诞树部分应该有明显的银色小孔,在原版上这些小孔还不够大,你在做的时候可以再大一些。另外,我们删除了年份数字,这样的话,如果这张卡片没有在今年圣诞节及时送出,还可以明年接着用。(哈哈真是节省)
这是一个两层的PCB板,两面都有零部件在上面。我们从前面开始,把微型控制器(IC1)、开关(S1)等较大的部件先焊接上去。然后,再加上电阻和电容这些无需电源的部件。电池盒安装在PCB板的后面,我们最后再安装电池盒,这样在我们焊接PCB板前面部分时,板的表面会保持平整且稳定。
如果你是自己动手焊接PCB板,请确保你有尖头镊子来取用零部件。同时,你还需要在焊接时保持它的熔化状态。另外,你需要铜灯芯来清理多余的焊锡。其他的部分,我们用的是蓝胶(Blu-Tack)
第五步:固件
固件部分是用开源的C语言AVR-GCC编译器和AVRStudio完成的。你可以在谷歌项目代码页面中下载到最新的设计文件和固件。用6针ISP编程头和STK500或者USBtinyISP来对固件进行编程。从另一个侧面来说,我们真的对用开源编译器来完成这个项目感到兴奋。
当威廉希尔官方网站
接通电源时,ATtiny会运行一个简单的程序,这样就可以点亮圣诞树灯。当程序完成时,芯片将休眠,直到它的按钮被重新按下或者通过更换电池来复位。
调光程序使用软件脉宽调制来进行LED灯的明暗调节。ATtiny 13A有PWM硬件,但是ISP的输出引脚已经被占用了。其实和其他功能程序共享一个程序引脚也是可以的,但是我们这次不准备这样做。
很多单片机可以在一个引脚上通过改变电流来激活。但是ATtiny不同,当程序完成后,芯片将进入永久休眠,按下按钮复位ATtiny可以使程序重启。
第六步:更多选择
卡片的制作还可以再多元化一点,比如使LED灯变色,增加多个LED通道,增加节日祝福的声音,使用电容式触摸感应,增加液晶屏,使用电子纸,把威廉希尔官方网站
板切割得更有节日气氛一些(比如做成圣诞树形状)。这些你都可以自己在原版的基础上尝试。
享受DIY的快乐吧!过一个极客圣诞节!MERRY CHRISTMAS!
下面是演示视频:
7