魔镜不仅可以告诉皇后她和白雪公主哪个漂亮,也可以告诉你无限长得什么样儿。“无限是什么?”下次如果有人问你,你可以DIY一个魔镜给TA一个直观的映像。
和你常见的无限魔镜有那么一点点的不一样,这个魔镜的背镜用的是一块压克力镜子,上面打了8*8阵列的孔,每个孔中都安上了LED灯,这些LED灯接在一起通过控制器控制。
我原来有做过用玻璃镜子做魔镜的背镜的,这一次做的和上次做的差不多,而且压克力板比玻璃的更好打孔,而且外面不需要装LED灯,所有的LED都装在背镜上,效果看起 来就像是一颗一颗的星星漂浮在背镜上。
这个的制作灵感来自我做的一个 八角形 的魔镜,里面有一圈LED灯,那个的悬浮的效果非常漂亮,所以我就打算做一个小一号的来展示一下。(有兴趣的同学可以去看看那个 八角形 的,也很赞!) 做框架在这里就不赘述了。
固件是为PIC18F1320单片机和TPIC6C596功率移位寄存器编写的,是一个很简单的程序,只有四个显示模式和两个改变显示模式和显示速度的开关。
1 工具和材料
工具
● 烙铁
● 热胶枪
● 电钻
● 5mm钻头,钻LED的孔
● 美工刀
材料
电子部件
○ PIC18F1320
○ 18针插座
○ TPIC6C596移位寄存器
○ 16针插座
○ 5mm LED,64个,颜色无所谓,我用的是白色
○ 10kΩ,1/4w电阻3个
○ 220Ω电阻,8个,不同颜色的LED需要的阻值不一样(用大阻值电阻是为了限制LED的电流,魔镜里面的LED不能太亮。)
○ 1 uF电容
○ 0.1uF电容
○ x2按钮
○ 5v,1A直流电源
电路板
○ 单芯绞线
○ 万能电路板
框架
我用的是100mil的聚苯乙烯板, 不过亚克力(Acrylic)板和Masonite纤维板也不错
2 制做框架
框架所需部件的说明图
如图,内壁是不用打孔的。框架是用四个梯形拼合起来的
内壁垂直于框架表面组装起来
最上面的那个孔是过直流电源线的,下面两个孔是放按钮的
这里就不赘述框架的制作过程了,大家看图就能搞定。注意第一张图是当时做另外一个LED魔镜的,这个的外壁需要宽上个1/4-1/2英寸以便安装LED。
找一个地方安装直流电插座和开关,我一般都是放在角上。把两个按钮开关焊在万能电路板上,然后安装到外壁上打的孔里。如果大家对美观要求高,可以做之前先好好的进行一下外观设计。
为开关钻孔我用的是5/16英寸钻头,然后用美工刀把孔加工得接近方形,最后涂上黑色的颜料,这样开关就比较隐蔽啦。
3 在背镜上打孔
打孔的钻头我用的是5mm的,这个不用太精确的,差不多就行。
买来的丙烯酸镜子上面的保护膜先不要急着撕掉,先在需要打孔的地方做好标记。
像CAD的阵列功能一样,标记阵列成8*8的,然后在丙烯酸镜子的背面也标记上(怎么在背面标记呢?可以用不易干的记号笔,正面标记完了以后,用一张纸在上面贴一下,然后贴 到背面就OK了)。
找个平一点的地方或者工作台开始打孔,打孔之前需要稍微注意点,确保不会有颗粒或者其他什么的会把你的镜面给划花了。
如果各位同学有钻台当然最好啦,没有也没什么关系,咱只是DIY不是?反正涉及到钻孔操作还请小心谨慎为好,安全第一,慢工出细活。
4 安LED灯
接下来就是要在丙烯酸镜子上安上LED灯阵列啦。
完工图先睹为快
8*8的LED阵列是通过多路复用控制的,主要就是每列上的LED的阴极是连在一起的,每行上的LED的阳极是连在一起的。这种接线方法中,一列接地一行供电就可以控制单个的LED了。更多有关这种的解释可以问谷歌或者电类行业的同学:)
如有爱钻研的同学可以查看 应用移位寄存器的LED矩阵 ,对LED阵列讲得很清楚
电路图
如图所示,用尖嘴钳把LED的两个腿掰弯(好吧,我XE了,我想歪了,我真的不知道除了掰弯还有什么词可以形容这个……)
大家请看,左边的是阴极,右边的是阳极,仔细观察一下,这两条腿不是在一个长度弯的,这是为了方便下面的布线
大家就一行一行或者一列一列的来,不要急。竖着的那一列是阴极,横着的好几排是阳极
阴极的腿是列,阳极的腿是行,安装的时候注意一点不要让不应该碰到的地方相互碰到。
看,最后行和列都是要焊起来的
最后完工的LED背面就是这样的
通常在魔镜中用的LED灯是漫射光的那种(通称草帽LED),但是我手头只有普通的,所以最后安装完了以后,在把保护膜撕掉之前用毛玻璃喷漆喷在LED灯表面来制造散射光的效果(所以说不要先撕掉保护膜)。
5 控制器
在下载的压缩文件里面的第一步里就有控制器的原理图和固件。这里就不详细说明电路是怎么接的了,我的是接在现成的电路板上的,为了省钱省事,也没有用任何的终端或 者连接器而是直接把LED的接线焊在控制电路上的。电路不复杂,相信各位看电路图就能搞定!
电路图
有些图上的ICSP有五针接头,这个随意,可有可没有。
电路焊好了以后,先不要急着接上芯片,用电压表试试没有哪儿短路或者断路啥的。
把下载的压缩文件中的HEX文件写入到PIC里面,或者用里面那个.c文件在MPLAB里自己编辑也行。
最后一步是把按钮开关接到电路板上去,还记得前面在外壁上给开关打了孔的么?要确保开关能够对得上外壁上的孔。开关的一端接地,一端接再PIC上,具体的可以看电路图。
PS:照照片的时候忘记把电容和有关开关的东西焊上去就照了,所以图上没有,不过电路图和压缩文件里面的原理图上都是有的:)
左边的是TPIC596,右边的是PIC
图上可以看到按钮开关接出两根线来,上面那个是接地的,下面那个是接在PIC上的。
6 控制器接到LED阵列上
对照原理图把电阻和LED的行接起来,把列接到TPIC6C596上(看大图吧同学们!)
线什么的都焊好了以后,先接电源看看能正常运行吧,如果有哪个不亮就要检查电路了。如果工作正常的话,恭喜各位,可以继续啦。
首先用擦窗器或者其他的什么把镜子两面都擦干净,任何手指印或者脏东西都不要留下。
已经装好LED阵列的镜子安装到内壁里面去。
用没弹力的胶带把内壁和镜子贴起来,中间不要留任何孔隙。
镜子的四边都用胶带和内壁贴在一起。
镜子安装好了以后,用热胶枪把开关和直流电插孔胶在已经打好的那几个孔上。
用热胶枪再把电路板也粘到外壁上去。
7 固件
固件应该是在第五步就写入到PIC里面去的,然后才能把PIC装到电路板上。
压缩文件里面有固件的编码,有注释的,一点儿都不难懂的:)
基本上,每一个显示模式都是一帧一帧的画面来组成的,每一帧又是由一个数组来控制的,比如说GraphicA1是GraphicA的第一帧。一个数组有9个元素,第一个元素GraphicA1[0],值为0*00,每一个元素都是要写入到列中的数据。
每一次只有一列是接通的,也只有一个行的元素是接通的。每一行的显示会比上一个显示有一点点的延迟,这样就会产生“无限”的视觉效果。在FrameCounter = FrameCounterMax之前会重复的显示同一帧,当FrameCounter = FrameCounterMax之后就会显示下一帧,然后不断的继续、再循环。
压缩文件中有四个显示模式,三个比较简单的只有不到6帧,有一个比较复杂的有70帧。
有编程基础的同学可以自己再往上加,很简单的,只需要在函数里面再加上case X:语句就行了,我已经在可以加语句的地方做了注释了。
8 完工
最后王婆卖瓜一下,希望各位喜欢!