10
本文作者: 李王 | 2016-01-29 17:31 |
本文作者李王,創(chuàng)客馬拉松深大站參賽選手,深職院大二學(xué)生。本文詳細(xì)介紹了他自己DIY的一款“8X8X8”點(diǎn)陣3D顯示器(下圖)的全部制作過程。
3Dcube8(光立方)是一個由LED組成的3D顯示器,是一個集實(shí)際型 、經(jīng)濟(jì)型、性價比高的藝術(shù)品, 它不僅僅局限于裝飾,更是能夠幫助更好的學(xué)習(xí)C語言實(shí)際應(yīng)用、滿足單片機(jī)愛好者對單片機(jī)的研究的個好工具。3Dcube8有多種規(guī)格,常見的有單色4*4*4、單色8*8*8、RGB全彩光立方等。其中前者是這之中最簡單的,制作難度和成本最高的是采用RGB的全彩光立方,這里我選擇制作單色8*8*8。
1、項(xiàng)目材料簡介:
Led的選擇:市面上有很多種發(fā)光二極管,按形狀分方形和圓形草帽狀、按效果又有高亮霧面等區(qū)別??紤]到美觀和降低制作難度,我選擇了3mm長腳高亮霧面發(fā)光二級管,長腳的最大優(yōu)勢就是可以作為支架,省時省力。
驅(qū)動方式利用人眼視覺暫留特性,利用逐層掃描的方式,來達(dá)到顯示各種圖案的目的。常見的coms鎖存器(cmos發(fā)熱低,優(yōu)先選擇)有74hc573和74hc595,前者為并入,后者串入。因?yàn)椴恍枰饬⒎降募壜?lián)設(shè)計,所以采用573鎖存器。
主控芯片選擇較多,有常見的AVR、STC、ARDUINO 等。根據(jù)之前學(xué)過的課程,我們決定采用stc系列的STC89c5A60S2增強(qiáng)型單片機(jī)作為主控芯片。之所以不選89C52等芯片,不是因?yàn)樗麄兊倪\(yùn)算速度不夠,主要原因是它們的片上flash太小,難以滿足需求,其次是因?yàn)樽约河虚e置的STC89C5A60S2,片上內(nèi)存大,運(yùn)算速度1T,即充分利用資源節(jié)省成本,又可以實(shí)現(xiàn)所需要的功能需求。最后就是附屬配件 usb轉(zhuǎn)ttl串口的stc下載線。選擇采用cp2102作為usb轉(zhuǎn)串口芯片方案,下載STC單片機(jī)完勝PL2303方案,最高下載速度可達(dá)115200波特率。
2、詳細(xì)制作步驟
一. 電路設(shè)計
1. 軟件部分
實(shí)驗(yàn)環(huán)境:AD13,
該部分我們在altlium designer 13上完成,及用 altlium designer 13畫出所有原理圖,然后生成PCB,最后將PCB圖發(fā)給工廠,制造出對應(yīng)的電路板.
a. 控制模塊——單片機(jī)最小系統(tǒng)
b. 驅(qū)動電路——p口接8片573le端
在驅(qū)動電路上,圖中的電阻都是150r的限流電阻,限流電阻130r為理論值.大于這個小于這個都可以。限流電阻r=(vcc-vf)/i,Vcc電源電壓,Vf為led的正向電壓降,I為led的工作電流,I大了,就亮,小了就會偏暗。
到此,光立方的原理部分就結(jié)束了,接下來就該做PCB部分了.全部原理圖如下圖所示:
c. PCB圖的生成
我們將完成的原理圖(圖4)導(dǎo)入到PCB項(xiàng)目里,并進(jìn)行合理的布局,然后開始布線,最后覆銅(如圖5,圖6)保存文件并將文件發(fā)給PCB板制造工廠。接下來就是短暫的等待。
在此期間我們可以進(jìn)行下一步的制作。
2. 硬件部分
a. 顯示電路 ——led點(diǎn)陣屏的制作
現(xiàn)將選定的LED燈彎曲成圖7的樣子,再按照圖8將LED燈焊接在一起,一共需要焊接512個,共8片,每片64個。單片焊接完成如圖9,圖10,8片焊接結(jié)束如圖11 圖12。將8片LED按照8X8X8排列在一起,如圖13圖14。
將LED燈焊接完成后,相信我們定做的PCB板也完成了,那么接下來我們開始焊接電路板,因?yàn)殡娐钒迳隙际琴N片,元器件非常小,所以在焊接過程中我們可以選用鑷子夾住元器件,先在電路板上固定一只管腳,在逐一將其焊接……
到此,我們的焊接部分全部結(jié)束,接下來又要開始軟件部分,不過在進(jìn)行軟件部分以前,我們需要吧焊接好的LED燈插入到PCB正面上的排母里,如圖17、圖18。
3.軟件部分
所需軟件:keil4.0、STC-ISPv4.80
這里主要是將程序燒錄到單片機(jī)內(nèi),當(dāng)然,這需要經(jīng)過很多次的調(diào)試才能完成,呈現(xiàn)出自己想要的效果,感覺這是一個巨大工程,不過只要有恒心,一切都不是事,哈哈……下圖是程序中的一小小小部分
補(bǔ)充:程序的設(shè)計分為4部分
1. 初始化部分
主要是設(shè)置對應(yīng)的中斷,定時工作方式。
2. 顯示部分
把立方體看作8位數(shù)碼管,每個面即為一個數(shù)碼管,每個面的顯示原理是和8X8點(diǎn)陣是完全一樣的,保證這段程序正確的,可以直接調(diào)用。查表的方式是自0起遞增的,每次加1,每個畫面查表64次。當(dāng)然,實(shí)際的情況是要小于65536的,控制程序的代碼也會占用rom空間,就會導(dǎo)致了畫面次數(shù)減少,所以,要想在有限的空間內(nèi)顯示更多的畫面,就得盡量把程序?qū)懙暮喍?。c語言可以直接定義16位變量。
3. 中斷部分
為了達(dá)到動畫效果切換時間可準(zhǔn)確調(diào)節(jié)性,畫面的切換用中斷方式。把時間通過一個變量來表示,這樣每次只需修改一個變量,就可以設(shè)置動畫的速度了。每次發(fā)送中斷后,查表的變量就加64(i=i+64),然后返回顯示程序繼續(xù)顯示,中斷程序只做變量的計算,改變的是查表的地址。
4. 循環(huán)
程序循環(huán),循環(huán)的條件是i變量不滿足動畫顯示的上限值。比如做八個畫面,那么i的的值不滿足8X64時,就繼續(xù)顯示,滿足就清零從新開始。
顯示循環(huán)
主題的顯示程序,應(yīng)該是一個死循環(huán),一直在顯示一個畫面,只有中斷產(chǎn)生的時候,改變了查表的變量,才切換一次動畫。每個畫面都顯示后,注意修正變量,能使其顯示同一個畫面,不管是查表的變量還是Z軸,Y軸的控制變量,都要進(jìn)行初始化,直到中斷的產(chǎn)生才改變查表的變量數(shù)值。
經(jīng)過多次反復(fù)的調(diào)試,終于成功了,達(dá)到了我們想要的結(jié)果,可是那么高大上的東西,總要有個外殼吧,為了方便,實(shí)惠,我們選用3D打印機(jī)自己做咯,首先我們3D建模軟件(這里使用soildwork,也可以使用其他,如3DMax等)畫出相應(yīng)尺寸的模型(如圖19然后使用cura設(shè)定打印參數(shù),最后將文件導(dǎo)入打印機(jī),開始打印,幾個小時之后,就可得到我們想要的模型了,如圖20)
到了這里,我們的單色8*8*8光立方也就結(jié)束了,套上外殼并插上電源,期待已久的畫面瞬間亮瞎了我的眼睛 好咯,接下來讓我們一起來欣賞那動人的畫面
視頻演示:
項(xiàng)目補(bǔ)充:
1. 測試方案
a、在8片點(diǎn)陣屏搭建完成之后采用點(diǎn)陣屏整面點(diǎn)亮方式檢查每一面LED的通電情況,有過亮、過暗或者完全不亮的及時拆換。
b、檢查電路板的焊點(diǎn)和飛線是否有虛焊或者漏焊情況,元件正負(fù)極有無顛倒情況。
c,、電路組裝采用整體組裝整體測試方式。
d、燒錄測試程序,檢查光立方的全亮狀態(tài)下有沒壞點(diǎn)。
2. 注意事項(xiàng)
a、搭建LED一定要主要,焊接溫度和靜電問題!
以上情況,會照成LED損壞,和LED微亮的情況。
(距離LED燈頭 3mm左右 電烙鐵 放在上面加錫。5-10秒LED就會壞的,盡量焊接一個點(diǎn)在3秒左右,就算一次不成功也沒事等他冷卻了,在焊接)。電烙鐵接地處理里沒有地的,在電烙鐵頭鐵殼上綁一根電線,腳踩在水泥地板上線踩在腳下。
b、 LED的間距
LED間距為20M,就是剛剛好標(biāo)準(zhǔn)洞洞板9個孔間距。
3.后期制作
在后期,我們將繼續(xù)對光立方進(jìn)行更深入的研究與制作,做出更大更絢麗的光立方。
全球創(chuàng)客馬拉松北科大站現(xiàn)已火熱開啟報名!詳情請點(diǎn)招募帖。關(guān)注硬創(chuàng)邦微信公眾號,回復(fù)“北科大”即可參與報名!
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。