Kul Pi: s Raspberry Pi 3 Tank (11 / 12 steg)
Steg 11: WiiMote
För att styra roboten genom att använda en WiiMote måste du använda Python code för att styra GPIO stiften på Raspberry Pi.
1. installera WiiMote biblioteket med terminalen med den kod nedan:
sudo lämplig-få installera python-cwiid
Installera roboten kopiera kontroller den kod nedan:
#! / usr/bin/python
#based på Matt Hawkins' koden http://www.raspberrypi-spy.co.uk/?p=1101
#Re Skrivet av kul Pi
importera cwiid import tid import RPi.GPIO som io
IO.setmode (io. BCM) #Motor 1 är avsedd att vara motorerna till vänster, Motor 2 är avsedd att vara till höger #If en motor är i fel riktning kan du byta stiften runt för att spara du har till re-wrire robot. M1A = 17 #Motor 1 framlänges m1b = 18 #Motor 1 baklänges m2a = 22 #Motor 2 framlänges m2b = 23 #Motor 2 baklänges stift = (m1a, m1b, m2a, m2b) för jag i stift: io.setup (i, io. OUT)
för jag i pins: io.output(i,False)
button_delay = 0,1
skriva ut "Tryck 1 + 2 på din Wii Remote nu..." time.sleep(1)
# Försöker att ansluta till Wiimote & sluta om inte hittas prova: wii = cwiid. Wiimote() utom RuntimeError: skriva ut "Kan inte ansluta till Wiimote" quit()
skriva ut "Wiimote ansluten" wii.rpt_mode = cwiid. RPT_BTN medan sant: knappar = wii.state['buttons'] om (knappar & cwiid. BTN_UP): #Forwards time.sleep(button_delay) io.output (m1a, True) io.output (m2a, True) elif (knappar & cwiid. BTN_DOWN): time.sleep(button_delay) io.output (m1b, True) io.output (m2b, True) elif (knappar & cwiid. BTN_LEFT): time.sleep(button_delay) io.output (m1a, True) io.output (m2b, True) elif (knappar & cwiid. BTN_RIGHT): time.sleep(button_delay) io.output (m1b, True) io.output (m2a, True) annars: io.output (m1a, False) io.output (m1b, False) io.output (m2a, False) io.output (m2b, falskt)
#press knappen A för att avbryta alla motorer om (knappar & cwiid. BTN_A): time.sleep(button_delay) för jag i pins: io.output (i, falskt)