Paso 7: Código de Python
importación win32api, win32conserial de importación
# Posición inicial del Cursor Sensibilidad = 0.1
cx = 0
xMax = 1900
CY = 0
yMax = 1000
# Saber que puerto COM está el Arduino en
para com en range(15):
tratar de:
ser = serial. Serie (com, 9600) # abrir el puerto serie
Print("found on com",com+1) # si tienes aquí el puerto COM fue abierta OK
rotura # lo encontramos así que deja de buscar
excepto:
Imprimir ("nada en COM», com + 1)
ser.flushInput() # descartar contenido de búfer enCursor = 0 # inicio con el Cursor Disbled DEF swPressed(): mientras que 1: x = cx + xTilt, sensibilidad # x-Cursor = centro valor (cuando se presiona el botón) + valor de la inclinación sw = swPressed() # Marque el botón de
swState = 0 # el estado del interruptor
swStateD1 = 0 # el estado del interruptor de la última vez
volver a swStateD1 - swState # 0,1, -1: iguales, simplemente presiona, acaba de lanzar
# Lee una línea y separar el resto de los caracteres de nueva línea
rx = ser.readline().decode().split('\r\n')
# print(rx) # Debug
# Ahora separar los datos de las comas
datos = rx[0].split(',')
xTilt = int(data[0])
yTilt = int(data[1])
zTilt = int(data[2])
swStateD1 = swState # recordar el antiguo swState antes lo actualizamos
swState = int(data[3])
x = max (min (xMax, x), 0) # límite en las coordenadas de pantalla
y = cy - yTilt, sensibilidad
y = max (min (yMax, y), 0) # límite en las coordenadas de pantalla
# Deshabilitar el cursor ahora está habilitado y se presiona el interruptor
si (enCursor y sw == 1):
enCursor = 0
win32api.keybd_event(0x20, 0,0,0) # Presione la barra espaciadora para pausa Flight Simulator
win32api.keybd_event de (0 x 20, 0, win32con. KEYEVENTF_KEYUP, 0)
break
# Activar el cursor si ahora está desactivado y se pulsa el interruptor
elif (~ enCursor y sw == 1):
enCursor = 1
# Haga clic en el botón izquierdo del ratón
(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)))
# Hemos terminado. Cerrar el puerto Serial
ser.Close()