2014年3月30日 星期日

[Raspberry Pi] 機器人 Python篇-Part2 LEGO®馬達測試



接續上篇[Raspberry Pi 機器人 Python篇-Part1環境安裝]




將軟體更新後即將開始我們的第一個程式


在開始撰寫程式前,我們先認識一下馬達的接腳位置

[[開箱文]BrickPI – 讓 Raspberry Pi 接上您的樂高機器人感測器與馬達]中有提到,相較於NXT LEGO®主機,BrickPi可以接4顆馬達以及5顆感應器,本範例需要先將LEGO®馬達接於MA及MB。下圖為馬達接腳位置圖。








開啟我們Raspberry Pi桌面上的Lxterminal


並輸入

nano myfirstpythonrobot.py


新增名稱為myfirstpythonrobot的python程式

進入到Nano編輯頁面後開始我們的第一個程式


from BrickPi import * #呼叫BrickPi.py函示庫


BrickPiSetup() # 設定通訊端口腳位


#預設的所有腳位都是關閉 所以我們要先將要用的腳位開啟


BrickPi.MotorEnable[PORT_A] = 1 #開啟MA


BrickPi.MotorEnable[PORT_B] = 1 #開啟MBˊ






BrickPiSetupSensors() #將馬達及感應器的設定送回給BrcikPi






while True:


print "Running Forward"


BrickPi.MotorSpeed[PORT_A] = 200 #設定MA的速度 (-255 ~ 255)


BrickPi.MotorSpeed[PORT_B] = 200 #設定MB的速度 (-255 ~ 255)


ot = time.time()


while(time.time() - ot < 3): #執行while迴圈3秒


BrickPiUpdateValues() # 要求BrickPi更新感應器或者馬達參數


time.sleep(.1) #待機 100 ms


print "Running Reverse"


BrickPi.MotorSpeed[PORT_A] = -200 #設定MA的速度 (-255 ~ 255)


BrickPi.MotorSpeed[PORT_B] = -200 #設定MB的速度(-255 ~ 255)


ot = time.time()


while(time.time() - ot < 3): #執行while迴圈3秒


BrickPiUpdateValues() # 要求BrickPi更新感應器或者馬達參數


time.sleep(.1) #待機 100 ms


註:程式盡量以手動輸入為主,以免因為字形、字體大小、網頁環境的影響而發生一些未知的錯誤