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