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