工程筆記本 / RaspberryPi 單板電腦

RaspberryPi 單板電腦

Raspberry Pi 機器人P控制循跡 - 使用BrickPi轉接板

徐 豐智📅 2014-01-27👁 36
這是一台使用Raspberry Pi 為核心的循跡機器人, 使用Dexter Industries 公司所生產的 BrickPi 轉接板來接上樂高NXT的感測器與馬達。請看影片中的機器人使用了比例控制方法,所以動作相當順暢: [youtube=http://youtu.be/qdDGpQBW0YA] 這是我們1/24 25兩天研習時,現場demo機器人的照片。當然您可以直接從 Raspberry Pi 的 GPIO腳位來控制馬達與感測器,一樣可以做出機器人而無需使用 BrickPi 轉接板。之所以使用它當然是因為樂高零件的方便性囉,當然 Dexter Industries 的周邊感測器也都有現成的函式庫可以用,端看您如何選擇囉 2014-01-24 17.17.21 看完也想玩玩看嗎?   歡迎報名 14/02/23 Raspberry Pi 單板電腦整合機器人研習營 延伸閱讀:

[開箱文]BrickPI – 讓 Raspberry Pi 接上您的樂高機器人感測器與馬達

BrickPi_用RasberryPi操控NXT

以下為Python程式碼: from BrickPi import * BrickPiSetup() BrickPi.MotorEnable[PORT_A] = 1 BrickPi.MotorEnable[PORT_B] = 1 BrickPi.SensorType[PORT_1] = TYPE_SENSOR_LIGHT_ON BrickPiSetupSensors() while True: result = BrickPiUpdateValues() if not result: light = BrickPi.Sensor[PORT_1] print light white = 476 black = 626 mid = (white + black)/2 last_power = 255*0.7 #70% of motor power M = last_power/(black - white) power_A = int((light - mid)*M + last_power) power_B = int((light - mid)*(-1)*M + last_power) if(power_A >= 255): power_A = 255 elif(power_A <= -255): power_A = -255 if(power_B >= 255): power_B = 255 elif(power_B <= -255): power_B = -255 print str(power_A) + "|" + str(power_B) BrickPi.MotorSpeed[PORT_A] = power_A BrickPi.MotorSpeed[PORT_B] = power_B BrickPiUpdateValues()    

相關文章 📎

留言 💬 (0)

還沒有留言,來當第一個。