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