這篇文章來源于DevicePlus.com英語網(wǎng)站的翻譯稿。
承接第1部分的內(nèi)容,我們將在第2部分中繼續(xù)使用Arduino制作有趣的電子產(chǎn)品。在上文中,我們從組裝電路進(jìn)行到加速度計(jì)測試,這次,我們將完成硬件的制作。這個(gè)獨(dú)特的電子套件創(chuàng)意來自藝術(shù)家平原真,他的作品主要以“關(guān)系”為主題。大阪藝術(shù)大學(xué)副教授平原先生使用電腦和電子設(shè)備制作了許多媒體藝術(shù)作品。近年來,他主要研究如何使用木材和石頭等天然材料制作3D作品。那么,現(xiàn)在讓我們一起來探索“基于Arduino的太陽能電池板數(shù)字飼養(yǎng)箱”的第2部分(也是最后一部分)。
硬件
步驟分解
我們首先從組裝外部組件和安裝電子元器件開始。過程如下:
用激光切割材料
組裝主體
LED接線及安裝
安裝太陽能電池板
步驟1:用激光切割材料
材料是用激光加工機(jī)切割出來的。外部是3mm厚的椴木膠合板。從左邊起依次為:LED表面,太陽能電池板表面,兩個(gè)側(cè)面和LED底座。LED底座上的刻線用于在粘貼LED時(shí)使其對齊。
可能很難看清楚,其實(shí)在下圖的右上角有一個(gè)1mm厚的半透明亞克力板。它用于幫助擴(kuò)散來自全彩串行LED燈帶的光。
請下載并使用以下鏈接中提取的數(shù)據(jù)。按照紅線切割,按照黑線刻畫標(biāo)記。在實(shí)際工作時(shí),請務(wù)必根據(jù)您使用的激光機(jī)來調(diào)整設(shè)置。
>> CutData.ai
步驟2:組裝主體
在兩側(cè)邊緣涂上木工粘合劑,然后將這四塊板和LED以及太陽能電池板粘貼在一起。粘合后立即夾緊并固定到位。如果您擔(dān)心粘合的強(qiáng)度不夠,可以將一小塊木頭貼在粘合位置的拐角處進(jìn)行加固。
步驟3:LED接線及安裝
將燈帶分割成5個(gè)單獨(dú)的全彩LED燈帶。電極中間可以用鉗子剪開。將跳線保留在臨時(shí)接線時(shí)的位置。
將單獨(dú)的全彩串行LED燈帶沿對準(zhǔn)標(biāo)記粘貼到底座上。這個(gè)時(shí)候,請注意在臨時(shí)接線時(shí)所連接的跳線應(yīng)在左上角位置,且電極方向與劃線箭頭方向一致。
各個(gè)全彩串行LED燈帶的電極之間通過硬跳線進(jìn)行連接。電極之間的內(nèi)側(cè)距離約為11mm,中間距離約為17mm,外側(cè)距離約為23mm。左上方連接跳線的LED編號為0,其余LED編號按照連接順序遞增,因此右下方LED編號為24。
現(xiàn)在,我們戳一下面包板上的跳線,然后檢查其是否斷開。將LED示例程序([Adafruit NeoPixel]> [Simple])中NUPIXELS的值從16改為25即可完成。如果LED都呈綠色亮起,就表示沒有問題。
#define NUMPIXELS 16
↓
#define NUMPIXELS 25
步驟4:安裝LED底座和面包板
依次疊加椴木膠合板(LED表面)、亞克力板、LED底座,然后用四個(gè)螺絲將它們固定到位。連接著全彩串行LED燈帶的跳線應(yīng)從板之間布線到內(nèi)部。墊片使用非導(dǎo)電墊圈(M2)。由于間隙越厚越利于光的擴(kuò)散,因此請根據(jù)自己的需要將間隙距離調(diào)整到約0.5mm至1mm之間。
將面包板連接到LED底座的中心。面包板的背部也有雙面膠帶,所以將離型紙撕下并將面包板貼上。請注意,如果您在安裝后嘗試移除面包板,那么里面的引腳將會脫落。將連接了全彩串行LED燈帶的跳線插入面包板的電源、GND和6個(gè)引腳。
步驟5:用3D打印機(jī)制造太陽能電池板托架
用于固定太陽能電池板的托架通過3D打印技術(shù)制造。從下面的鏈接下載STL文件,并使用3D打印機(jī)打印托架。請打印出兩個(gè)相同形狀的托架,層壓設(shè)置分別為粗糙和精細(xì)。
>> SolarPanelFixture.stl
首先,用螺絲將一個(gè)托架固定在太陽能電池板頂部的內(nèi)側(cè)。3D打印機(jī)打印出來的托架上有一個(gè)未切割的2mm孔。用M2平頭螺釘鉆孔并將其固定。
接下來,在將太陽能電池板插入上側(cè)托架的同時(shí),用螺釘固定下側(cè)托架。
步驟6:硬件制作完成!
將太陽能電池板DC插頭插入面包板上的DC插座,此時(shí)所有的硬件應(yīng)已經(jīng)準(zhǔn)備齊全。
然后,為了在Arduino Pro Mini 328上寫入草圖,移除下側(cè)的托架,并拆下太陽能電池板。
草圖
完成步驟
接下來,我將詳細(xì)介紹寫入草圖的所有步驟:
管理庫
以二維數(shù)組方式管理LED
種草
養(yǎng)動物并管理多種生物
動物在加速度計(jì)發(fā)生感應(yīng)時(shí)增殖
管理庫
我們將使用Adafruit提供的Neo Pixel和加速度計(jì)LIS3DH庫。此外,我們將定期使用一個(gè)名為[MsTimer2]的指定函數(shù)。從Arduino IDE菜單中選擇[Sketch]> [Include Library]> [Manage Library]來打開庫管理器。在搜索字段中輸入[MsTimer2],然后從顯示出來的選項(xiàng)中進(jìn)行選擇并安裝。
管理矩陣中的LED
LED燈帶從0到24連續(xù)編號,但為了更容易表達(dá)動植物的位置,可以換為用橫縱坐標(biāo)來表示。LED編號存儲在二維數(shù)組中。
… | |
int ledMatrix[WIDTH][HEIGHT];//2D array to record LED layout and number | |
… | |
ledMatrix[0][0] = 0;// 0 is、x=0, y=0 | |
ledMatrix[1][0] = 9;// 9 is、x=1, y=0 | |
ledMatrix[2][0] = 10;// 10 is、 x=2, y=0 | |
ledMatrix[3][0] = 19;// 19 is、 x=3, y=0 | |
ledMatrix[4][0] = 20;// 10 is、 x=4, y=0 | |
… |
查看源代碼 GitHub托管項(xiàng)目ledMatrix.ino。
種草
創(chuàng)建一個(gè)5 x 5的二維數(shù)組,該數(shù)組用于保存草的生長情況以及每幀中在隨機(jī)位置種草。
… | |
int grassMatrix[WIDTH][HEIGHT];//2D array that keeps grass growing | |
… | |
int rndX = random(WIDTH); | |
int rndY = random(HEIGHT); | |
grassMatrix[rndX][rndY] += random(GRASS_GROWTH_POTENTIAL + 1); //Grows grass at random locations | |
… |
查看源代碼 GitHub托管項(xiàng)目grassMatrix.ino。
養(yǎng)動物
定義一個(gè)結(jié)構(gòu)來處理和保存動物的參數(shù)。動物信息通過這一系列動物結(jié)構(gòu)進(jìn)行管理。動物結(jié)構(gòu)有一個(gè)生/死標(biāo)志,如果它沒有死,那么會進(jìn)行移動和覓食。接下來,將一只動物移向最茂密的草叢。當(dāng)進(jìn)入草地部分時(shí),動物開始進(jìn)食,并將草的生長水平設(shè)置為0,然后將這一部分的攝入添加到動物的體能中。同時(shí),每一幀都會消耗一定的體能,如果體能降到0,動物就會死亡。
增殖動物
有兩種方法可以增殖動物。一種是當(dāng)主體倒下以及檢測到一定程度的振動時(shí)。這種情況下,一個(gè)隨機(jī)顏色的新動物將會出現(xiàn)在屏幕中間。
另一種是當(dāng)動物吃草并且體能達(dá)到極限時(shí)。動物的體能將會減半,并增加相同顏色的動物數(shù)量。
總結(jié)
做得好!您已經(jīng)完成了!如果您將太陽能電池板朝向太陽,我相信光點(diǎn)會開始移動。當(dāng)它開始移動尋找食物時(shí),看起來確實(shí)像一個(gè)生物。那么,您對通過重寫種草方式和動物的運(yùn)動方式來創(chuàng)建自己的原始生態(tài)系統(tǒng)有何感想呢?
這就是對這個(gè)系列的總結(jié)了。通過這兩部分內(nèi)容,我們學(xué)習(xí)了如何使用Arduino制作由太陽能電池板供電的數(shù)字飼養(yǎng)箱。我希望每個(gè)人都可以利用這些知識來制造一些真正獨(dú)特的東西。
DevicePlus 編輯團(tuán)隊(duì)
設(shè)備升級版適用于所有熱愛電子和機(jī)電一體化的人。
審核編輯黃宇
-
太陽能
+關(guān)注
關(guān)注
37文章
3425瀏覽量
114379 -
電池板
+關(guān)注
關(guān)注
0文章
103瀏覽量
16885 -
Arduino
+關(guān)注
關(guān)注
188文章
6474瀏覽量
187434
發(fā)布評論請先 登錄
相關(guān)推薦
評論