激光投影POV——不炫酷送黑幣啊……  記得是2017年的一時興起開了這個坑,當時做出來了顯示效果,然后因為學習就一直擱置。過了2年又是我的一時興起,這次總算是把它做完了。
這個制作用的材料: 1. 亞克力板 2. 亞克力鏡子-沒錯,那個反光板是塑料的,買薄的,好加工而且非常輕 3. 筆芯-做支架用 4. CD機的光頭-用了那個電機和塑料底座 5. 5V激光管 6. 單片機-STC15F2K16S2-直插28腳封裝 7. 其他各種元器件-排針、三極管、電阻、電容、排線、洞洞板…… 因為電路很簡單,所以沒畫PCB,只有控制板的電路圖,傳感器就是紅外對管,電機驅(qū)動就是一個NMOS加上一些濾波電路,后來還拆了個12V電機上的轉(zhuǎn)速穩(wěn)定電路裝上了。 [電路圖]單片機IO不是直接驅(qū)動激光管啊,都是有PNP三極管的!!這里偷懶沒畫…… 工作原理: 電機帶動反光鏡(盡量)勻速旋轉(zhuǎn),紅外對管檢測鏡面位置,檢測到鏡面位置給單片機外部中斷信號,單片機開始計時。這個時間結(jié)束的時候就是鏡面轉(zhuǎn)到開始顯示的位置,這時開始點亮激光管,從這里開始原理就和搖搖棒一樣了。 還有個有意思的創(chuàng)新,這回我用上位機串口通信,直接傳送點陣數(shù)據(jù)過來顯示,這樣就相當于用電腦上面的字庫,解決了漢字字庫的問題,只要上位機文本框里能顯示,單片機就能把它投影出來。不過現(xiàn)在16個點還是有點捉雞,大的東西顯示不了…… [上位機界面] 程序結(jié)構(gòu): 占用資源: 外部中斷0 紅外對管 定時器0 反光鏡旋轉(zhuǎn)一圈計時 定時器1 激光點亮延時 定時器2 波特率發(fā)生器 串口1 CCP0 電機PWM CCP1 串口接收定時器-用于判定數(shù)據(jù)幀
上位機用C#寫的,VS2012編譯,Debug模式。代碼很簡單,而且都是一些事件的觸發(fā),所以沒寫結(jié)構(gòu)出來,直接看代碼就可以,有注釋很容易理解。
注意事項: 1. 單片機工作頻率為27MHz 串口通信波特率默認9600 。基本參數(shù)的設(shè)置在各個頭文件中。 2. 串口優(yōu)先級已經(jīng)調(diào)整為最高。 ……剩下的想不起來了……等想起來再加吧……
最后……給自己發(fā)個廣告:我的微博最近很冷清呀,歡迎捧場~ (其實我從沒在上面發(fā)過電子相關(guān)的東西……  ……)
img-340788e6ae1ad9a70589376608373fe7_qrcode.png (162.92 KB, 下載次數(shù): 128)
下載附件
2019-2-4 21:24 上傳
下位機.zip
(119.04 KB, 下載次數(shù): 56)
2019-2-4 21:16 上傳
點擊文件名下載附件
單片機代碼 使用Keil5編譯 下載積分: 黑幣 -5
上位機.zip
(94.2 KB, 下載次數(shù): 52)
2019-2-4 21:16 上傳
點擊文件名下載附件
C#代碼 使用VS2012編譯 Debug模式 下載積分: 黑幣 -5
|