Raspberry Pi 雙輪機器人


Raspberry Pi 上的 GPIO 腳位不好好利用實在可惜,但它對於電路的保護不算太好,所以周邊的擴充板也應運而生。在此使用 Adafruit 所出品的 Pi Plate 做一台雙馬達機器人,請看影片:
[youtube=http://www.youtube.com/watch?v=2XQYf00wYEc]
2013-09-04 18.52.46 - 複製
Adafruit 所出品的 Pi Plate 可以直接疊在 Raspberry Pi 的 GPIO 腳位上,並有小型工作區可以製作簡單的電路。不想焊接也可以疊加麵包板。
adafruit-prototyping-pi-plate-kit-for-raspberry-pi-800x800 adafruit-prototyping-pi-plate-kit-for-raspberry-pi-10-800x800 adafruit-prototyping-pi-plate-kit-for-raspberry-pi-6-800x800 adafruit-prototyping-pi-plate-kit-for-raspberry-pi-5
 
以下是本台機器人的範例程式碼,使用 Python 編寫。定義了三個動作:直走、左轉與右轉。
import RPi.GPIO as GPIO  
import time
GPIO.setmode(GPIO.BCM)  
 
GPIO.setup(17, GPIO.OUT)
GPIO.setup(18, GPIO.OUT) 
GPIO.setup(22, GPIO.OUT) 
GPIO.setup(23, GPIO.OUT) 
GPIO.setup(24, GPIO.OUT) 
GPIO.setup(25, GPIO.OUT)   
  
def straight():  

GPIO.output(17,GPIO.HIGH)
GPIO.output(18,GPIO.HIGH) 
GPIO.output(22,GPIO.HIGH)
GPIO.output(23,GPIO.HIGH)
GPIO.output(24,GPIO.HIGH) 
GPIO.output(25,GPIO.HIGH)    
        time.sleep(1)  
        GPIO.output(17,GPIO.LOW)
GPIO.output(18,GPIO.LOW) 
GPIO.output(22,GPIO.LOW)   
        GPIO.output(23,GPIO.LOW)
GPIO.output(24,GPIO.LOW) 
GPIO.output(25,GPIO.LOW) 
time.sleep(1)  
        return  
 
def right():
GPIO.output(17,GPIO.HIGH)
GPIO.output(18,GPIO.HIGH) 
GPIO.output(22,GPIO.HIGH)
time.sleep(0.5)
straight()
 
def left():
GPIO.output(23,GPIO.HIGH)
GPIO.output(24,GPIO.HIGH) 
GPIO.output(25,GPIO.HIGH)
time.sleep(0.5)
straight()
 
while 1:
straight()
time.sleep(5)
right()
time.sleep(5)
left()
time.sleep(5)
 
GPIO.cleanup()   

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *