树莓派小车红外线自动避障测试

时间:2017-02-23 08:58:44 阅读:742次
树莓派小车红外线自动避障测试
import time
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT) #EN1, left
GPIO.setup(12,GPIO.OUT) #EN2, right

GPIO.setup(16,GPIO.OUT) #OUT1, left
GPIO.setup(13,GPIO.OUT) #OUT2, left
GPIO.setup(15,GPIO.OUT) #OUT3, right
GPIO.setup(18,GPIO.OUT) #OUT4, right

GPIO.setup(29,GPIO.IN) #red right
GPIO.setup(31,GPIO.IN) #red left#

power = int(sys.argv[1]) #有障碍 = false, 无障碍 = true
while 1:
    #左右传感器都检测到有障碍时,先后退0.5秒,再旋转0.8秒。
    if (GPIO.input(31) == False) and (GPIO.input(29) == False): 
        GPIO.output(15, GPIO.HIGH)
        GPIO.output(16, GPIO.LOW)
        GPIO.output(18, GPIO.HIGH)
        GPIO.output(11, GPIO.HIGH)
        GPIO.output(12, GPIO.LOW)
        GPIO.output(13, GPIO.HIGH)
        time.sleep (0.5)
        GPIO.output(11, GPIO.HIGH)
        GPIO.output(12, GPIO.HIGH)
        GPIO.output(13, GPIO.LOW)
        time.sleep (0.8)
    elif GPIO.input(31) == False: 
        ##左传感器监测到有障碍时向右旋转,直到无障碍为止 
        GPIO.output(11, GPIO.HIGH)
        GPIO.output(12, GPIO.HIGH)
        GPIO.output(13, GPIO.LOW)
        GPIO.output(15, GPIO.HIGH)
        GPIO.output(16, GPIO.LOW)
        GPIO.output(18, GPIO.HIGH)
    elif GPIO.input(29) == False: 
        ##右传感器监测到有障碍时向左旋转,直到无障碍为止 
        GPIO.output(11, GPIO.HIGH)
        GPIO.output(12, GPIO.LOW)
        GPIO.output(13, GPIO.HIGH)
        GPIO.output(15, GPIO.HIGH)
        GPIO.output(16, GPIO.HIGH)
        GPIO.output(18, GPIO.LOW)
    else: 
        ##左右传感器均无障碍时,直线前进。
        GPIO.output(11, GPIO.HIGH)
        GPIO.output(12, GPIO.HIGH)
        GPIO.output(13, GPIO.LOW)
        GPIO.output(15, GPIO.HIGH)
        GPIO.output(16, GPIO.HIGH)
        GPIO.output(18, GPIO.LOW)

    time.sleep (0.1)


扫描二维码关注程序员爱笔记,接收更多资讯

评论

快速评论