[3/29_C-Day有什麼?]系列之三:台北市校際盃機器人選拔賽(二)-使用Raspberry Pi Model B與Brick Pi 擴充板

本篇內容是由  CAVEDU 的實習生-袁佑緣提供的使用心得

首先我們先挑選時下流行的微電腦Raspberry Pi 來做測試,本次使用的是B板並搭配Dexter公司所生產的BrickPi來控制LEGO的馬達與感測器。(上面是Raspberry Pi B,下面是BrickPi)

02

如果好奇什麼是BrickPi的人,請參看這篇

首先我們將BrickPi與Raspberry Pi B組裝起來,並鎖上BrickPi的塑膠殼,注意到它上面有許多小洞是專門設計來結合LEGO零件的插銷,所以要將控制器裝置在你的LEGO機器人上完全不是問題喔!

03

接著組裝機器人,這個機器人的設計是用前面的框框綁上兩條橡皮筋當作網子,利用手臂往下壓來取乒乓球,並把乒乓球放回身上的籃子當中,而機器人行走的馬達則是使用LEGO EV3的大馬達。

04 05

前面手臂的動力來源則是用LEGO EV3的中型馬達,並且作一系列的小帶大的齒輪將馬達的力量放大,以防舉不起物件的情況。

06

接著是下面裝的感應器,分別是顏色感應器,與光源感應器,這兩個感應器都是使用NXT的感應器,光源感應器可以用來循線行走,而顏色感應器則可以用來判斷色卡

07

注意到BrickPi無法直接使用EV3的感應器,如果真的需要使用,可以參考官方的教學文件( http://www.dexterindustries.com/site/?p=1822 ),只要將BrickPi的firmware更新就可以使用了!

 

接著我們必須在Raspberry Pi B上安裝對應的系統,才能透過BrickPi控制LEGO元件,下載官網提供的映象檔(http://sourceforge.net/projects/dexterindustriesraspbianflavor/ ),然後燒錄成SD開機卡,插在Raspberry Pi B並開機,成功後便可以透過SSH從電腦連線到Raspberry Pi B,然後就可以開始撰寫程式啦!

 

例如:我想用Python來撰寫機器人的程式,那麼我打開桌面一個叫BrickPi_Python的資料夾(這裏的桌面當然指的是Raspberry Pi B裏Linux系統的桌面),就可以看到許多範例,相關的函式則可以參照其中一個BrickPi.py檔案,裏面有各種函式與變數的定義。

 

此外,如果你想使用其他的語言撰寫,BrickPi也支援像C語言,甚至是圖形化介面的Scratch也可以喔!

 

使用心得:

 

使用Raspberry Pi B搭配BrickPi來做機器人,自然有一些明顯的好處,像是你可以像管理電腦一樣,在上面撰寫程式、管理檔案,也可以由筆電透過遠端連線來進行操作、傳輸檔案,而連上網路也不是問題,這些都是一般的控制器無法做到的地方,此外在官網上的BrickPi Projects裡面也有許多的範例可以參考(http://www.dexterindustries.com/BrickPi/projects/ ),非常適合maker專題的實作喔!

 

但是它做為「比賽用的機器人」有些許不足的地方,像是Raspberry Pi B對於熱插拔很容易當機,在電力上如果不在BrickPi接上額外的電源實在很難驅動馬達運作,而接上的電源又不能影響到Raspberry Pi B,很容易導致當機,筆者在嘗試的時候多次就遇到終端機畫面無反應而必須重開的慘況。

 

這是為什麼呢?熱插拔容易當機的原因是Raspberry Pi B要到B+的板本後才有在5V電源供應那邊加上2A的保險絲,所以要到B+才支援熱插拔(Raspberry Pi A 與A+也是同樣的道理喔)。

另一方面,BrickPi官方提供的馬達控制函式並不多,以python語言為例,可以見github上對於brickPi.py的定義(https://github.com/DexterInd/BrickPi_Python/blob/master/BrickPi.py ),裡面直接定義馬達轉動的函式只有一條,剩下的必須用變數來控制馬達,此外,由於沒有詳細的library reference,只能參照原本的函式庫當案中的說明,其上手難易度也高了不少,對於「機器人駕訓班」這個圍繞在如何控制馬達轉動,而且現場題目變化靈活度相當高的比賽,或許我們可以有更好的選擇……

 

零件提供來源在這裡

Leave a comment

Your email address will not be published.


*