import time
import RPi.GPIO as gpio
class ToyCarRemote:
def __init__(self, forward_pin=11, backward_pin=13, left_pin=15, right_pin=16, test_pin=7):
#gpio.setmode(gpio.BCM)
#test_pin = 4 # GPIO 4
#forward_pin = 17 # (GPIO 17)
#backward_pin = 27 # GPIO 27
#left_pin = 22 # GPIO 22
#right_pin = 23 # GPIO 24
self.test_pin=test_pin
self.forward_pin=forward_pin
self.backward_pin=backward_pin
self.left_pin=left_pin
self.right_pin=right_pin
gpio.setmode(gpio.BOARD)
test_pin = 7 # GPIO 4
forward_pin = 11 # (GPIO 17)
backward_pin = 13 # GPIO 27
left_pin = 15 # GPIO 22
right_pin = 16 # GPIO 23
gpio.setup(self.test_pin, gpio.OUT)
gpio.setup(self.forward_pin, gpio.OUT)
gpio.setup(self.backward_pin, gpio.OUT)
gpio.setup(self.left_pin, gpio.OUT)
gpio.setup(self.right_pin, gpio.OUT)
gpio.output(self.forward_pin, gpio.LOW)
gpio.output(self.backward_pin, gpio.LOW)
gpio.output(self.left_pin, gpio.LOW)
gpio.output(self.right_pin, gpio.LOW)
def clearAll(self):
gpio.output(self.forward_pin, gpio.LOW)
gpio.output(self.backward_pin, gpio.LOW)
gpio.output(self.left_pin, gpio.LOW)
gpio.output(self.right_pin, gpio.LOW)
def updown(self, direction, OnOff, tsecond): # direction F:forward , B:Backward
if direction in ('F'):
gpio.output(self.backward_pin, gpio.LOW)
gpio.output(self.forward_pin, OnOff)
if direction in ('B'):
gpio.output(self.forward_pin, gpio.LOW)
gpio.output(self.backward_pin, OnOff)
time.sleep(tsecond)
def leftright(self, direction, OnOff, tsecond): # direction L:left , R:Right
if direction in ('L'):
gpio.output(self.right_pin, gpio.LOW)
gpio.output(self.left_pin, OnOff)
if direction in ('R'):
gpio.output(self.left_pin, gpio.LOW)
gpio.output(self.right_pin, OnOff)
time.sleep(tsecond)
#try:
# while True:
# gpio.output(test_pin, gpio.HIGH)
#
#except KeyboardInterrupt:
# gpio.cleanup()
if __name__ == '__main__':
tcr = ToyCarRemote()
for i in range(20):
print('\n', 'Loop : ', i)
print 'Forward 2 Second'
tcr.updown('F', gpio.HIGH , 0)
tcr.leftright('L', gpio.HIGH, 0)
time.sleep(2)
tcr.clearAll()
print 'Stop Forward'
tcr.updown('B', gpio.HIGH, 0)
time.sleep(2)
tcr.clearAll()