激光投影POV——不炫酷送黑币啊…… 记得是2017年的一时兴起开了这个坑,当时做出来了显示效果,然后因为学习就一直搁置。过了2年又是我的一时兴起,这次总算是把它做完了。
这个制作用的材料: 1. 亚克力板 2. 亚克力镜子-没错,那个反光板是塑料的,买薄的,好加工而且非常轻 3. 笔芯-做支架用 4. CD机的光头-用了那个电机和塑料底座 5. 5V激光管 6. 单片机-STC15F2K16S2-直插28脚封装 7. 其他各种元器件-排针、三极管、电阻、电容、排线、洞洞板…… 因为电路很简单,所以没画PCB,只有控制板的电路图,传感器就是红外对管,电机驱动就是一个NMOS加上一些滤波电路,后来还拆了个12V电机上的转速稳定电路装上了。 [电路图]单片机IO不是直接驱动激光管啊,都是有PNP三极管的!!这里偷懒没画…… 工作原理: 电机带动反光镜(尽量)匀速旋转,红外对管检测镜面位置,检测到镜面位置给单片机外部中断信号,单片机开始计时。这个时间结束的时候就是镜面转到开始显示的位置,这时开始点亮激光管,从这里开始原理就和摇摇棒一样了。 还有个有意思的创新,这回我用上位机串口通信,直接传送点阵数据过来显示,这样就相当于用电脑上面的字库,解决了汉字字库的问题,只要上位机文本框里能显示,单片机就能把它投影出来。不过现在16个点还是有点捉鸡,大的东西显示不了…… [上位机界面] 程序结构: 占用资源: 外部中断0 红外对管 定时器0 反光镜旋转一圈计时 定时器1 激光点亮延时 定时器2 波特率发生器 串口1 CCP0 电机PWM CCP1 串口接收定时器-用于判定数据帧
上位机用C#写的,VS2012编译,Debug模式。代码很简单,而且都是一些事件的触发,所以没写结构出来,直接看代码就可以,有注释很容易理解。
注意事项: 1. 单片机工作频率为27MHz 串口通信波特率默认9600 。基本参数的设置在各个头文件中。 2. 串口优先级已经调整为最高。 ……剩下的想不起来了……等想起来再加吧……
最后……给自己发个广告:我的微博最近很冷清呀,欢迎捧场~ (其实我从没在上面发过电子相关的东西…… ……)
|