搜索
bottom↓
回复: 50

送给大家一个好玩意: 奇幻魔术棒,摇出你的精彩!!!

[复制链接]

出0入0汤圆

发表于 2006-6-28 12:12:23 | 显示全部楼层 |阅读模式
大学的最后作品--奇幻魔术棒(摇出你的精彩)



其实,我老早就想做下这个魔术棒玩下,但自己太懒惰(老扯没时间似乎是借口,鲁迅都说过,时间是自己挤出来的,要是找,总是有时间的),一直没做成,只是看看别人做好的图片过过眼瘾,似乎就那么回事情.



那天,我在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的旋转电子钟 这个帖子,大家可以去看看.

出0入0汤圆

 楼主| 发表于 2006-6-28 12:14:19 | 显示全部楼层
注意: mega8熔丝使用出厂默认设置,也就是内部RC 1MHz振荡,请不要修改,否则导致MEGA8锁死就不好了.

出0入0汤圆

 楼主| 发表于 2006-6-28 12:16:46 | 显示全部楼层
文章中提到的测试程序就是网友fsclub做的那个显示: I 心 U的东西,居然可以在我的这个上面用,呵呵! 不过使用的中断不同,我的是用下降沿中断的,他的是上升沿(猜测的,不对请fsclub过来指正).

出0入0汤圆

发表于 2006-6-28 14:16:44 | 显示全部楼层
好像你和你徒弟的关系很暧昧啊,字里行间都折射出你对她的喜欢,这里很多都是过来人,一看就明白,师徒只是个幌子罢了!奇怪的是大学都快结束了还在称呼徒弟!!兄弟,我警告你,过了这村没这店。



扯远了!把你怎么做的行程开关介绍一下吧。

出0入0汤圆

 楼主| 发表于 2006-6-28 14:34:08 | 显示全部楼层
LS的兄弟似乎有误会,说实话,我徒弟都是有男朋友的人了. 她不是象一般的GIRL那样温柔,刚好活泼的,敢做敢为的性格着实让偶喜欢,这个喜欢不一定要做GF,你说是吧. 好象是扯远了点.



行程开关我是这样做的:在电路板上焊三个柱子,成等边三角形分布:



      *--GND

      |

      |<-------用硬点的导线就可以,在末端焊一佗焊锡增加重量,可以自由转动

*    |   *

|    &   |

|        |

INT0     INT1



导线绕在柱子上,不要太紧了,让它可以自由转动. INT0和INT1分别是MEGA8的INT0和INT1脚,用两个中断的好处是在摇动回程中可以反向扫描. 增加整个扫描的利用率.

出0入0汤圆

发表于 2006-6-28 15:42:22 | 显示全部楼层
收回我的猜测编撰,呵呵!

谢谢小弟弟!!

你反向扫描也做了?不错,去看看程序先。

出0入0汤圆

 楼主| 发表于 2006-6-28 16:46:39 | 显示全部楼层
晕~~~~~~~~~

出0入0汤圆

发表于 2006-6-28 16:53:27 | 显示全部楼层
qie yi

出0入0汤圆

发表于 2006-6-28 19:17:17 | 显示全部楼层
这个玩意我在2000年的时候大三上学期申请了专利,后来谋求转让一直没有成功,由于工作的特殊性也很难由于外界交流的机会(穷当兵的还管的贼严),后来也就干脆放弃了~~~~前几天律师事务所给我寄信过来说专利失效~~~~可惜了我一万多元~~~~~~~~



目前在深圳和义乌已经有厂家在生产相关的产品,主要是外销,有小棒子的也有嵌在钢笔里的,我买过几个感觉他们做的效果都相当不爽,所以这个市场也没有培育起来。

那个前段的挥动加速度检测我认为最好使用键盘里的薄膜导电片,其顶端用小金属块加重,经实验效果蛮不错的。



相关产品:

http://etonesh.cn.alibaba.com/athena/offerdetail/sale/etonesh-0-24673880.html

http://www.333168.com/cp_detail.php?id=3129&nowmenuid=7425&cpath=&catid=0



我以前的实验电路:







当时一起申请的还有一个用于地铁广告的专利,就是把这个显示棒作的规模大一点并且是彩色的,安装于地铁墙壁,几十米一个连成网络,中央控制动态修改,地铁驶过的时候相对人眼的运动和视觉暂留会形成图案。之所以说用于地铁,铁路的隧洞太偏远意义不大,公路上的杂光是一种危险的干扰。此专利叫做“交通广告条”。



这个交通广告条专利我认为在今后几年里还是有应用价值的,目前各地的地铁项目纷纷上马,但需要等三五年才能形成规模。目前这个也过期了,实在不想继续缴纳年费,如果有哪位觉得有前景不妨做做试验并尝试推向市场,尽管我已经没有专利权了,但是如果看到这玩意真的成为现实也是感觉很不错的~~哈哈~~


-----此内容被violit于2006-06-28,19:22:19编辑过

出0入0汤圆

 楼主| 发表于 2006-6-28 20:10:59 | 显示全部楼层
说到做成商业东西,暂时还没想到.但是很遗憾市场上确实没见到这个工艺品,不知道是什么原因.



说到利用相对运动做成一些字型,想法确实很好,值得思考.

出0入0汤圆

 楼主| 发表于 2006-6-29 00:51:32 | 显示全部楼层
哦,另外提醒大家,由于本人硬件把行程开关INT0和INT1焊反了,所以程序中中断服务程序也是反的.



INT0 Service Routine 为反向扫描服务



INT1 Service Routine 为正向扫描服务



下面是我的行程开关真实硬件情况:



      *--GND

      |

      |<-------用硬点的导线就可以,在末端焊一佗焊锡增加重量,可以自由转动

*    |   *

|    &   |

|        |

INT1     INT0



如果想模仿的做,请注意这个问题,否则你摇出的字体全是反的.

出0入0汤圆

发表于 2006-6-29 08:42:24 | 显示全部楼层
violit



地铁广告,北京地铁2005年已经在环线上应用了!
-----此内容被world_man于2006-06-29,08:45:10编辑过

出0入0汤圆

发表于 2006-6-29 12:49:21 | 显示全部楼层
那个我了解过~~北京地铁使用的是二维LED屏幕,

我的专利使用的是一维LED利用视觉暂留虚拟出来的二维显示

出0入0汤圆

发表于 2006-6-29 13:53:45 | 显示全部楼层
哈哈,居然用了我的程序...

高兴ING....

我也把一个作品送给一个MM了,呵呵,她在她们办公室里开会的时候收到的,结果一挥动之后,全场骚动了...

出0入0汤圆

 楼主| 发表于 2006-6-29 14:30:48 | 显示全部楼层
那天是无意中看到你在使用mega8做了一个,觉得很好玩.刚好手头有两个mega8,就试着做了个. 因为看到你的硬件和我的很相似(之前我没看过你的电路,后来拿来对比后才发现的,哈哈~~~),不同的是我多用了PORTC的4个位来增加象素,并且多用了一个中断来完成回扫.



焊接完毕后,我试着烧了你程序,居然看见了LED在闪烁,兴奋之余拿来一摇,居然出了"I 心 U". 奇怪的是你用的中断和我的不同但还能显示. 你是用上升沿的吧! 估计是行程开关刚脱离INT的时候产生了一个上升沿触发的(我在INT脚上允许了上拉电阻),这个很容易理解了.^_^



后来我自己重新写了驱动,点亮12个LED,现在中文都能很好显示了,效果很不错! 一行能扫出5个汉字,很是好玩,呵呵~~~~~~~~~ ^_^
-----此内容被elefan于2006-06-29,14:31:58编辑过

出0入0汤圆

发表于 2006-6-29 22:10:47 | 显示全部楼层
致violit:

    想问问专利费用问题.申请多少?年费多少?谢谢!

出0入0汤圆

发表于 2006-6-29 23:14:57 | 显示全部楼层
楼上的cock兄弟,我知道你是高手,但是劝你一句话,在中国,没有法律可言,更加没有知识产权保护_法,所以,你如果搞电子设计,千万千万别申请中国专利!!!!

出0入0汤圆

发表于 2006-6-30 09:32:14 | 显示全部楼层
顶!

出0入0汤圆

发表于 2006-6-30 18:05:12 | 显示全部楼层
就是就是~~当时还是学生一时脑热,在中国知识产权的保护是一纸空文和几个口号罢了~~

cock 还是不要申请的好~~

至于专利法和实施方面的东西你可以去查查相关网站,有标准的

出0入0汤圆

发表于 2006-6-30 18:09:55 | 显示全部楼层
您好:我在里面有个贴子是关于sd卡读写的问题,我看了您的程序,但是现在还是对文件操作

不成功,帮我看看我的贴子是如何对sd卡进行创建文件及读写文件操作,我的邮箱是lizq791003@126.com

出0入0汤圆

发表于 2006-7-1 13:14:15 | 显示全部楼层
中断不同没关系啊,一个是离开时显示,一个是接触是显示.没有什么关系.

可惜我送的那个MM她家人一直不同意她跟我,她和我说只要他爸爸妈妈同意,她马上跟我走.

我都等了快一年了.她家人一直给她安排相亲,我都快郁闷死了!

出0入0汤圆

发表于 2006-7-1 14:01:23 | 显示全部楼层
大家有没有碰到这种情况呀,外部中断1仿真的时候进去了,但没有执行任何代码又出来了?中断服务程序不执行,晕呀,下边是寄存器的设置:

MCUCR|=(1<<ISC11)|(0<<ISC10)|(1<<ISC01)|(0<<ISC00);

GICR|=(1<<INT1)|(1<<INT0);

GIFR|=(1<<INTF1)|(1<<INTF0);



有什么问题吗?中断0可以进去并执行,中断1就不行了,只是跳到中断那里又跳出来,中断程序不执行.



SIGNAL(SIG_INTERRUPT1)

{

  unsigned char i;  

  asm volatile("cli"::);//关全局中断

  

  for (i=0;i>92;i--)

    {

      PORTB=~pic;

      PORTC=~pic[i+1];

      _delay_ms(1);

    }

  PORTB=0xFF;

  PORTC=0xFF;

  _delay_ms(50);

  asm volatile("sei"::);//开全局中断

}



fsclub elefan都帮忙看看!也是在弄这个棒子.

出0入0汤圆

 楼主| 发表于 2006-7-1 14:09:29 | 显示全部楼层
删除: asm volatile("sei"::);//开全局中断



不需要你手动开,AVR执行中断返回会自动开放中断. 你这样做很可能造成中断嵌套.

出0入0汤圆

 楼主| 发表于 2006-7-1 14:11:45 | 显示全部楼层
for (i=0;i>92;i--)

    {

      PORTB=~pic;

      PORTC=~pic[i+1];

      _delay_ms(1);

    }

这个for循环根本无法执行.

出0入0汤圆

发表于 2006-7-1 15:57:17 | 显示全部楼层
哦!开中断的问题在仿真的时间发现了,中断0的改了.



晕了,不仔细的结果!改过来试试!

出0入0汤圆

发表于 2006-7-1 17:01:27 | 显示全部楼层
改了还是不行,同一个错误.



AVR Simulator: Uninitialized stack pointer used at 0x0094



和堆栈冲突了?



把数据定义到了FLASH里,执行中断的时候还有和堆栈有关的错误,但是能执行了,现在有事做了,晚上在看看行不行.

出0入0汤圆

发表于 2008-11-10 12:48:50 | 显示全部楼层
这个东西很好玩的样子~Mark了。

出0入0汤圆

发表于 2008-11-10 13:23:50 | 显示全部楼层
好玩

出0入0汤圆

发表于 2008-11-10 18:47:13 | 显示全部楼层
最近一直想做个东西送给MM……

哈哈,这个不错

不过能简单告知一下原理吗?就12个LED灯,怎么能显示汉字?还有行程开关是怎么回事?

出0入0汤圆

发表于 2008-11-10 19:06:46 | 显示全部楼层
知道的请说一下,先谢过了

出0入0汤圆

发表于 2008-11-12 10:58:38 | 显示全部楼层
人呢?LZ,讲下原理拉

出0入0汤圆

发表于 2008-11-12 11:35:40 | 显示全部楼层
不用了,刚看了下以前的帖!

出0入0汤圆

发表于 2009-12-15 09:43:25 | 显示全部楼层
現在有沒人在,做過這個東西的,怎麼我照作了,搖出只看到個 日 ,我用的事撥珠開關, 會不會是行程太快了點呢???

出0入0汤圆

发表于 2009-12-15 11:21:16 | 显示全部楼层
mark~~~

出0入0汤圆

发表于 2009-12-15 11:29:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-15 12:57:15 | 显示全部楼层
好有意思,有空也做个.

出0入0汤圆

发表于 2009-12-15 13:08:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-15 13:22:07 | 显示全部楼层
小玩意不错

出0入0汤圆

发表于 2009-12-17 00:39:41 | 显示全部楼层
摇摇棒~~可以可以~~~~~~~~~~

出0入0汤圆

发表于 2009-12-17 01:02:11 | 显示全部楼层
有创意 学习

出0入0汤圆

发表于 2009-12-17 20:09:18 | 显示全部楼层
顶  学习

出0入0汤圆

发表于 2010-4-8 23:13:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-9 13:12:46 | 显示全部楼层
好!

出0入0汤圆

发表于 2010-4-12 01:59:14 | 显示全部楼层
学习 学习 这东西真是好玩

出0入0汤圆

发表于 2010-4-12 08:41:03 | 显示全部楼层
顶 好东西哦

出0入0汤圆

发表于 2010-4-12 09:50:39 | 显示全部楼层
留名关注,以后也做个

出0入0汤圆

发表于 2010-4-12 10:40:40 | 显示全部楼层
有意思

出0入16汤圆

发表于 2010-4-12 12:35:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-13 13:31:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-10 22:16:06 | 显示全部楼层
哈哈、仿造成功了,已经送给了MM,但是制作简陋
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 22:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表