- Módulo Raspberry Pi y Joystick:
- Componentes requeridos:
- Diagrama de circuito:
- Explicación de trabajo:
En esta sesión vamos a conectar un Joystick con Raspberry Pi. El joystick se utiliza principalmente para jugar a varios juegos. Aunque los joysticks tipo USB son fáciles de conectar, pero hoy vamos a conectar Joystick a través de pines GPIO de Raspberry Pi, esto será útil en muchos casos.
Módulo Raspberry Pi y Joystick:
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 hemos utilizado el Microcontrolador AVR con Joystick.
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.
Como sabemos, Raspberry Pi no tiene un mecanismo interno ADC (convertidor analógico a digital). Por lo tanto, este módulo no se puede conectar directamente al Pi. Usaremos comparadores basados en amplificadores operacionales para verificar las salidas de voltaje. Estos OP-Amps proporcionan señales a Raspberry Pi y Pi conmuta los LED según las señales. Aquí hemos utilizado cuatro LED para indicar el movimiento del Joystick en cuatro direcciones. Vea el video de demostración al final.
Cada uno de los 17 pines GPIO no puede soportar un voltaje superior a + 3,3 V, por lo que las salidas del amplificador operacional no pueden ser superiores a 3,3 V. Por lo tanto, hemos elegido el amplificador operacional LM324, este IC tiene un amplificador operacional cuádruple que puede funcionar a 3V. Con este IC, tenemos salidas adecuadas para salidas para nuestros Pines GPIO Raspberry pi. Obtenga más información sobre los pines GPIO de Raspberry Pi aquí. Consulte también nuestra serie de tutoriales de Raspberry Pi junto con algunos buenos proyectos de IoT.
Componentes requeridos:
Aquí estamos usando Raspberry Pi 2 Model B con Raspbian Jessie OS. Todos los requisitos básicos de hardware y software se discutieron anteriormente, puede buscarlos en la Introducción de Raspberry Pi y el Parpadeo del LED de Raspberry PI para comenzar, aparte de eso, necesitamos:
- Condensador de 1000 µF
- Módulo de joystick
- Circuito integrado de amplificador operacional LM324
- Resistencia de 1KΩ (12 piezas)
- LED (4 piezas)
- Resistencia de 2,2 KΩ (4 piezas)
Diagrama de circuito:
Hay cuatro comparadores OP-AMP dentro del LM324 IC para detectar cuatro direcciones de Joystick. A continuación se muestra el diagrama de LM324 IC de su hoja de datos.
Las conexiones que se realizan para el módulo de interfaz de joystick con Raspberry Pi se muestran en el diagrama de circuito a continuación. U1: A, U1: B, U1: C, U1: D indica los cuatro comparadores dentro de LM324. Hemos mostrado cada comparador en el diagrama del circuito con el Pin correspondiente no. de LM324 IC.
Explicación de trabajo:
Para detectar el movimiento del Joystick a lo largo del eje Y, tenemos OP-AMP1 o U1: A y OP-AMP2 o U1: B, y para detectar el movimiento del Joystick a lo largo del eje X, tenemos OP-AMP3 o U1: C y OP-AMP4 o U1: D.
OP-AMP1 detecta el movimiento a la baja del joystick a lo largo del eje Y:
Terminal negativo del comparador U1: A se proporciona con 2,3 V (usando un circuito divisor de voltaje de 1 K y 2,2 K) y el terminal positivo está conectado a Ry. Al mover el joystick hacia abajo a lo largo de su eje Y, el voltaje Ry aumenta. Una vez que este voltaje supera los 2,3 V, OP-AMP proporciona una salida de + 3,3 V en su pin de salida. Esta salida lógica ALTA de OP-AMP será detectada por Raspberry Pi y Pi responde alternando un LED.
OP-AMP2 detecta el movimiento ascendente del joystick a lo largo del eje Y:
El terminal negativo del comparador U1: B se proporciona con 1.0V (usando un circuito divisor de voltaje de 2.2K y 1K) y el terminal positivo está conectado a Ry. Al mover el joystick hacia arriba a lo largo de su eje Y, el voltaje Ry disminuye. Una vez que este voltaje desciende por debajo de 1.0V, la salida OP-AMP baja. Esta salida lógica BAJA de OP-AMP será detectada por Raspberry Pi y Pi responde alternando un LED.
OP-AMP3 detecta el movimiento del lado izquierdo del joystick a lo largo del eje X:
El terminal negativo del comparador U1: C se proporciona con 2,3 V (utilizando un circuito divisor de voltaje de 1 K y 2,2 K) y el terminal positivo está conectado a Rx. Al mover el joystick hacia la izquierda a lo largo de su eje x, aumenta el voltaje Rx. Una vez que este voltaje supera los 2,3 V, OP-AMP proporciona una salida de + 3,3 V en su pin de salida. Esta salida lógica ALTA de OP-AMP será detectada por Raspberry Pi y Pi responde alternando un LED.
OP-AMP4 detecta el movimiento del lado derecho del joystick a lo largo del eje X:
El terminal negativo del comparador U1: 4 se proporciona con 1.0V (usando un circuito divisor de voltaje por 2.2K y 1K) y el terminal positivo está conectado a Rx. Al mover el joystick a la derecha a lo largo de su eje x, el voltaje de Rx disminuye. Una vez que este voltaje desciende por debajo de 1.0V, la salida OP-AMP baja. Esta salida lógica BAJA de OP-AMP será detectada por Raspberry Pi y Pi responde alternando un LED.
De esta manera, las cuatro lógicas, que determinan las cuatro direcciones del Joystick, se conectan a Raspberry Pi. Raspberry Pi toma las salidas de estos comparadores como entradas y responde en consecuencia alternando los LED. A continuación se muestran los resultados que se muestran en el terminal de la Raspberry Pi, ya que también hemos impreso la dirección del Joystick en el terminal usando nuestro código Python.
El código y el video de Python se muestran a continuación. El código es fácil y puede entenderse por los comentarios que se dan en el código.