Vuelo simulador con Arduino y Python (6 / 9 paso)

Paso 6: Control del ratón del Python

Usaremos Python3.2 con la biblioteca pywin32 a ganar control sobre algunas de las funciones de Windows tales como Control del ratón. La biblioteca de pyserial nos permite leer lo que Arduino nos envía en el puerto Serial USB.

El código completo se muestra en el Siguiente Step. Por ahora vamos a ver las principales ideas que hacen que el código de trabajo.

1.
Al principio abrimos el puerto serie:
ser = serial. Serie (COM 1, 9600) # abrir el puerto serie

Pero primero tenemos que calcular hacia fuera qué puerto COM está en.
Hacer que probar cada uno a su vez. Si no tratan de la excepción y siga buscando.

# 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
break # lo encontramos así que deja de buscar
excepto:
Imprimir ("nada en COM», com + 1)

2.
swState es la variable que vamos a leer el estado del interruptor en (desde el puerto serie de Arduino).

Realmente no queremos saber el estado del interruptor. Queremos saber cuándo se ha pulsado el botón.
Podemos hacer esto por hacer el seguimiento del valor anterior y restando el valor actual de ella. Ponemos en una función:

DEF swPressed():
volver a swStateD1 - swState
# 0,1, -1: iguales, simplemente presiona, acaba de lanzar

es decir
swState: 1,1,1,0,0,0,1,1,-
swStateD1:-, 1,1,1,0,0,0,1,1
swPressed():-, 0,0,1,0,0,-1.0,

Como dice el comentario: cuando se pulsa el botón swPressed() devuelve 1

3.
Leemos los datos Serial enviados por Arduino usando ser.readline() como sigue:
Esta línea Lee una línea hasta e incluyendo los caracteres de la 'nueva ' línea '\r\n'.
rx = ser.readline().decode().split('\r\n')

y nos dividimos en comas
datos = rx[0].split(',')
Finalmente nos índice cada pedazo de datos fom datos (lista):
xTilt = int(data[0])
yTilt = int(data[1])
zTilt = int(data[2])
swState = int(data[3])

4.
A continuación calculamos la x, y posición para el cursor basado en la posición de "centro" (es decir el cx posición de cy del cursor cuando presionamos el interruptor para activar control del cursor - más sobre esto más adelante) y la inclinación. También damos algún control sobre la sensibilidad, es decir cuánto la x, y valores mover para un valor dado de la inclinación:
x = cx + xTilt, sensibilidad

Y limitamos la x, y valores. Muy bien hecho en Python como sigue:
x = max (min (xMax, x), 0) # límite en las coordenadas de pantalla

5.
Finalmente comprobamos si el conmutador pasó de no presionó a presiona:
sw = swPressed() # Marque el botón de

Si sólo fue presionado y estamos en control del cursor (enCursor == 1) y luego nos desactivar el cursor y romper el lazo mientras que termina el programa. Pero antes tenemos que imitar la pulsación de la tecla de espacio para simulador de vuelo de pausa como sigue:
win32api.keybd_event(0x20, 0,0,0) # Pulse la barra espaciadora para pausar el simulador de vuelo
win32api.keybd_event (0 x 20, 0, win32con. KEYEVENTF_KEYUP, 0)

Por otra parte si solo se presiona el interruptor y no estamos en control del cursor (enCursor == 0) entonces tenemos que activar el cursor (enCursor == 1), actualizar el cx, cy variables a la situación actual
(cx, cy) = win32api. GetCursorPos()
obtenemos el cx, cy valores por lo que podemos mover el cursor + o - de este punto en x y y como el acelerómetro está inclinado.

y haga clic en el botón izquierdo del ratón utilizando la biblioteca de win32 :
win32api.mouse_event (win32con. MOUSEEVENTF_LEFTDOWN,int(x),int(y),0,0)
win32api.mouse_event (win32con. MOUSEEVENTF_LEFTUP,int(x),int(y),0,0)

Ahora si estamos en control del cursor, movemos el cursor a x, posición y se calcularon antes de la inclinación:
si enCursor: win32api. SetCursorPos((int(x),int(y)))

=================

Copie el código en el paso siguiente en una nueva ventana en IDLE (IDE de Python) y guardar como mouse.py

Artículos Relacionados

Capturar la imagen mediante sensor ultrasónico con arduino

Capturar la imagen mediante sensor ultrasónico con arduino

Llevo muy pocos meses en el espacio de la IOT y tratar de integrar cosas con placa Arduino, recientemente me encontré con sensor ultrasónico, es interesante. Así que pensé en crear un pequeño proyecto. El objetivo del proyecto es capturar el obstácul
Modbus RTU Master con Arduino en 5 minutos parte 1

Modbus RTU Master con Arduino en 5 minutos parte 1

¿Empiezo con la siguiente pregunta que Arduino puede ser utilizado en aplicaiones industriales? por supuesto, utilizando un protocolo común utilizado en la industria llamada Modbus RTU Serial en este caso configurado como maestro.Comunicación MODBUS
Una esfera levitando gira se ilumina y parpadea con Arduino

Una esfera levitando gira se ilumina y parpadea con Arduino

Una estrella de la muerte poco levitando en Instructables me invitó al nuevo proyecto con Arduino. Tres políticas se decidió y se mantuvieron para diferenciarlo del precursor.Hacerlo yo misma con Ready-Made no (o menos).Guardar el girar.Que brillan y
Radio manía de AtoZ de RC + DIY con ARDUINO

Radio manía de AtoZ de RC + DIY con ARDUINO

Wikipedia define vehículo RC comoUn vehículo de control remoto es cualquier vehículo que es controlado remotamente por un medio que no restringe su movimiento con un origen externo al dispositivo. A menudo se trata de un dispositivo de control de rad
Uber domótica con Arduino y Pi

Uber domótica con Arduino y Pi

[EDITAR] He creado un foro para colaborar en el código de puerta de enlace.http://homeautomation.proboards.com/Board/2/openha...Hace unos años me convertí en propietario de un perro por primera vez. Me gustaba salir de Cody en la perrera solo todo el
Controles de lectura/emular con Arduino y frambuesa Pi

Controles de lectura/emular con Arduino y frambuesa Pi

Mandos a distancia están en todas partes. Son la interfaz a su televisores, sistemas de música y qué no. Probablemente tienes unos cuantos de repuesto ahí, devastada en la desaparición de su mejor. Animarlos y les ponga en uso! (Skynet aprueba...)Aqu
Construir tu Robot de Streaming de Video en Internet controlado con Arduino y frambuesa Pi

Construir tu Robot de Streaming de Video en Internet controlado con Arduino y frambuesa Pi

< el instructivo y el código están listos. ¡ Disfrute! Dejo un comentario Comentarios! >Yo soy (aka LiquidCrystalDisplay / Italia), un estudiante de 14 años de aprendizaje de Israel en el Max Shein secundaria para matemáticas y ciencia avanzada. Est
IR Control remoto para tu ordenador con arduino

IR Control remoto para tu ordenador con arduino

Con este receptor, controlar el ordenador remotamente gracias al módulo IR y Arduino.Modo de Lazzy activado ^^Paso 1: En primer lugar debo desmontar receptor de IR de Sony VAIO myold.Receptor IR que viene de mi padre, totalmente inservible porque pro
Simulador de Arduino OBD2

Simulador de Arduino OBD2

Ive sido un Arduino OBD2 escáner interfaz con puerto de OBD2 de mi Jeep, pero del edificio se convirtió en un beeeeeg! arrastrados a subir el código a mi Arduino Nano + 16 x 2 LCD + dispositivo de escáner ELM327, luego llevar el prototipo todo el Jee
Audio estéreo con Arduino

Audio estéreo con Arduino

Recientemente yo he publicando un montón de proyectos que usan un 8 bit escala de resistenciaconvertidor digital a analógico (DAC) y un Arduino para hacer sonido. (ver el cuadro de efectos vocales de Arduino, Arduino tambor sampler y mi tutorial de s
Utilizando un Arduino y Python para parcela/guardar datos

Utilizando un Arduino y Python para parcela/guardar datos

una manera rápida y fácil de ver (y guarde) datos extraídos utilizando un Arduino a tu ordenador.(Nota: no es el método más sólido, pero funciona bastante bien)Materiales:-Arduino (estoy usando un Uno)-Ordenador (tengo un Dell, pero no importa si est
Automatización casera con Arduino... Y JavaScript!

Automatización casera con Arduino... Y JavaScript!

En este instructable (mi primera una realidad), te guiará para realizar la automatización en su hogar con Arduino, sí, no tan nueva... Pero también se incluyen JavaScript, usando Node.js y una impresionante biblioteca con Arduino llamado johnny cinco
Cerradura puerta con Arduino

Cerradura puerta con Arduino

Aquí estamos con la clásica cerradura RFID. Es clásico en ese sentido todo, "Vivir en el futuro y tomar por sentado en este momento". En este tutorial, vamos a establecer un pestillo de puerta que puede abrirse con el golpe de una etiqueta RFID!
Android controla LEDs RGB con Arduino

Android controla LEDs RGB con Arduino

Hai a todos en el post iam va a mostrar cómo controlar el LED RGB utilizando android con arduino y el módulo Bluetooth HC-05.He buscado en la web hay muchas técnicas para controlar el LED RGB. Pero este es el método que es muy simple y fácil.En este