置頂文字

歡迎來訪 !! 如有任何問題歡迎一起討論或是 eMail 給我 legorunmail@Gmail.com

2015年4月27日 星期一

兩台樂高機器人NXT 分工合作



 這次要做的題目是2台樂高機器人NXT 分工合作,而且盡可能把感應器都裝在NXT上這樣在程式設計時就能互相運用做出多樣化的動作與目的。



第一台樂高NXT機器人是「履帶車輛」,前面安裝超音波感應器(UltraSonic Sensor)與光線感應器(Light Sensor),後面安裝爪子與顏色感應器(Color Sensor)。


超音波感應器:負責偵測前方式否有物體存在。
光線感應器:負責車輛行駛在黑色路線軌跡上。


顏色感應器:負責偵測地面上特定顏色做出對應事件動作。






第二台樂高NXT機器人是「機械手臂」,安裝超音波感應器(UltraSonic Sensor)或碰觸感應器(Touch Sensor)負責偵測是否有物品需要抓取。


三顆樂高馬達(Motor)使用內建的角度偵測,所以抓取與放置都能固定在特定位置上。
第二顆升降馬達與第三顆抓取馬達構造圖



第一顆轉向馬達與第二顆升降馬達齒輪連結






當第三顆馬達抓取物品時齒輪經過轉向帶動下個齒輪與傳動軸會產生其它方向應力讓零件慢慢位移是甚至解體,因此在組裝上必須考量結構強度與預防零組件位移措施。


int iTch=Motor.A.getTachoCount();     //讀取A馬達角度值
Motor.A.resetTachoCount();                 //重設A馬達角度值


測試步驟:

1. Android手機與第一台樂高機器人藍芽連結並啟動NXT程式(非必要性只是測試Android手機與樂高機器人的互動)

2.光線感應器先偵測黑色與白色的反射數值當作黑色軌跡路線的判斷標準

3.當第一台NXT在軌跡路線上(PID)運行時,如果超音波感應器遇到前方12公分內有物品時,車輛迴轉180度讓後方的爪子去抓取物品,抓取物品後車輛再迴轉180度繼續在軌跡路線上前進,此時顏色感應器啟動偵測路面上是否有顏色標示。

4.當顏色感應器偵測到特定顏色時開始執行「放置物品」的對應動作


綠色:「右轉」直行一段距離放在固定位置,此時第二台樂高機器人的超音波感應器或碰觸感應器被觸動執行抓取物品然後放在固定位置(預計放在黑色路線上讓第一台樂機器人繼續抓取),如此一直無線迴圈讓兩台樂高機器人一直運作。(外加動作是BT向手機傳遞訊息如顏色)

藍色:不動作

紅色:不動作

黃色:不動作


5.當遇到「綠色」標示時第一台NXT會右轉後前進一段距離放置物品再回到黑色軌跡路線上,此時第二台NXT機器手臂的超音波感應器或碰觸感應器會偵測到有物品需要抓取,因此啟用抓取程式讓NXT機器手臂移動物品放置。


硬體與軟體

硬體組裝:用樂高零件組裝結構性與強度足夠的「履帶車輛」與「機器手臂」。

軟體設計:按照測試流程來設計程式,第一台樂高NXT動作多程式比較複雜,第二台樂高機器手臂動作固定程式碼較少。

Lejos 是架構在 Java語言下因此程式結構與延伸完整,本次程式設計運用行為模式(Behavior)因此可以把軌跡車、超音波偵測、顏色偵測等各自撰寫獨立的Class測試,最後再定義各種動作(軌蹟車、超音波、顏色感應)的優先順序一起整合運用,擺除以往把3顆馬達、所有Sensor動作與變數檢查都寫在一起有時候都不知道是那個環節出錯( Debug花費時間比寫程式還多)。



DIY場地:各色膠帶 + 白色真珠板.....準備測試。




YouTube影片資料














沒有留言:

張貼留言