- Componentes requeridos
- Arduino Leonardo
- Módulo de joystick XY de doble eje
- Diagrama de circuito
- Código y explicación de trabajo
Anteriormente interconectamos Joystick con Arduino UNO para comprender cómo funciona y controlamos cuatro LED en su movimiento izquierdo, derecho, arriba y abajo. En este proyecto usaremos el mismo Joystick que el Gamepad o el controlador de juegos para jugar cualquier juego de computadora que requiera movimientos de izquierda, derecha, arriba y abajo. Para jugar juegos que requieren más opciones de control, se pueden usar dos o más joysticks. Aquí usaremos Arduino Leonardo para conectar Joystick como controlador de juego. Arduino Leonardo tiene la ventaja sobre Uno de que podemos instalar controladores USB en él y puede ser detectado como mouse, teclado o joystick por computadora cuando está conectado.
Componentes requeridos
- Arduino Leonardo
- Módulo de joystick XY de doble eje
- IDE de Arduino
- Cables de conexión
Arduino Leonardo
Para este proyecto estamos usando el Arduino Leonardo, es una placa de microcontrolador basada en el ATmega32u4. Tiene 20 pines de entrada / salida digital (de los cuales 7 se pueden usar como salidas PWM y 12 como entradas analógicas), un oscilador de cristal de 16 MHz, una conexión micro USB, un conector de alimentación, un encabezado ICSP y un botón de reinicio. Contiene todo lo necesario para soportar el microcontrolador; simplemente conéctelo a una computadora con un cable USB o enciéndalo con un adaptador de CA a CC o una batería para comenzar.
El Leonardo es diferente de todas las placas anteriores en que el ATmega32u4 tiene comunicación USB incorporada, eliminando la necesidad de un procesador secundario. Esto permite que Leonardo aparezca en una computadora conectada como un mouse y un teclado, además de un puerto serial / COM virtual (CDC).
Especificaciones técnicas
Microcontrolador | ATmega32u4 |
Tensión de funcionamiento | 5V |
Voltaje de entrada (recomendado) | 7-12 V |
Voltaje de entrada (límites) | 6-20 V |
Pines de E / S digitales | 20 |
Canales PWM | 7 |
Canales de entrada analógica | 12 |
Corriente CC por pin de E / S | 40 mA |
Corriente CC para pin de 3.3V | 50 mA |
Memoria flash | 32 KB (ATmega32u4) de los cuales 4 KB utiliza el gestor de arranque |
SRAM | 2,5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
Velocidad de reloj | 16 MHz |
Longitud | 68,6 milímetros |
Anchura | 53,3 milímetros |
Peso | 20 g |
Referencia de salida de PIN
Módulo de joystick XY de doble eje
Los joysticks están disponibles en diferentes formas y tamaños. En la figura siguiente se muestra un módulo de joystick típico. Este módulo de joystick generalmente proporciona salidas analógicas y los voltajes de salida proporcionados por este módulo siguen cambiando según la dirección en la que lo movemos. Y podemos obtener la dirección del movimiento interpretando estos cambios de voltaje usando algún microcontrolador. Anteriormente, interconectamos el joystick con diferentes microcontroladores:
- Interfaz de Joystick con Arduino
- Interfaz de Joystick con Raspberry Pi
- Interfaz del joystick con el microcontrolador PIC
- Interfaz de joystick con microcontrolador AVR
Este módulo de joystick tiene dos ejes como puede ver. Son el eje X y el eje Y. Cada eje de JOY STICK está montado en un potenciómetro o potenciómetro. Los puntos medios de estas macetas se eliminan como Rx y Ry. Entonces Rx y Ry son puntos variables para estos botes. Cuando el Joystick está en espera, Rx y Ry actúan como divisores de voltaje.
Cuando el joystick se mueve a lo largo del eje horizontal, el voltaje en el pin Rx cambia. De manera similar, cuando se mueve a lo largo del eje vertical, el voltaje en el pin Ry cambia. Entonces tenemos cuatro direcciones de Joystick en dos salidas ADC. Cuando se mueve la palanca, el voltaje en cada pin sube o baja dependiendo de la dirección.
Diagrama de circuito
Este controlador de juego Arduino Joystick requiere conexiones entre el Arduino y el Joystick de la siguiente manera:
Código y explicación de trabajo
El código completo con un video de demostración se proporciona al final; aquí estamos explicando algunas partes importantes.
En primer lugar, necesitamos inicializar la biblioteca del teclado.
#incluir
A continuación, en el siguiente código, hemos inicializado los ejes X e Y del módulo Joystick para el pin analógico A0 y A1 respectivamente.
const int X_pin y const int Y_pin respectivamente
Se lee el valor analógico del pin VRX y si el valor es 1023 entonces se da el comando para "arriba" y si el valor es 0, se da el comando para "abajo".
De manera similar, se lee el valor analógico del pin VRY y si el valor es 1023 entonces se da el comando para "derecha" y si el valor es 0, se da el comando para "izquierda".
El joystick también tiene un botón en la parte superior, por lo que este botón (SW) también se lee y si se presiona el botón, el valor será 0, entonces se da el comando para "ingresar".
Finalmente, grabe el código en Arduino y conecte el Arduino con la computadora.
A continuación, marque " Dispositivos e impresoras" en su panel de control, podrá ver " Arduino Leonardo" en la sección de dispositivos como se muestra en la imagen de abajo. Ahora estás listo para jugar con el joystick.
Podemos controlar los controles de cualquier juego usando este Joystick. El Joystick tiene dos potenciómetros en su interior, uno para el movimiento del eje X y otro para el movimiento del eje Y. Cada potenciómetro recibe 5v del Arduino. Entonces, a medida que movemos el joystick, el valor de voltaje cambiará y el valor analógico en los pines analógicos A0 y A1 también cambiará. Entonces el joystick actuará como un gamepad.
Así es como un Joystick normal se puede convertir en un controlador de juego usando Arduino Leonardo y se puede usar para jugar juegos que tienen todos los controles para moverse hacia la izquierda, derecha, arriba y abajo. Como se dijo anteriormente, se puede conectar más de un Joystick para obtener más controles además de estas cuatro funciones básicas.