Raspberry Pi‎ > ‎Practical Project‎ > ‎

Control Remote Toy Car


Control Remote Toy Car 

Hardware

The following device is to connect Raspberry PI GPIO to Toy Car Remote Control, you have to create 4 of this to control a simple remote car for moving left, right, forward, and backward control.
 
Connect With Remote Device
 




My Test Remote Toy Car 
 
 

 
Device Kit Set
 
 
Scratch GPIO Test

 
 



Pin Connect

 Raspberry Pi Control Circuit  Remote
GPIO 17 Circuit A LEFT
GPIO 27 Circuit B RIGHT
GPIO 22 Circuit C Forward
GPIO 23 Circuit D Backward













Simple Python Test

This simple test is to control GPIO 4 ON and OFF, you have to connect to Forward Pin on Toy Car Remote before RUN

$ sudo nano simpletest.py
  

import time

import RPi.GPIO as io

io.setmode(io.BOARD)

pir_pin = 7

io.setup(pir_pin, io.OUT)

while True:

    io.output(pir_pin, io.HIGH)

    print("Forward On")

    time.sleep(3)

    io.output(pir_pin, io.LOW)

    print("Forward OFF")

    time.sleep(3)

Complete Test Script

$sudo nano toycarremote.py

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()


Reference