激光投影POV
回忆录 - 2019年新年制作 - 激光投影POV
原贴发布在51黑单片机论坛。
记得是2017年的一时兴起开了这个坑,当时做出来了显示效果,然后因为学习就一直搁置。过了2年又是我的一时兴起,这次总算是把它做完了。
最终效果材料
- 亚克力板
- 亚克力镜子-没错,那个反光板是塑料的,买薄的,好加工而且非常轻
- 笔芯-做支架用
- CD机的光头-用了那个电机和塑料底座
- 5V激光管
- 51单片机-STC15F2K16S2-直插28脚封装
- 其他各种元器件-排针、三极管、电阻、电容、排线、洞洞板……
红外激光管 |
焊接到排针上 |
成品效果 |
原理图
因为电路很简单,所以没画PCB,只有控制板的电路图,传感器就是红外对管,电机驱动就是一个NMOS加上一些滤波电路,后来还拆了个12V电机上的转速稳定电路装上了。
单片机IO不是直接驱动激光管,应连接PNP三极管。这里省略……
原理(示意)图工作原理
电机带动反光镜(尽量)匀速旋转,红外对管检测镜面位置,检测到镜面位置给单片机外部中断信号,单片机开始计时。这个时间结束的时候就是镜面转到开始显示的位置,这时开始点亮激光管,从这里开始原理就和摇摇棒一样了。
还有个有意思的创新,这回我用上位机串口通信,直接传送点阵数据过来显示,这样就相当于用电脑上面的字库,解决了汉字字库的问题,只要上位机文本框里能显示,单片机就能把它投影出来。不过现在16个点还是有点捉鸡,大的东西显示不了……
上位机界面程序结构
流程图资源占用
资源 | 占用对象
- | -
外部中断0 | 红外对管 |
定时器0 | 反光镜旋转一圈计时 |
定时器1 | 激光点亮延时 |
定时器2 | 波特率发生器 |
串口1 | 上位机 |
CCP0 | 电机PWM |
CCP1 | 串口接收定时器-用于判定数据帧 |
注意事项
- 单片机工作频率为27MHz 串口通信波特率默认9600 。基本参数的设置在各个头文件中。
- 串口优先级已经调整为最高。
- 上位机使用C#编写,VS2012编译,Debug模式。
程序文件
……剩下的想不起来了……等想起来再加吧……
Perfection is achieved not when there is nothing more to add, but rather when there is nothing more to take away.
-- Antoine de Saint-Exupéry

红外激光管
焊接到排针上
成品效果
浙公网安备 33010602011771号