Raspberry Pi kontroll fjärrkontroll leksaksbil
Raspberry Pi kontroll fjärrkontroll leksaksbil
Hårdvara:
1. Raspberry Pi B + eller högre
2. (4) 2N3904 NPN (EBC) Q6
3. (8) 10K Resisters
4. (4) 1K Resisters
5 (4) LED Light (valfri färg)
Hur man gör?
Se ovan bilder
PIN anslutning
Raspberry Pi--Kontrollera krets--fjärrkontroll
GPIO 17--krets A--kvar
GPIO 27--krets B--just
GPIO 22--krets C--fram
GPIO 23--krets D--bakåt
Simple Python Test
Detta enkla test är att kontrollera GPIO 4 ON och OFF, du måste ansluta till framåt stift på leksak bil Remote innan du kör
$ sudo nano simpletest.py
< pre >< p >< stark > Importera < / strong > tid < /p >< p >< stark > Importera < / strong > RPi.GPIO < stark > som < / strong > io < /p >< p > io.setmode (io. STYRELSEN) < /p >< p > pir_pin = 7 < /p >< p > io.setup (pir_pin, io. OUT) < /p >< p >< stark > och < / strong > sant: < /p >< p > io.output (pir_pin, io. HÖG) < /p >< p >< stark > print < / strong > (< stark > "Forward på" </strong >) < /p >< p > time.sleep(3) < /p >< p > io.output (pir_pin, io. LÅG) < /p >< p >< stark > print < / strong > (< stark > "Forward OFF" </strong >) < /p >< p > time.sleep(3) < /p >
Komplett skript
$sudo nano toycarremote.py
< p > Importera tid < br > import RPi.GPIO som gpio < /p >< p > klass 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 < /p >< p > 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 < /p >< p > gpio.setmode (gpio. STYRELSEN)
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 < /p >< p > 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) < /p >< p > gpio.output (self.forward_pin, gpio. LÅG)
gpio.output (self.backward_pin, gpio. LÅG)
gpio.output (self.left_pin, gpio. LÅG)
gpio.output (self.right_pin, gpio. LÅG) < /p >< p > def clearAll(self):
gpio.output (self.forward_pin, gpio. LÅG)
gpio.output (self.backward_pin, gpio. LÅG)
gpio.output (self.left_pin, gpio. LÅG)
gpio.output (self.right_pin, gpio. LÅG) < /p >< p > def updown (själv, riktning, OnOff, tsecond): # riktning F:forward, B: bakåt
om riktningen i "F":
gpio.output (self.backward_pin, gpio. LÅG)
gpio.output (self.forward_pin, OnOff)
om riktningen i "B":
gpio.output (self.forward_pin, gpio. LÅG)
gpio.output (self.backward_pin, OnOff)
Time.Sleep(tsecond) < /p >< p > def vänster/höger (själv, riktning, OnOff, tsecond): # riktning L:left, R:Right
om riktningen i ("L"):
gpio.output (self.right_pin, gpio. LÅG)
gpio.output (self.left_pin, OnOff)
om riktningen i ("R"):
gpio.output (self.left_pin, gpio. LÅG)
gpio.output (self.right_pin, OnOff)
Time.Sleep(tsecond) < /p >< p > #try:
# samtidigt sant:
# gpio.output (test_pin, gpio. HÖG)
#
#except KeyboardInterrupt:
# gpio.cleanup() < /p >< p > om __name__ == "__main__":
TCR = ToyCarRemote()
för i i range(20):
skriva ut ("\n", "Loop: ', jag)
skriva ut "Fram 2 andra"
TCR.UpDown ("F", gpio. HÖG, 0)
TCR.leftright ("L", gpio. HÖG, 0)
Time.Sleep(2)
tcr.clearAll()
skriva ut "Sluta vidarebefordra"
TCR.UpDown ("B", gpio. HÖG, 0)
Time.Sleep(2)
tcr.clearAll() < /p >
Mer Information: iMediaBank - http://www.imediabank.com