Stap 11: WiiMote
Als u wilt bepalen van de robot met een WiiMote moet u Python code gebruiken om te controleren de GPIO pinnen op de Raspberry Pi.
1. Installeer de bibliotheek van de WiiMote met behulp van de Terminal met de balg code:
sudo ad rem-worden installeren python-cwiid
Besturingselementen kopiëren als u wilt installeren van de robot de balg code:
#! / usr/bin/python
#based op Matt Hawkins' code http://www.raspberrypi-spy.co.uk/?p=1101
#Re geschreven door plezier Pi's
importeren van cwiid importeren tijd importeren RPi.GPIO als io
io.setmode (io. BCM) #Motor 1 is ontworpen om de motoren aan de linkerkant, Motor 2 is ontworpen om te worden aan de rechterkant #If een motor is in de verkeerde richting u kunt omwisselen de pinnen rond om u hoeft te re-wrire slaan de robot. M1A = 17 #Motor 1 Forwards m1b = 18 #Motor 1 Backwards m2a = 22 #Motor 2 Forwards m2b = 23 #Motor 2 Backwards pinnen (m1a, m1b, m2a, m2b) = voor ik in pinnen: io.setup (i, io. UIT)
voor ik in pinnen: io.output(i,False)
button_delay = 0.1
afdrukken van time.sleep(1) 'Press 1 + 2 op je Wii-afstandsbediening nu...'
# Proberen te verbinden met de Wiimote & stoppen als deze niet wordt gevonden proberen: wii = cwiid. Wiimote() met uitzondering van de RuntimeError: "Can't connect to Wiimote" quit() afdrukken
afdrukken "Wiimote verbonden" wii.rpt_mode = cwiid. RPT_BTN terwijl juist: knoppen = wii.state['buttons'] als (knoppen & cwiid. BTN_UP): #Forwards time.sleep(button_delay) io.output (m1a, True) io.output (m2a, True) elif (knoppen & cwiid. BTN_DOWN): time.sleep(button_delay) io.output (m1b, True) io.output (m2b, True) elif (knoppen & cwiid. BTN_LEFT): time.sleep(button_delay) io.output (m1a, True) io.output (m2b, True) elif (knoppen & cwiid. BTN_RIGHT): time.sleep(button_delay) io.output (m1b, True) io.output (m2a, True) anders: io.output (m1a, False) io.output (m1b, False) io.output (m2a, False) io.output (m2b, False)
#press knop A om te stoppen met alle motoren als (knoppen & cwiid. BTN_A): time.sleep(button_delay) voor ik in pinnen: io.output (i, False)