Kode og forklaring til hvordan man benytter seg av PS4 controller på robotprosjektet
Jeg fulgte instruksjonen her https://pimylifeup.com/raspberry-pi-playstation-controllers/ fra der det står "Pairing your PS4 Controller via BluetoothCTL"
Siden du sikkert ikke har internett på RPi så får du ikke gjort alle disse stegene.
Men i hovedssak:
Skriv i terminalen
sudo bluetoothctl
Dette åpner bluetooth instansen for RPi. Her kan du connecte og paire hva du vil over Bluetooth
Skriv dette:
-
agent on
-
default-agent
-
scan on
Dette starter scanning av bluetooth enheter i nærheten. Du vil få en drøss med ID'er, men PS4 kontrolleren heter noe sånt som:
[NEW] Device XX:XX:XX:XX:XX:XX Wireless Controller
Kopier mac-adressen XX:XX:XX:XX:XX:XX
som dukker opp med navn Wireless Controller
connect XX:XX:XX:XX:XX:XX
(mac-adressen på din enhet)
Attempting to connect to XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XXConnected: yes
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device XX:XX:XX:XX:XX:XX ServicesResolved: yes
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
Connection successful
trust XX:XX:XX:XX:XX:XX
(mac-adressen på din enhet)sudo jstest /dev/input/js0
Siste tester inputene på ps4 kontroller.
Hvis alt funker kan du teste ut python programmet.
Når du er koblet opp med PS4 kontroller, må du sjekke hvor device (ps4 kontrolleren) er registrert.
Den skal ligge i /dev/input/
mappen.
Dette kan du finne ut av med det enkle python-scriptet list_devices.py
Kjør scriptet med:
python3 list_devices.py
Dette vil printe ut noe slik som:
/dev/input/event4 Wireless Controller XX:XX:XX:XX:XX:XX
/dev/input/event3 Wireless Controller Motion Sensors XX:XX:XX:XX:XX:XX
/dev/input/event2 Wireless Controller Touchpad XX:XX:XX:XX:XX:XX
/dev/input/event1 vc4-hdmi-1 vc4-hdmi-1/input0
/dev/input/event0 vc4-hdmi-0 vc4-hdmi-0/input0
I dette tilfellet er det /dev/input/event4
som har hovedfunksjonene til kontrolleren
Hvis din heter noe annet enn event4, må du oppdatere følgende verdi i linje 11 i programmet ps4controller.py
:
self.dev = InputDevice('/dev/input/event*')
Nå kan du kjøre programmet
python3 ps4controller.py