描述
視覺的持久性很酷,但是我之前從未見過完整的3維圖像,該項目的目標是創(chuàng)建3D圖像。最終,將以3D動畫為目標,但這將取決于我在atmega328-PU上的壓縮能力。
細節(jié)
這是我進行過的最苛刻的項目之一,它始于8月底,并一直進行到3月初。目的是創(chuàng)建一個LED矩陣顯示器,該顯示器可以快速旋轉以生成3D圖像。在這個項目上不乏需要克服的問題。這是最終的項目視頻:
軟件更新
到現(xiàn)在為止,我一直在盡可能多地避免提及軟件,因為在整個項目中,它在大多數(shù)情況下都是不斷變化的。這次,該軟件或多或少地完成了一些調整。
自從我上次談論它以來,代碼的基本格式沒有太大變化,但是這里是:
1.從程序存儲器中獲取數(shù)組(用于表示圖像)并將其移入ram
2.取陣列并將其分成多個不同的顏色陣列
3.將這些顏色陣列移出到陽極側移位寄存器
4.移位陰極側移位寄存器以使那些LED點亮
5.重復2-4,直到加載新圖像。
另外,我創(chuàng)建了一個中斷子例程,該例程通過解釋旋轉速率和調整幀顯示時間來處理旋轉計算。由于矩陣將其旋轉分為5幀,因此我們可以獲取每個中斷之間經過的總時間,并計算再次到達同一點應該 花費多長時間, 然后將其除以確定每個幀的時間。
硬件更新
現(xiàn)在我們回到了我的能力范圍,讓我們開始吧!我在該項目中遇到的最大問題是圖像會緩慢旋轉,但永遠不會保持穩(wěn)定。有了這種行為,就不可能顯示3D動畫,這是該項目的最終目標。為了消除此問題,必須進行兩次硬件更改,并且這兩項都是反饋。
以前,我在電機控制器上使用了粗略的反饋系統(tǒng),該系統(tǒng)可使ATtiny85控制電調具有一些旋轉速度的信息。至于為什么要這樣做,因為我正在使用帶有ESC的無刷電機,這是另外一個問題。但是,以前的反饋是通過一個限位開關完成的,每次旋轉完成后,都會按下該開關。該解決方案有效,但遠非理想,該裝置存在明顯的磨損問題,最終我兩次更換了限位開關。現(xiàn)在,電動機會從更有用的光電斷路器電路獲得反饋,因為主齒輪和該光電斷路器永遠不會接觸,因此它們永遠不會磨損。所討論的光電中斷是EE-SX4070,它具有足夠寬的開口以對我的應用有用。整個傳感器模塊使用的原理圖非常簡單(如下所示)。每當觸發(fā)光遮斷器時,它都會向ATtiny85發(fā)送高信號,該信號將被計數(shù)并用于測量/調節(jié)電動機的速度。
但是對于項目的旋轉部分,我必須更具創(chuàng)造力。由于頂部仍然有些擺動(大約3毫米的游隙),因此EE-SX4070(具有8毫米深的插槽)是該部分的較難選擇,因為放入一些東西觸發(fā)它很容易最終導致其被破壞。由于這個問題,我決定只制造自己的光遮斷器,為此我利用了現(xiàn)有的東西:
我使用了一些2.2k電阻,一個GM5539光電電阻和一個MCP6241軌到軌運算放大器。電阻器和光敏電阻形成一個麥石橋,該橋在點亮時會在橋上產生一個-.9v的電勢(在我的萬用表上左中心接地),而當LED被阻塞時,電勢會升至約1.2v。對于該電路,運算放大器僅用作比較器,但它的工作很好。每當來自LED的光被遮擋時,都會向矩陣驅動器板發(fā)送5v信號,而當未被遮擋時,輸出線將變?yōu)?v。我自己進行此操作的主要優(yōu)點是,我可以創(chuàng)建一個又高又高的組件,以達到所需的確切尺寸要求。該零件的主體在Google SketchUp中建模,并進行3D打印,然后將所有組件構建到原型板上,然后進行電源,接地,然后將信號線固定到主板上。這并不理想,特別是因為我最初計劃將此選項作為選項,但是未能在PCB上保留任何焊盤以容納它。
責任編輯:pj
-
驅動器
+關注
關注
53文章
8271瀏覽量
146881 -
寄存器
+關注
關注
31文章
5363瀏覽量
120974 -
存儲器
+關注
關注
38文章
7528瀏覽量
164211
發(fā)布評論請先 登錄
相關推薦
評論