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 joystick

Componentes y suministros

Arduino UNO
× 1
Joystick de doble eje
× 1

Aplicaciones y servicios en línea

Arduino IDE
IDLE (Python GUI)

Acerca de este proyecto

Como alternativa al seguimiento del cursor de la computadora usando un mouse o un trackpad, hice esta misma aplicación con la ayuda de un joystick. El joystick puede mover el cursor en cualquier dirección (ejes X e Y) y también realiza la función de clic con el interruptor del joystick integrado.

Conceptos básicos-

Un joystick consiste simplemente en 2 potenciómetros alineados en la dirección xey. El arduino lee valores analógicos del joystick en el rango de 0 a 1023. Por lo tanto, cuando el joystick está en su posición predeterminada (centro), el valor analógico también se acerca a 500 (entre 0 y 1023).

El boceto de arduino está programado de manera que cuando el joystick se aleja del centro, se imprimen valores en el rango de -sensibilidad a + valor de sensibilidad (el valor predeterminado es 10) dependiendo de la posición. Entonces, cuando el joystick se mueve en una posición extrema, el arduino imprime el valor 10 y si el joystick se mueve en otra posición extrema, se imprime -10.

Para imprimir valores separados para las direcciones xey, usaremos ":" entre los valores de las direcciones xey. Ejemplo:

El estado del botón del joystick (SW) se imprime (1/0) en el monitor en serie después de los valores xey.

Para que la computadora portátil / computadora reconozca los valores, necesitaremos el módulo pyautogui de Python.

Programación Python

(editado el 11/12/2020 - cambió la biblioteca de 'pyautogui' a 'mouse')

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

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 la acción 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

El programa Python está hecho para leer los datos impresos por Arduino y reconocer la x y y valores de dirección, así como el estado del interruptor (SW).

Las coordenadas actuales del cursor se obtienen de la función del mouse mouse.get_position () que proporciona las coordenadas X e Y del cursor en forma de píxeles.

Cuando se mueve el joystick, los valores analógicos proporcionados por el arduino se agregan con la posición actual del cursor para mover el cursor en la dirección deseada.

Para mover el cursor en la dirección dada, la función mouse.move (X + x, Y + y) satisface este propósito.

donde X e Y es la posición actual del cursor y xey son las posiciones de incremento / decremento proporcionadas por el arduino.

ejemplo: mouse.moveTo (100,150) mueve el cursor a 100 píxeles en el eje xy 150 píxeles en el eje y.

Para realizar una operación de clic basada en el estado del software, mouse.click (button ="left") se utiliza.

Ejecución final

Cargue el boceto de arduino (que se muestra a continuación) en su arduino UNO y conecte el joystick a los pines de arduino como se indica en el esquema.

Después de asegurarse de que el mouse y pyserial estén instalados en su computadora / computadora portátil, realice los siguientes pasos.

1. Copie el boceto de Python en un archivo de bloc de notas. Especifique el puerto COM correcto del arduino. Desde el administrador de dispositivos, puede obtener el puerto COM al que está conectada la placa arduino. Guarde el archivo como ".py" después de realizar cambios.

2. Abra el IDLE de python (Python GUI) y abra el archivo del bloc de notas desde él.

3. ejecute el módulo.

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

En caso de que vea algún error, reinicie el IDLE y verifique si ha mencionado el puerto COM correcto del arduino.

Si no hay errores, mueva el joystick y verá el movimiento del cursor.

Código

  • Código Arduino
  • Código Python
Código Arduino Arduino
 //////////////////////////////////// Ratón controlado por joystick ////// por Shubham Santosh / ////////////////////////////////////// configuración vacía () {Serial.begin (9600); pinMode (9, ENTRADA); // SW pin digitalWrite (9, HIGH);} int prev_state =0; // estado anterior de switchvoid loop () {int z =0, xpos =0, ypos =0; int x =analogRead (A0); int y =analogRead (A1); sensibilidad int =10; // puede ajustar la sensibilidad según su comodidad if (x> =550) // cuando se mueve hacia arriba xpos =map (x, 550,1023,0, sensibilidad); if (x <=450) // cuando se mueve hacia abajo xpos =map (x, 450,0,0, -sensitivity); if (y> =550) // cuando se mueve a la derecha ypos =map (y, 550,1023,0, sensibilidad); if (y <=450) // cuando se mueve a la izquierda ypos =map (y, 450,0,0, -sensitivity); int curr_state =digitalRead (9); if (curr_state ==1 &&prev_state ==0) // cuando se presiona SW z =1; si no z =0; if (xpos! =0 or ypos! =0 or z ==1) // imprime solo cuando se mueve el joystick {Serial.print (xpos); // imprime los datos y separa por ":" Serial.print (":"); Serial.print (ypos); Serial.print (":"); Serial.println (z); } prev_state =curr_state; retraso (10); // para funcionamiento normal} 
Código Python Python
 # Ratón controlado por joystick # Por Shubham Santosh # última edición 12/11 / 2020import 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')) #read the data (x, y, z) =data.split (":") # asigna ax, y y z (X, Y) =mouse.get_position () # leer la posición actual del cursor (x, y) =(int (x), int (y)) #convertir a int mouse.move (X + x, Yy ) #mover el cursor a la posición deseada si '1' en z:# leer el estado de SW mouse.click (button ="left") # clicks botón izquierdo 

Esquemas


Proceso de manufactura

  1. Ratón de la computadora
  2. Ventilador de temperatura controlada
  3. Acuaponía controlada por Raspberry Pi
  4. Botón de AWS IoT controlado por movimiento
  5. Robot Raspberry Pi controlado por Bluetooth
  6. Robot controlado por Wifi usando Raspberry Pi
  7. MajorTom:ARDrone 2.0 controlado por voz de Alexa
  8. Coche RC controlado por joystick
  9. Juego de joystick
  10. Brazo robótico controlado por Nunchuk (con Arduino)
  11. Aleación 42 Aleación de expansión controlada