最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

会说话的小台灯

时间:2015-06-22 20:04来源:bbs.mydigit.cn 作者:satelives 点击:
小七手上只有AMC7135 这个LED恒流芯片,是降压的,所以这里的LED是并联的,一般来说,串联的效果会更好,更能保持亮度一致,不过小七手上没有对应的芯片,就只能这样了,并联LED对LED的一致性要求很高,不然就会出
【前 言】                                                                                                                                                        
       上个学期,小七的女朋友不知道从哪搞来的一个莫名其妙的想法,让我帮她做一个【会说话的小台灯】,不然就有我好看。。。o(╯□╰)o。。。在女朋友我威胁加利诱下,不对,呸,只有威胁,哪有利诱!在女朋友的威胁之下,我只好含着屈辱的眼泪,被迫答应了。
        事情比较多,断断续续做了差不多一个学期,也没做好,趁着现在放假,把它完成了,期间有些照片不见了,大家凑合着看吧。
  【正 文】                                                                                   
        一开始倒没怎么规划,记得以前拆过一个LCD显示器,里面的背光板我还保存着,干脆拿来做台灯的外壳算了。于是,先上 Solidworks 来画结构图。
新建一个部件


画一个圆角矩形,作为底座


拉伸成立方体


在上面刻上字,小麻雀。。。我对我女朋友的称呼






在中间挖空一个心形,这个心形有什么用呢?先不告诉你~






再新建一个部件,画出一个心形 ,和上面挖空的大小差不多一致 






在心形的中间挖一个小圆槽


再新建一个部件,作为台灯支架


再新建一个。。。


然后把所有零件拼装起来,形成台灯的样子。


渲染的效果,不会弄,很难看的,哈哈




讲到电路板了,那咱继续。。。


接着,就是苦逼的写程序了,从8月1号开始写,刚开始是用STC15系列8个引脚的单片机,结果调试的时候老出现问题,中断进不去,LED点不亮,电路板也检查了好几次,也找不到原因,一恼火就换成STC11F02E了,于是又重新画板,拆下来,焊接。。。写程序,调试,写程序,调试。。。


【 语 音 篇 】                                                                               


        先在记事本上写上10段开灯时播放的语音,10段低电压时需要充电的提示语音,以及10段检测到充电时播放的语音,10段关灯时播放的语音


接着打开 Adobe Audition ,然后把他们都录起来,录完一句停顿一下,方便后期处理。#p#分页标题#e#


用 Adobe Audition  把刚刚录好的语音一段一段的选中,并导出成12000Hz,16位深度的WAV,这样WAV的体积和清晰度都能得到保证,而且语音的话用小喇叭放出来都差不多


        打开 WT588D 的上位机,把所有的语音都拖进来,WT588D 最多支持 200多段语音,具体忘记了,我是这样设置的,开灯的10段语音放在 0x00 ~ 0x09 的地址里,0x0A~0x0F 先不用,如果以后想扩展了还有位置,需要充电的提示音放在0x10~0x19,充电检测提示音放在0x20~0x29,关灯的提示音放在0x30~0x39,然后在设置里把 WT588D 设置成三线串口控制模式


       设置好后编译成BIN文件,下载到外置 SPI FLASH 里面,这里有个小插曲,因为没用过WT588D,不知道这个BIN文件是通过编程器直接烧写进FLASH,还是先下载到WT588D里,WT588D再把它处理,存进FLASH里面,于是去问厂家客服,尼玛,他说要用他们的编程器才能下载,一个编程器要200,我靠!当时我就不乐意了,淘宝才卖30,怎么到你这里就变成200了,坑人吗?然后就研究淘宝上的WT588D编程器,发现接线跟编程器烧写FLASH差不多,只是多了根RST线,根据WT588D的数据手册,知道这个是用来复位用的,结合他们宣传的,可在线把语音烧写进FLASH,我猜应该是烧写时,一直给WT588D的RST端复位,等编程器把BIN烧写进FLASH后再恢复,经过试验,的确是这样,哇咔咔,又省了30快+10块邮费


用普通的SPI FLASH 编程器就可以,这个是当初刷路由时买的,现在派上用场了,把编程器和FLASH连接起来,然后把ET588D 的 RST端接地,打开编程器软件,加载编译好的BIN文件,烧写进去就OK了。




【 综 合 调 试 】                                                                                 


        把所有外设接起来,进行调试,其中包括 LED照明灯,RGB 状态灯,以及小喇叭,霍尔开关(用来开关台灯用的),台灯的功能是这样的:


        【1】将心形的那个钥匙放入台灯的心形缺口后就会开灯,喇叭随机播放一段开机语音,接着LED照明灯从0渐渐增加到180(0-255级的亮度,没做LED的亮度补偿,因为51单片机的速度不够),照明灯亮起后,RGB状态灯也从0开始亮到180,然后RGB状态灯开始七彩呼吸灯,从红色缓缓亮起-(黄色过渡)-绿色-(天蓝色过渡)-蓝色-(紫色过渡)-熄灭,就跟七彩LED差不多的那种。


       【2】如果按下调光按钮,则LED照明灯的亮度会变亮,最亮后又会变到最暗,接着又变到最亮,直到按钮松开。


        【3】当电压低于3.5V时,单片机会检测到并产生中断,这时候就随机播放需要充电的语音,每隔5分钟提醒一次,如果此时插入 Micro USB 充电,则单片机也会检测到,并随机播放一段正在充电的语音。


       【4】如果把心形钥匙拿出缺口,那么单片机会关灯,随机播放一段关机语音,LED亮度会从当前缓缓减到0,这是由两种情况:(1)如果是电池供电,那么照明灯熄灭后,状态灯亮度也会渐渐减到0,单片机进入掉电状态,此时功耗很低。(2)如果是插有外部电源,那么照明灯熄灭后,状态灯亮度也会渐渐减到0,接着,状态灯会变成呼吸灯,灯的颜色是关灯前状态灯的颜色


说了那么多,有点晕没有?




调试完后开始组装,最底部是电池,然后上面是PCB


用锉刀把底座掏出一个 Micro USB 的充电口


像这样


充电正常


接着,把单片机的串口,SPI FALSH 的编程口(方便以后升级程序以及更新语音),LED照明灯,喇叭线 外接到排针母座上




霍尔开关,用来检测心形钥匙上的磁场,感应到就会开灯,感应不到就会关灯


板子上特意开了个槽给它


粘好霍尔开关

霍尔开关下面是 RGB  三色LED,也就是 状态灯,装饰用的


山寨的AMC7135,调试的时候烧了3个。。。o(╯□╰)o。。。。


又打了两个孔,一个是电源自锁开关,如果长期不用,用牙签之类的捅一下背后的孔,可以把电源断开,以及一个调光按钮,用于调节照明LED的亮度。


这个心形钥匙,大家还记得么?


从烂耳机单元里面拆出磁铁,对好极性,放到心形钥匙的那个圆槽里面,并用502固定


底座上面是霍尔开关的一层


再上面一层就是有心形缺口的一层


放入心形钥匙,霍尔开关检测到S磁场,输出低电平,触发单片机中断,让单片机从掉电状态唤醒,执行开灯程序,播放语音,打开照明LED,状态灯呈七彩呼吸灯状态

这个是台灯的支架,原先设计的是3个的,后面发现自己DIY的没什么设备,撑不住,只好改成2个的了。。。
#p#分页标题#e#

先用钻头钻孔,然后用丝攻做出螺纹


接着上螺丝,固定住,角度也可以调节


大概就是这个样子啦!~~


找来一段坏耳机的线

焊到灯板上


灯板用胶水贴到支架上

背面


2个是LED照明灯的,2个是小喇叭的


找来一个3Pin的母座,拔掉插针


上点热熔胶


趁热把排针放进去


再上点热熔胶固定


一个保护头就做好啦


焊上小喇叭并固定,大功告成~


放入心形钥匙,不一会儿随机播放了一段开机语音,照明LED缓缓开启,接着状态灯也缓缓开启,呈现七彩呼吸灯


按下调光按钮,可以改变照明LED的亮度


如果接入充电器,会随机播放一段正在充电的语音


如果在有外接电源的情况下关灯,状态灯会以关灯前的颜色进行呼吸


在此之前,一共做了3个方案,画了5块板子,画了又改,改了又画。。。




啥也不说了,累屎了,今天一查四级成绩,NND,从大二考到大四,终于过了,虽然我一次书都没看过,这次还是蒙的,我连阅读的选项都看不懂,考试结束时还有一小片选项没涂,直接瞎涂,没想到人品爆发了。。。。感谢CCABC,感谢女朋友,感谢数码之家。。。小七都那么辛苦啦,大家给点M币鼓励一下吧~~

【补充一下】
       单片机内置的RC晶振太慢,要接晶振的,我接的是24MHZ的晶振,单片机每隔 10微秒(10us ) 中断一次,LED有255个亮度级别,因此一个LED的PWM周期是10us*255=2.55毫秒(2.55ms),一秒钟大概1/2.55≈400HZ,也就是LED的刷新频率是400HZ,之所以没有做LED亮度的线性补偿,原因就是单片机的速度不够,255级别的亮度做补偿没意义,如果做1024级别的亮度,那么一个周期就是10us*1024=10ms,这样下来LED的刷新频率就是100HZ,加上处理各种事件,刷新频率可能低于100HZ,人眼可能就感觉到闪烁了,所以放弃了,但是如果用STM32来做的话,完全可以的~


 接着就是机械加工了,导出CAD文件,然后生成刀路,接着屁颠屁颠的拿着LCD的背光板,跑去国梁哥那边上雕刻机 



雕刻完毕,这里是底座,支架放在一边了

底座2

底座掏有一个槽,用来装电池和PCB电路板

用氯仿把他们粘起来



【 电 子 篇 】                                                                                             


        会说话的小台灯,台灯好解决,STM32就不必了,一个STC完全可以搞定。但是这个会说话可把我难死了,百度的单片机语音之类的论文都是用ISD4004什么的,块头又大,能录的声音又短,由此可见我等天朝的教育如此落后,论文一个抄一个的,第一个用ISD4004,第二个看见了也用ISD4004,唉,不想说太多了。。
        之前我选的是ISD系列的,后面发现不好用,直接抛弃了,可怜的我啊,做了3块板子,写了N多行程序,就这样放弃了。
最后选定的是 STC11F02E 单片机 + WT588D 语音芯片 + 4MB SPI FLASH 。WT588D 这玩意儿好啊,3块钱一片,外挂一个FLASH,随便你存放语音,而且还能通过程序控制播放那一段语音,是否循环(感兴趣的自行百度)。。。。。不过,现在先解决灯条的问题。

根据支架的大小,设计LED灯条
#p#分页标题#e#
        小七手上只有AMC7135 这个LED恒流芯片,是降压的,所以这里的LED是并联的,一般来说,串联的效果会更好,更能保持亮度一致,不过小七手上没有对应的芯片,就只能这样了,并联LED对LED的一致性要求很高,不然就会出现几个个特别亮,几个亮度一般的情况。

背面

LED是从淘宝2.9包邮的那些LED灯泡上拆出来的

焊接完毕~

接着是LED+语音控制板


先焊接WT588D语音芯片,我采用的是单片机3线控制WT588D,PWM输出语音的方式


接着焊接外挂4MB FLASH ,当初觉得可能不够,毕竟一个WAV的体积可不少,后面做完后发现差不多40段语音,才用了800kb的空间。。。


接着是STC11F02E单片机,上次买了几片,还没用完呢


接着是充电电路,用的是TP4067 设置400ma的充电电流


焊上个小LED,小喇叭,先调试好,调试完后再换掉


(责任编辑:admin)
织梦二维码生成器
顶一下
(1)
25%
踩一下
(3)
75%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容