单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1302|回复: 12
收起左侧

新年制作——激光投影POV

  [复制链接]
王朗的诱惑 发表于 2019-2-4 21:26 | 显示全部楼层 |阅读模式
激光投影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.      串口优先级已经调整为最高。
……剩下的想不起来了……等想起来再加吧……

最后……给自己发个广告:我的微博最近很冷清呀,欢迎捧场~ (其实我从没在上面发过电子相关的东西…………)
img-340788e6ae1ad9a70589376608373fe7_qrcode.png

下位机.zip (119.04 KB, 下载次数: 20)

评分

参与人数 2黑币 +116 收起 理由
凌净清河 + 16 甚是敬佩!
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

 楼主| 王朗的诱惑 发表于 2019-2-17 09:35 来自手机 | 显示全部楼层
Arvin0011 发表于 2019-2-15 17:16
东西感觉不错,不过我想说你真的很皮

啊哈哈哈哈哈哈~~~
回复

使用道具 举报

 楼主| 王朗的诱惑 发表于 2019-2-21 11:20 | 显示全部楼层

对,能动的只有反光镜,光源不动。
回复

使用道具 举报

 楼主| 王朗的诱惑 发表于 2019-3-2 10:22 | 显示全部楼层
864168613 发表于 2019-3-1 20:56
Rebuild target 'Target 1'
compiling main.c...
D:\Keil_v5\C51\Inc\STC\STC15.h(16): error C231: 'ACC ...

看样子是头文件重复的问题,可是我这没出问题诶……顺便上传下我用的STC15.H头文件……
QQ截图20190302101635.jpg

STC15Header.zip

2.84 KB, 下载次数: 1, 下载积分: 黑币 -5

STC15.H头文件

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛5群 联系QQ:125739409;技术交流QQ群174280738

Powered by 单片机教程网

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