Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Ratón controlado por teléfono inteligente

Componentes y suministros

Arduino UNO
× 1
Módulo Bluetooth HC-05
× 1
Cables de puente (genéricos)
× 1

Aplicaciones y servicios en línea

Arduino IDE
IDLE (Python GUI)
MIT App Inventor Bluetooth Mouse Control

Acerca de este proyecto

Este proyecto es similar a mi trabajo anterior en el que he usado un joystick para controlar el cursor de una PC. La diferencia clave es que he creado una aplicación para teléfonos inteligentes que contiene 2 joysticks virtuales para mover el cursor y desplazarse por la pantalla y también hace clic izquierdo y derecho como un trackpad normal.

Trabajando

El proyecto involucra una aplicación de teléfono inteligente que envía los datos del eje xey del joystick, el estado de desplazamiento, el estado del clic izquierdo y derecho usando bluetooth al Arduino Uno conectado al módulo bluetooth HC-05. Estos datos al recibirlos en Arduino se manipulan para realizar cambios en la posición actual del cursor para obtener una nueva posición. Los datos resultantes junto con el estado del botón y el desplazamiento se imprimen como la salida que el boceto de Python reconoce como leída. El boceto de Python está hecho para ejecutar acciones del mouse usando el módulo del mouse.

Acerca de la aplicación

La aplicación para teléfonos inteligentes se crea utilizando MIT-App Inventor. Crear la aplicación es simple, ya que solo necesita agregar los bloques deseados para construir su aplicación requerida. Me he referido al tutorial de robótica de Tabletop sobre cómo hacerlos. La pantalla principal de la aplicación es la siguiente:

Antes de enviar la información principal al módulo HC-05, la aplicación envía primero un número de un byte (255) para indicar el inicio de la información. La secuencia de transferencia de datos es la siguiente:

1. Envíe "255" para indicar el inicio

2. Envíe el valor del eje x del joystick de 1 byte

3. Envíe el valor del eje y del joystick de 1 byte

4. Enviar estado de clic izquierdo, botón de clic derecho y estado de desplazamiento (1 byte).

Los datos de la aplicación se envían cada 20 milisegundos al Arduino UNO.

Lado de Arduino

El Arduino recibe los bytes de datos de la aplicación con la ayuda del módulo Bluetooth HC-05. El Arduino contiene las coordenadas actuales del cursor donde las coordenadas x van de 0 a 1279 y las coordenadas y van de 0 a 799. He obtenido estas coordenadas extremas de la función Python mouse.get_position () que devuelve las coordenadas cuando se mueve el cursor (no se usa en el boceto principal).

Según los datos recibidos al mover el joystick, la posición actual del cursor (coordenadas xey) se suma / resta con los datos recibidos por la aplicación para mover el cursor a la nueva coordenada deseada. Luego, los datos finales se imprimen en el monitor serial en la secuencia que se indica a continuación.

El programa Python finalmente lee la siguiente secuencia de datos para ejecutarla. Para esto, necesitaremos descargar módulos adicionales, a saber, mouse y pyserial, en los pasos que se detallan a continuación.

Programación Python

El usuario debe tener Python 3 instalado en su computadora portátil / computadora. Se puede descargar desde aquí.

(Para Windows)

Después de la instalación, copie la ruta de la ubicación del archivo Python.

Los siguientes pasos deben realizarse en el símbolo del sistema. Abra el símbolo del sistema e ingrese lo siguiente:

1. cd

2. py –m pip install –-upgrade pip

3. py –m pip install mouse

4. py -m pip install pyserial

El ratón El módulo se utiliza para realizar acciones del mouse y pyserial El módulo se utiliza para enviar / recibir datos del arduino. Ya había instalado los módulos necesarios, así que obtuve este

Ejecución

Instale la aplicación Bluetooth Mouse Control en el dispositivo de su teléfono inteligente.

Sube el boceto de Arduino a tu Arduino UNO y sigue el circuito como se indica en el esquema.

Lado de Python -

1. Copie y pegue el código Python en un archivo de bloc de notas. Cambie el puerto COM al puerto COM de su Arduino UNO y guárdelo como '.py'.

2. Abra Python IDLE y abra el archivo del bloc de notas.

3. Ejecute el boceto.

A continuación, volverá a la pantalla de la figura 2.2.

Abra la aplicación del teléfono inteligente y conéctese al módulo bluetooth y notará el movimiento del cursor al cambiar la dirección del joystick.

Código

  • Código Arduino
  • Código Python
Código Arduino Arduino
 int datareceived [5] {0,0,0,0}; // Para almacenar el byte de phoneint in_byte =0; int array_index =0; int l_prev =0, r_prev =0; // estado anterior del botón izquierdo y derecho del mouse void setup () {Serial.begin (9600); // inicia el monitor de serie} int height =0, width =0; void loop () {int clicks =0; sensibilidad int =20; // puede ajustar la sensibilidad int xpos =0, ypos =0; if (Serial.available ()> 0) {// recibir byte del teléfono in_byte =Serial.read (); // almacena en byte en una variable if (in_byte ==(255)) {// si la variable es 0 stet la matriz está fijada a 0. array_index =0; } datos recibidos [array_index] =in_byte; // almacena el número en una matriz array_index =array_index +1; if (datos recibidos [1]> =110) xpos =map (datos recibidos [1], 110,172,0, sensibilidad); // Cuando se mueve a la derechaif (datareceived [1] <=70) xpos =map (datareceived [1], 60,1,0, -sensitivity); // Cuando se mueve a la izquierdaif (datareceived [2]> =110) ypos =map (datareceived [2], 110,255,0, sensibilidad); // Cuando se mueve hacia abajoif (datareceived [2] <=60) ypos =map (datareceived [2], 70,1,0, -sensitivity); // Cuando se mueve hacia arribaif (datareceived [3] ==1 &&l_prev ==0) // PARA reconocer un solo botón, presione clicks =1; else if (datareceived [3] ==2 &&r_prev ==0) clicks =2; de lo contrario, si (datos recibidos [3] ==3 || datos recibidos [3] ==4) clics =datos recibidos [3]; // scrolll_prev =datareceived [3]; r_prev =datareceived [3]; if (xpos! =0 or ypos! =0 or clicks! =0) // cuando se mueve el joystick o se presiona o se desplaza el botón { alto =alto + ypos; ancho =ancho + xpos; if (alto> =799) alto =799; if (alto <=0) alto =0; if (ancho> =1279) ancho =1279; if (ancho <=0) ancho =0; Serial.print (ancho); Serial.print (":"); Serial.print (alto); Serial.print (":"); Serial.println (clics); clics =0;} }} 
Código Python Python
 import mouse, sysimport time import serialmouse.FAILSAFE =FalseArduinoSerial =serial.Serial ('com3', 9600) #Especifique el puerto COM correcto.sleep (1) #delay of 1 second while 1:data =str (ArduinoSerial.readline () .decode ('ascii')) (x, y, z) =data.split (":") # leer los datos de los ejes x e y (x, y) =(int (x), int (y) ) # convertir a int mouse.move (x, y) # mover el cursor a las coordenadas deseadas si '1' en z:mouse.click (button ="left") #click mouse button elif '2' in z:mouse. click (button ="right") elif '3' in z:mouse.wheel (delta =-1) # Desplazarse hacia abajo elif '4' in z:mouse.wheel (delta =1) # Desplazarse hacia arriba 

Esquemas


Proceso de manufactura

  1. Robot Raspberry Pi controlado por Bluetooth
  2. Luz de mesa interactiva controlada por gestos
  3. Voltímetro de bricolaje con Arduino y un teléfono inteligente
  4. LED controlados por Alexa a través de Raspberry Pi
  5. Coche RC controlado por joystick
  6. ¡Arduino con Bluetooth para controlar un LED!
  7. Brazo robótico controlado por Nunchuk (con Arduino)
  8. Robot controlado por voz
  9. MobBob:Robot Arduino DIY controlado por un teléfono inteligente Android
  10. Dispositivos Bluetooth controlados por voz con OK Google
  11. Robot de piano controlado por Arduino:PiBot