大学的最后作品--奇幻魔术棒(摇出你的精彩)
其实,我老早就想做下这个魔术棒玩下,但自己太懒惰(老扯没时间似乎是借口,鲁迅都说过,时间是自己挤出来的,要是找,总是有时间的),一直没做成,只是看看别人做好的图片过过眼瘾,似乎就那么回事情.
那天,我在ouravr中无意中再次看到了有朋友使用mega8来做这个魔术棒,并且看到了比以前更好的效果,甚至可以显示中文文字. 这些视觉刺激让我再次激起要做一次魔术棒的渴望. 当时我正和我徒弟聊天, 禁不住我把这个好玩的东西给了我徒弟看了......
我没有想到徒弟和我一样喜欢这个东西,她强烈要求我做一只给她玩玩...
终于有人欣赏这个东西,加上徒弟已经说了想要,嘿嘿,不要在懒惰了,哈哈,那就开始动手吧! ^_^
花了一个下午时间准备硬件(跟炒菜做饭一样,需要备料): LED灯, 裁减线路板(其实自己用万用板焊接的), MCU, 插座,电阻,电容. 备齐了所有的硬件后开始动手焊接. 线路比较简单,我还是焊接的很仔细,力求一次焊接成功^_^ 最难做的还是那个行程开关,由于没现成的,自己想办法做出来了一个^_^
下午就把线路给焊接完毕,晚上就准备整程序了. 嘿嘿,单片机嘛,当然需要软件来运行才达到你需要的功能撒! AVR就是好啊! 片子内部就有RC振荡器,这样有N个好处:
1.节省了一个晶体和两个电容器
2.内部振荡不会受外部干扰了
3.不使用晶体的一个很大的好处是不怕摔,因为如果说不小心把魔术棒掉到了地上,不至于损坏硬件而不能用了^_^
......
我事先装载了一个演示程序运行了下检查效果,最后效果是摇出: I 心 U. 说明硬件工作基本是正常的. 不过我使用的是12个LED,演示程序只用了其中八个,好象很浪费资源.
其实魔术棒原理是比较简单的,大家都应该知道用一根火柴棒摇出一根线,那么我现在使用了"12根火柴棒"--实际是12个LED,就会摇出一个画面,道理很简单吧,呵呵^_^
其实想的简单,实际还是要做做看的.原理是很简单,程序我可是整了一个晚上才好的. 主要的工作靠中断服务程序完成. 我前面提起的行程开关就是用来检测你的摇动情况,检测到后,触发中断程序完成字段输出.
最终,我实现了12*12点阵的字型输出,完全可以显示中文,但是实际你一行显示的中文字数不能太多,否则由于摇动的行程过短,无法显示完整. 实验不超过4个中文字效果最好了^_^,例如: 生日快乐,呵呵,如果在你朋友过生日的时候送给他(她),别是一番情趣哦!
呵呵,如果我徒弟要,我会特意做一些字型,送给她,哈哈!!! ^_^
谨以此文纪念我的大学最后一个作品: 奇幻魔术棒--摇出你的精彩!
做出来的东东:
生日快乐:
线路图:
点击此处打开armok01121880.pdf
下面给出CVAVR下的整个工程代码:(摇出"生日快乐"四个字)
点击此处下载armok01121879.rar
最后祝大家好运!
PS: 我前面提到的在ouravr上看到的魔术棒,就是--老外做的7个LED的旋转电子钟 这个帖子,大家可以去看看. |