Interface graphique en Python de contrôle pour le iRacer.

1) Vérification de la présence de la clé usb bluetooth :

[~] ➔ hcitool dev
Devices:
    hci0    00:15:83:4D:0E:3D

2) Scruter les périphéries bluetooth :

[~] ➔ hcitool scan
Scanning ...
    00:12:05:09:98:43   DaguCar

3) Connecter le périphérie iRacer/DaguCar : Le code pin est : 1234

[~] ➔ bluez-simple-agent hci0 00:12:05:09:98:43
RequestPinCode (/org/bluez/2414/hci0/dev_00_12_05_09_98_43)
Enter PIN Code: 1234
Release
New device (/org/bluez/2414/hci0/dev_00_12_05_09_98_43)

Erreur :

~] ➔ bluez-simple-agent hci0 00:12:05:09:98:43
Creating device failed: org.bluez.Error.AlreadyExists: Already Exists

Solution : Dans le gestionnaire de bluetooth, enlever les périphérique bluebooth. Lien : https://bbs.archlinux.org/viewtopic.php?id=141698 4) Script python de test : Ouvrir :

ARDUINO/test.py

Ajouter :

import sys
import select
import tty
import termios
import bluetooth
import time
from evdev import InputDevice, categorize, ecodes
if __name__ == '__main__':
        # Mettre ici l'adresse bluetooth du iRacer
    bd_addr = "00:12:05:09:98:43"
    port = 1
    sock = bluetooth.BluetoothSocket( bluetooth.RFCOMM )
    sock.connect((bd_addr, port))
    # 0x5X for left forward. 0x51 very slow. 0x5F fastest
    sock.send('\x5A')
    time.sleep(3);
    # 0x6X for right forward. 0x11 very slow. 0x1F fastest
    sock.send('\x6A')
    time.sleep(3);
    # 0x2X for straight backward. 0x21 very slow. 0x2F fastest
    sock.send('\x2A')
    time.sleep(3);
    # 0x1X for straight forward. 0x11 very slow. 0x1F fastest
    sock.send('\x1A')
    time.sleep(3);
    #stop
    sock.send('\x00')

Action :

[~] ➔ cd IRACER/
[~/IRACER] ➔ python ./test.py

La voiture se déplace avec un temps de pause de 3 secondes entres chaque mouvement. 5) Interface graphique en Python de contrôle : Taper sur les touches pour effectuer les différents mouvements :