Teil 3: Programm und Ablauf

Veröffentlicht am von 0 Kommentare

Wie bereits gesagt, kommt als Herz ein Raspberry Pi 3 zum Einsatz. Das integrierte Bluetooth-Modul ist praktisch und lässt sich schön mit einer Wiimote koppeln.
Betriebssystem ist das aktuelle Raspbian, als Python-Version kommt 2.x zum Einsatz, da die verwendete Wiimote-Bibliothek mit der Version 3.x nicht funktioniert.
Ah ja, eine Anleitung, wie man die Bibliothek installiert und wie man die Wiimote koppelt, gibt es z.B. auf dieser Seite. Beim Pi 3 kann man sich das Installieren eines Bluetooth-Dongles natürlich sparen.

Hier ein Ausschnitt des Python-Programms:

  while True:

    buttons = wii.state['buttons']

  #Achtung: WiiMote wird quer gehalten, deshalb RIGHT --> Vorwaerts
    if(buttons & cwiid.BTN_RIGHT):
      if(buttons & cwiid.BTN_DOWN):     #DOWN --> rightfor
        Drive_rightfor()
      elif(buttons & cwiid.BTN_UP):     #UP --> leftfor
        Drive_leftfor()
      else:
        Drive_forward()      
    elif(buttons & cwiid.BTN_LEFT):     #LEFT --> Rueckwaerts
      if(buttons & cwiid.BTN_DOWN):     #DOWN --> rightback
        Drive_rightback()
      elif(buttons & cwiid.BTN_UP):     #UP --> leftback
        Drive_leftback()
      else:      
        Drive_back()
    else:
      if(buttons & cwiid.BTN_UP):       #UP --> leftturn
        Drive_leftturn()
      elif(buttons &cwiid.BTN_DOWN):    #DOWN --> rightturn
        Drive_rightturn()
      else:
        Drive_stop()
    time.sleep(0.1)

#Turm drehen mit 1 und 2
    if(buttons & cwiid.BTN_1):
      Turn_left()
    elif(buttons & cwiid.BTN_2):
      Turn_right()
    else:
      Turn_stop()
    time.sleep(0.1)

#Turm heben mit + und -
    if(buttons & cwiid.BTN_PLUS):
      Lift_up()
    elif(buttons & cwiid.BTN_MINUS):
      Lift_down()
    else:
      Lift_stop()
    time.sleep(0.1)

#Band und Bagger
    if(buttons & cwiid.BTN_A):
      if(pressed == '0' and run == 'stop'):
        Band_run()
        pressed = 'A'
      elif(pressed == '0' and run == 'run'):
        Band_stop()
        pressed = 'A'
    else:
      pressed = '0'
    
    time.sleep(0.1)

....

Und hier die Belegung der Wiimote:

Da natürlich kein Monitor und keine Tastatur am Pi stecken wird, muss das Programm automatisch starten. Die Status-LED, die immer blau leuchtet, wenn Spannung anliegt, blinkt kurz rot, wenn die Wiimote gekoppelt werden kann (gleichzeitiges Drücken von 1 und 2). Wenn die Kopplung erfolgreich ist, leuchtet die grüne LED zusätzlich. 
Wenn die Kopplung nicht erfolgreich ist, beendet sich das Programm, der Pi bleibt aber an. 
Nach erfolgter Kopplung kann man mit dem Bagger spielen.
Hat man keine Lust mehr, trennt man die Wiimote mit dem Home-Button. Dann fährt auch der Pi herunter. Hält man den B-Knopf (auf der Rückseite) gedrückt, während man Home drückt, trennt man nur die Verbindung. Der Pi fährt aber nicht runter.

Zuletzt: Es funktioniert

Kategorie: Schaufelradbagger

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.