ich habe das Sunfounder Raspberry Video Car Kit.
Mittels vorgegebenem Code kann man das Auto über Wlan fernsteuern. Soweit - sogut.
Nun möchte ich das Video Car mittels einem Dual Shock 4 Controller über Bluetooth fernsteuern können.
Den entsprechenden DS4DRV habe ich installiert und der Controller wird auch als solcher erkannt.
Mit evdev lässt sich der Controller auslesen, BTN_B ist beispielsweise der X-Button:
Code: Alles auswählen
from evdev import InputDevice, categorize, ecodes, KeyEvent
gamepad = InputDevice('/dev/input/event1')
for event in gamepad.read_loop():
if event.type == ecodes.EV_KEY:
keyevent = categorize(event)
if keyevent.keystate == KeyEvent.key_down:
if keyevent.keycode[0] == 'BTN_B':
print ("Vorwärts"), forward_fun
Mein Problem: Ich bekomme es nicht auf die Reihe diesen Button mit der Funktion forward_fun (siehe unten) zu verbinden. Ich möchte nur dass wenn ich den X-Button drücke das Auto fährt.
Im vorgegebenen Code von Sunfounder wird beispielsweise zusätzlich die Tastatur als Steuerungseingabe angegeben:
Code: Alles auswählen
def forward_fun(event):
print 'forward'
tcpCliSock.send('forward')
# =============================================================================
# Bind buttons on the keyboard with the corresponding callback function to
# control the car remotely with the keyboard.
# =============================================================================
top.bind('<KeyPress-w>', forward_fun) # Press down key 'A' on the keyboard and the car will turn left.
top.bind('<KeyRelease-w>', stop_fun)
Ja, ich bin Anfänger und wusste nicht ob ich hier nach dem Willkommensgruß der oben angepinnt ist überhaupt etwas schreiben soll, aber ich versuche hier wirklich mein Bestes das Problem darzustellen. Wenn mir jemand eine Hilfestellung geben könnte wäre ich sehr dankbar.
Viele Grüße
Vanessa