Intel Galileo噴水對戰機器人

一月 10, 2015
Facebook
Twitter
Intel Galileo輕鬆地做出能以手機控制的對戰機器人。
撰文、攝影/郭有迪
時間:4個周末 成本:新臺幣7,824元

材料

水與水滴感測器需要零件


工具


前言

小時候我最喜歡跟朋友們拿著水槍對射,但在整個過程中我們必須不時對水槍充氣,發射時更不能一直壓著扳機來進行連續射擊。長大後我變成想要擁有可以對戰的水槍機器人,而且水槍要能夠持續發射。最近,我偶然在instructables網站上看到了10DotMatrix所發表的對戰機器人」(Battle Bots專題,又再度燃起我想要製作水槍對戰機器人的想法。為了要能夠讓水槍持續發射,就必須要用到噴水馬達,便想到既然都用了噴水馬達,不如就結合無人載具來製作出可以對戰的機器人。但這個目標不只是單純地把馬達裝到可移動的底盤上而已,還要兼顧射擊、控制、移動與保護這幾個部分。

整體規劃完畢之後,我便依照需求設計出這臺能夠依照射程調整水柱加壓程度,並且具有履帶式底盤的對戰機器人,更重要的是不需要另外購買遙控器,只要透過智慧型手機便可進行一切的操控。除此之外,內部電路的保護也非常重要,因此則採用壓克力當作外殼來包覆整組電路,以防對戰時水滴滲入造成短路。

1.準備與設定Intel Galileo

GalileoIntel第一款設計給DIY玩家與自造者的開發板,其具備的功能剛好適合這次的噴水對戰機器人專題。因為在Galileo開發板的底部設有PCI-E Mini插槽,所以我可以將無線網路卡接在這個插槽上,進而製作出一臺無線遙控機器人。這次專題中使用到Galileo社群所提供的ConnectAnyThing韌體*1,這套工具讓你能簡單地使用手機來撰寫程式並進行控制,所以出門時只需帶著噴水戰車和手機就可以了。

1a.一開始請先下載編寫Intel Galileo程式碼時會用到的軟體,此為Intel Galileo所適用的Arduino IDEhttps://communities.intel.com/docs/DOC-22226)。下載檔案並解壓縮,便可看到名為arduino-1.5.3-Intel.1.0.3的資料匣,用滑鼠在arduino.exe上點兩下即可啟動Arduino IDE

1b.成功開啟Arduino IDE後,先把Galileo上的MicroSD記憶卡拿下來,再接上5V的電源供應器,先用USB傳輸線將Galileo連上電腦。

1c.此時需要先測試一下Galileo能否正常運作,你可以載入Blink範例程式(圖1)來進行測試,如果正常的話,你可以看到Galileo上有一顆LED在閃爍。

*1韌體下載頁面:https://github.com/IntelOpenDesign/ConnectAnyThing

2.設定Wi-Fi通訊

2a.由於我希望能透過無線遙控的方式來控制機器人,因此我選用Intel Centrino Advanced-N6205無線網路卡,先將附有U.FL接頭的2.4GHz黏著式天線裝到網路卡上。接著為了使網路卡更好安裝在Galileo上,必須要加裝MINI PCI-E網路卡轉接座,因為轉接座有正反兩面之分,所以在組裝網路卡與轉接座時,請注意方向是否正確,最後再將裝有轉接座的網路卡固定在Galileo上便完成了。

2b.為了要能順利使用ConnectAnything來遙控機器人,以及透過手機即時修改程式,你需要設定Wi-Fi通訊。請準備一個容量大於2GBMicroSD記憶卡,先到先前附註的GitHub網站下載ConnectAnything韌體,必須注意的是請根據你所使用的Intel Galileo型號來選擇韌體版本,假設你使用的是Intel Galileo Gen 1,那只能下載Rev 0.2.2之前的版本。

2c.將下載完成的ConnectAnyThing.zip檔案解壓縮,並把所有檔案複製到記憶卡卡中。便可以把記憶卡卡裝回Galileo,如果有按照上面的步驟安裝Wi-Fi網路卡,接上電源大約開機1分鐘之後,再拿出手機搜尋可用的無線網路連線即可看到名為ConnectAnyThing的熱點。

3.電源配置

图片

圖3

當你將Intel Galileo以及相關軟體都設置完成之後,便可開始製作噴水對戰機器人的主要控制部分。我先用Fritzing畫出了這臺戰車的電路圖(圖3),在圖中可以看到我用兩個LM2596直流降壓模組,把電池所提供的11.1V電壓分別調成5V3V5V的部分主要Intel Galileo使用,3V提供給抽水馬達使用。

3a.在此有兩點需要注意,第一點要讓馬達擴充板可以順利使用11.1V的電壓,第二點則是要防止11.1V的電壓流進Galileo中,所以我把馬達擴充板的背面的Vin Connect焊點用美工刀切開,便可以把供應11.1V電壓的輸入端接到馬達擴充板上的端子臺Vin腳位(圖3a)。因為剛剛已經把背面的Vin切開了,所以這個Vin現在只提供給馬達使用的。

图片

圖3a

3b.我先用排針將11.1V5V的降壓模組固定在萬用電路板上,再把連接電池用的公T型接頭焊到降壓模組的輸入端(圖3b)。
图片

圖3b

4.組裝馬達擴充板

4a.依據圖4a所示,將馬達擴充板背面用來控制馬達A和馬達BPWM腳位與5V腳位相連,你可以選擇使用杜邦接線跨接,但為了避免線路過於複雜,所以我選擇在背面加工。
图片

圖4a

4b.馬達的電力來源為3孔接頭,我在接頭中放入兩端等長的排針,而在馬達擴充板上兩組用來供給馬達正負電源的端子臺中同樣也放入排針,這樣便可用杜邦接線將它們接起來(圖4b)。
图片

圖4b

5.製作光耦合電路

在焊接時請依照電路圖中的方式來進行,與前面所提到的馬達一樣,這部分所用的電壓同樣為5V,所以請用排針將降壓模組焊到萬用電路板上。為了要讓光耦合電路得以順利運行,光敏電阻和LED兩者必須靠得非常近。焊接完成之後,必須把每組LED與光敏電阻用電工膠帶包覆起來,以防外部光線影響光敏電阻的效果
图片

圖5

6.噴水馬達

6a.為了提高配線時的便利性,我選擇使用5V的繼電器來控制噴水馬達的運轉,這樣便可以直接將電源輸入端與光感測電路共用(圖6a)。
图片

圖6a

6b.跟前面提到的馬達一樣因為噴水馬達所需的工作電壓比較小,大約在3V~5V之間,所以我在馬達的電源供應端加上一顆3.3V的穩壓器,藉此把11.1V的電壓控制在3V左右。但噴水馬達在運轉時需要高達0.5A~1A的工作電流,為了不讓其影響到Galileo,所以必須另外隔離出來。但因為電路板正面的空間不夠了,所以我選擇焊在背面。
图片

圖6b

6c.接著來製作儲水用水箱,我選擇的是一般的尖頭塑膠瓶,直接把購買噴水馬達時附贈的水管接到塑膠瓶的管口上,再用膠帶把相連的地方黏起來以防漏水。
图片

圖6c

7.水滴偵測

7a.為了要使噴水戰車受到攻擊時出現反應,因此還要加上可用來偵測水滴的功能。在挑選水滴感測模組(圖7a)時,此套水滴感測模組可以使用數位與類比的訊號,而在連接Galileo時我選擇使用類比訊號輸出(AO)。
图片

圖7a

7b.但如果只是用原本的感測板,其感測範圍看起來偏小。如圖7b所示,你可以看到感測板上有許多條線,但實際上只是兩條線互相交錯而已,所以可以在兩條線上焊接幾條電線,而這些電線可以用來偵測水滴。因為我打算將這塊感測板放在戰車上,所以不需要用電工膠帶包覆。
图片

圖7b

8.設定針腳與數位電路圖(Android 4.4.2版本)

8a.當你開啟手機的Wi-Fi連線時,可能會跳出請你登入的畫面,如果看到這個畫面請選擇(Not Now),並之後開啟手機內建的瀏覽器,連到:www.cat.com(圖8a
8b.若要新增數位或類比的腳位,請用右下角的綠色加號來選取數位腳位,再用左下角的黃色加號來選取類比腳位(圖8b),表格A為此臺機器人的腳位功能。
图片

圖8a

图片

圖8b

图片

表A

8c.接著則需要將線路連接起來,先點選左邊類比腳位上的黃色圓圈,再點選右邊數位腳位上的綠色圓圈即可完成連線,請依照圖8c所示將線路連接完畢。
图片

圖8c

8d.接著可以針對類比與數位腳位進行編輯,首先點選A2的字,跳出設定選單將「Invert」選項勾起來後點選「OK」便可離開選單。因為ConeectAnyThing可以即時監控各個腳位,所以此時你可以看到A2背景變成全灰,但如果開發板上並沒有接任何線路的話,背景並不會產生任何改變。

如果要編輯數位腳位,只要按下綠色框,便可開啟數位腳位的選單,為了方便你記憶腳位功能,可以在PIN Label中輸入名字(圖8d)。

图片

圖8d

8e.按下在選擇腳位畫面下方的Controller Mode便可進入控制模式(圖8e),在控制模式中,你可以將圖中「forward」的箭頭拉到最右邊,再進入A2的控制模式中,將左方的橫桿位置移到正中間,當你這樣做之後,馬達控制板上連接馬達正負極的LED應該會亮起,轉動馬達使機器人順利往前進。
图片

圖8e

9.ConnectAnyThing的控制程式

ConnectAnyThing的控制方式與Arduino並不同,無法用一個鍵同時控制兩個腳位的電位,所以我利用A0A5輸出訊號給數位腳位,設計出使用LED和光敏電阻的光耦合電路,透過LED發出亮光,待光敏電阻接收後,再利用ConnectAnyThing把接收到的訊號回傳數位腳位上。
機器人向前走:

//馬達A

digitalWrite(12, LOW);//讓馬達A

digitalWrite(9, LOW);//鬆開馬達A剎車

//馬達B

digitalWrite(13, LOW);//讓馬達B

digitalWrite(8, LOW);//鬆開馬達B剎車


機器人向右轉:

//馬達A

digitalWrite(12, LOW);//讓馬達A正轉

digitalWrite(9, LOW);//鬆開馬達A剎車

//馬達B反轉

digitalWrite(13, HIGH);//讓馬達B反轉

digitalWrite(8, LOW);//鬆開馬達B剎車


機器人向後走:

//馬達A

digitalWrite(12, HIGH);//讓馬達A

digitalWrite(9, LOW);//鬆開馬達A剎車

//馬達B反轉

digitalWrite(13, HIGH);//讓馬達B反轉

digitalWrite(8, LOW);//鬆開馬達B剎車


在上述所有程式碼中,由於我們在數位電路圖中將A2定義成反向,所以D12D13的正反轉電位要相反,並且要將控制馬達剎車的D8D9設定在鬆開的LOW電位上。

10.組裝

我使用尺寸為170mm×90mm的壓克力板當作放置電路的底板,並在板子中央鑽洞來讓馬達控制板的線路穿過以連接底盤的馬達(圖10a)。而在履帶式底盤上有幾個螺絲孔,你可以拿壓克力板對一下螺絲孔的位置,再用10mm長的螺絲將四個角落固定住。你也可以在壓克力板上標出安裝隔離柱的位置,以便你固定Galileo與其他電路(圖10b)。

安置好所有電路之後,我又用四片壓克力將底板蓋起來,並將正面設計為斜面用來裝設水滴感測器與連接噴水馬達的水管,除了正面的外殼需要鑽洞以外,其他部分只需要注意防水是否完備即可。如果將管口用束線帶稍微綁緊,就可以讓射出的水柱力道增強。建議不要將儲水用的塑膠瓶放在外殼內,以避免震動使其翻覆造成電路短路。

图片

圖10a

图片

圖10b

图片

對戰囉!


郭有迪
Make》國際中文版特約編輯,畢業於大安高工控制科,喜歡使用8051單晶片與Arduino來製作各種專題。目前就讀於高雄第一科技大學機械與自動化工程學系。
Social media & sharing icons powered by UltimatelySocial