Ich habe lange im Netz nach einer Anleitung gesucht die beschreibt wie ich einen Playstation 3 Controller (PS3) mit einem Raspberry Pi verbinden kann. Ich möchte den PS3 Kontroller nicht Retropi oder einen anderen Emulator am Raspberry Pi nutzen sondern mit diesem einen Roboter fernsteuern. Daher ist mir auch eine Python Bibliothek wichtig mit der ich die Eingaben des Kontrollers auswerten kann. Mit dem Donkeycar Projekt habe ich auch endlich genau die passende Anleitung gefunden. Die original Anleitung von der ich die Schritte hier habe ist unter der folgenden URL zu finden. „Bluetooth„.
Hier noch ein Bild des Kontrollers und des Bluetooth USB Adapters die ich für mein Donkeycar verwendet habe.
Amazon Shop-Links
Hier habe ich noch die Amazon Shop-Links eingefügt des Kontrollers und des Bluetooth Adapters die ich für diese Anleitung bzw. für mein Donkeycar verwendet habe.
Der Kontroller wird mit einem Bluetooth USB Adapter mit dem Raspberry Pi verbunden. Daher ist genau solch ein Adapter notwendig der auch unter Raspbian ohne Proleme funktioniert.
Softwareinstallation PS3 Kontroller
Als erstes muss die notwendige Software auf dem Raspberry Pi installiert werden. Ich habe das Raspbian Image mit der folgenden Bezeichnung „2017-11-29-raspbian-stretch.img“ verwendet. Mit diesem funktionierte die hier beschriebene Anleitung ohne Probleme.
Als erstes werden die folgenden Befehle im Terminal Fenster ausgeführt.
Befehl 1: sudo apt-get install bluetooth libbluetooth3 libusb-dev
Befehl 2: sudo systemctl enable bluetooth.service
Befehl 3: sudo usermod -G bluetooth -a pi
Nach dem die Usergruppe angepasst wurde ist jetzt der Augenblick gekommen bei dem der Raspberry Pi neugestartet wird. Dazu bitte den folgenden Befehl ausführen.
Befehl: sudo reboot
Nach dem Neustart des Raspberry Pi bitte den PS3 Kontroller mit dem USB Kabel am Raspberry Pi anschließen. Jetzt wird noch das Programm sixpair benötigt mit dem das pairing des Kontrollers durchgeführt wird. Dieses wird mit dem wget Befehl herunter geladen.
Jetzt bitte die folgenden Befehle ausführen. Ich habe mir einen extra Ordner sixpair angelegt in dem ich die Datei herunter geladen habe.
Befehl: wget http://www.pabr.org/sixlinux/sixpair.c
Befehl: gcc -o sixpair sixpair.c -lusb
Anschließend wird das Programm sixpair mit dem folgenden Befehl ausgeführt. Hier kann es notwendig sein den Befehl mehrfach auszuführen bis die MAC Adresse des Controllers erscheint.
Befehl: sudo ./sixpair
Jetzt wird die Bluetooth Schnittstelle des eingesteckten Bluetooth Dongels gestartet um das pairing via Bluetooth durchzuführen.
Daszu bitte wieder die folgenden Befehle ausführen. Die MAC Adresse des Kontrollers wird in dem Platzhalter unten eingefügt.
Befehl 1: bluetoothctl
Befehl 2: agent on
Befehl 3: devices
Befehl 4: trust <MAC ADDRESS>
Befehl 5: default-agent
Befehl 6: quit
Mit dem trust Befehl und der MAC Adresse des Kontrollers wird dieser zu den Geräten denen vertraut wird hinzugefügt. Jetzt bitte das USB Kabel abziehen und den Knopf mit dem PS Logo drücken. Jetzt sollte sich der Kontroller mit dem Raspberry Pi via Bluetooth verbinden.
Ein einfacher Test ob die Verbindung geklappt hat ist möglich mit dem folgenden Befehl der den Kontroller jetzt als Gerät auflisten sollte.
Befehl:ls /dev/input/js0
Python Test Programm
Mit dem kleinen Python Programm hier ist es möglich sich die Ausgabe der Knöpfe und Joysticks des PS3 Kontrollers als Ausgabe im Terminal Fenster anzuschauen.
Download Link: Read PS3 Kontroller input
Zusammenfassung
Ich habe lange nach einer Anleitung gesucht die exakt beschreibt wie ich einen PS3 Kontroller mit einem Raspberry Pi verbinden kann. Dank der Anleitung des Donkeycar Projektes habe ich die Lösung nach langem Suchen gefunden. Damit ich nicht nur auf den Link hier verweise sondern die Anleitung auch auf meiner Seite weiter besteht habe ich diese hier noch einmal niedergeschrieben. Dabei habe ich diese minimal angepasst.
Artikelübersicht
Bei diesen Artikeln geht es darum wie ein Playstation Controller am Raspberry Pi betrieben werden kann.
Playstation PS3 Controller (Bluetooth) einrichten am Raspberry Pi
Playstation PS4 Controller (dualshock) einrichten am Raspberry Pi
Hallo Ingmar,
ich bin ein Raspberry-Neuling und möchte ein ähnliches Projekt angehen. Ich habe eine Nachfrage: Wieso ist ein Bluetooth USB Adapter notwendig? Ich dachte Raspberry hat bereits Bluetooth onboard?
LG, Alex
Hallo Alex,
meiner Erfahrung hat gezeigt, dass Controller die selber einen Funkadapter dabei haben sich leichter am Raspberry Pi unterstützen lassen wenn Linux diesen Adapter unterstützt.
Der Hintergrund ist immer wieder, dass das Funkt-Protokoll bzw. die Implementierung dessen das z. B. Sony verwendet nicht ganz so einfach umgesetzt werden kann.
So habe ich z. B. einen PS4 Controller am Raspberry Pi nur stabil und im vollem Umfang mit dem passenden Sony Adapter zum Laufen bekommen.
Viel Erfolg,
Maker