Étape 7: Python Code
importation win32api, win32conimportation de série
# Position du curseur initial Sensibilité = 0,1
cx = 0
xMax = 1900
CY = 0
yMax = 1000
# Savoir quel port COM l’Arduino est sur
pour com par range(15) :
Essayez :
SER = serial. Série (com, 9600) # ouvrir le Port série
Print("found on com",com+1) # si vous êtes arrivé ici le port COM a été ouvert OK
Pause # nous l’avons trouvé alors arrêtez de la recherche
sauf :
Print ("rien sur la COM", com + 1)
ser.flushInput() # contenu de mémoire tampon jeter enCursor = 0 # Start avec le curseur Disbled def swPressed() : tout en 1 : x = cx + xTilt/sensibilité # x-curseur = valeur centre (lorsque le bouton est enfoncé) + valeur d’inclinaison sw = swPressed() # vérifier le bouton
swState = 0 # l’état de l’interrupteur
swStateD1 = 0 # l’état de l’interrupteur, la dernière fois
Retour à swStateD1 - swState # 0,1, -1 : même, juste pressé, vient de sortir
# Lire une ligne et séparer les caractères de saut de ligne du reste
rx = ser.readline().decode().split('\r\n')
# print(rx) # Debug
# Maintenant séparer les données et les virgules
données = rx[0].split(',')
xTilt = int(data[0])
yTilt = int(data[1])
zTilt = int(data[2])
swStateD1 = swState # n’oubliez pas le vieux swState avant de nous mettre à jour
swState = int(data[3])
x = max (min (xMax, x), 0) # limite pour les coordonnées écran
y = cy - yTilt/sensibilité
y = max (min (yMax, y), 0) # limite pour les coordonnées écran
# Désactiver le curseur s’il est activé maintenant et que vous appuyez sur l’interrupteur
si (enCursor et sw == 1) :
enCursor = 0
win32api.keybd_event(0x20, 0,0,0) # Appuyez sur la touche espace pour Pause Flight Simulator
win32api.keybd_event (0 x 20, 0, win32con. KEYEVENTF_KEYUP, 0)
break
# Activer le curseur s’il est désactivé maintenant et que vous appuyez sur l’interrupteur
elif (~ enCursor et sw == 1) :
enCursor = 1
# Cliquez sur le bouton gauche de la souris
(cx, cy) = win32api. GetCursorPos()
win32api.mouse_event (win32con. MOUSEEVENTF_LEFTDOWN,int(x),int(y),0,0)
win32api.mouse_event (win32con. MOUSEEVENTF_LEFTUP,int(x),int(y),0,0)
Si enCursor : win32api. SetCursorPos((int(x),int(y)))
# Nous avons finis. Fermer le Port série
SER.Close()