Select Page

Cuando escuchas la palabra Joystick , lo primero que te viene a la mente son los controles del juego. Se usan principalmente para jugar, aunque en DIY Electronics, hay muchas cosas divertidas que puedes hacer con él. Como controlar un robot / un rover, controlar el movimiento de la cámara; Estos son solo la punta del iceberg.

Existen varias versiones de placa con joystick, una de las más comunes es un joystick shield. Como todo shield, se conecta sobre el Arduino UNO y y nos proporsiona un joystick y 4 botones simulando perfectamente un control de videojuego.

joystick shield

Descripción del Joystick

Este es un joystick para Arduino muy similar a los joysticks «analógicos» en los controladores de PS2 (PlayStation 2). Es un joystick autocentrado con resorte, lo que significa que cuando suelte el joystick se centrará solo, es decir, vuelve al centro. También contiene una cómoda perilla / tapa de tipo copa de plástico que se adapta muy cómodamente a un pulgar.

joystick arduino ps2

El objetivo del joystick es comunicar el movimiento en 2D (2 ejes) de un dedo a un Arduino. Esto se logra al alojar dos potenciómetros independientes de 10K (uno por eje). Estos potenciómetros se utilizan como divisores de voltaje ajustables duales, proporcionando una entrada analógica de 2 ejes en forma de barra de control.

Los potenciómetros son las dos cajas azules a los lados del joystick. Si mueve el joystick mientras observa el eje central de cada potenciómetro, verá que cada uno de los potenciómetros recoge el movimiento en una sola dirección. Discutiremos cómo funcionan realmente, un poco más tarde.

Joystick Analogico PS2 para Arduino 2

Este joystick también contiene un botón o interruptor que se activa cuando presionas la tapa hacia abajo. El interruptor es la pequeña caja negra en la parte posterior del joystick. Si presiona hacia abajo la tapa, puede ver una palanca presionando hacia abajo en la cabeza del interruptor. La palanca funciona sin importar en qué posición se encuentre el joystick.

Cómo funciona el Joystick Arduino

Cuando gira el joystick, el mango del pulgar mueve una varilla estrecha que se encuentra en dos ejes ranurados giratorios (cardán). Uno de los ejes permite el movimiento en el eje X (izquierda y derecha) mientras que el otro permite el movimiento en el eje Y (arriba y abajo). Al inclinar la palanca hacia adelante y hacia atrás, el eje del eje Y gira de lado a lado. Inclinarlo de izquierda a derecha gira el eje del eje X. Cuando mueve la palanca en diagonal, pivota ambos ejes.

Se conecta un potenciómetro a cada eje del joystick que interpreta la posición de la barra como lecturas analógicas. Al mover los ejes ranurados, gira el brazo de contacto del potenciómetro. En otras palabras, si empuja la palanca completamente hacia adelante, girará el brazo de contacto del potenciómetro hacia un extremo de la pista, y si lo empuja hacia usted, girará el brazo de contacto hacia el otro lado.

Cómo usar el joystick

Para leer la posición física del joystick, necesitamos medir el cambio en la resistencia de un potenciómetro. Este cambio puede ser leído por un pin analógico Arduino usando ADC.

Como la placa Arduino tiene una resolución ADC de 10 bits, los valores en cada canal analógico (eje) pueden variar de 0 a 1023. Entonces, si la palanca se mueve en el eje X de un extremo al otro, los valores X cambiarán de 0 a 1023 y ocurre algo similar cuando se mueve a lo largo del eje Y. Cuando el joystick permanece en su posición central, el valor es de alrededor de 512.

El siguiente gráfico muestra las direcciones X e Y y también proporciona una indicación de cómo responderán las salidas cuando se empuja el joystick en varias direcciones.

joystick arduino como leer entradas analogicas

NOTA
Para utilizar este joystick de pulgar, querrá comprender qué dirección es X y qué dirección es Y. También deberá descifrar la dirección en la que se empuja en la dirección X o Y.

Módulo Joystick PinOut

Echemos un vistazo al pinout del módulo PS2 Joystick para Arduino de 2 ejes.

Joystick Analogico PS2 para Arduino 3

GND es el pin de tierra al que conectamos el pin GND en el Arduino.

VCC suministra energía para el módulo. Puede conectarlo a la salida de 5V de su Arduino.

 VRx da lectura del joystick en la dirección horizontal (coordenada X), es decir, qué tan lejos se empuja el joystick hacia la izquierda y hacia la derecha.

VRy da lectura del joystick en la dirección vertical (coordenada Y), es decir, qué tan arriba y abajo se empuja el joystick.

SW es la salida del botón pulsador. Normalmente está abierto, lo que significa que la lectura digital del pin SW será ALTA. Cuando se presiona el botón, se conectará a GND, dando salida BAJA.

Joystick conexión a Arduino UNO

¡Ahora que sabemos todo sobre el módulo, es hora de ponerlos en uso!

Como sabemos, para determinar las coordenadas X e Y del joystick, necesitamos conectar ambas salidas analógicas del joystick a los pines analógicos del Arduino. Para nuestra placa Arduino, conectamos VRx al pin analógico A0 del Arduino y VRy al pin analógico A1 del Arduino.

Para leer si la perilla del joystick ha sido presionada, conectamos el pin SW del joystick al pin digital D8 del Arduino.

Aparte de esto, el joystick simplemente necesita alimentación. Su pin VCC está conectado al terminal de 5V del Arduino y su pin GND está conectado al terminal GND del Arduino.

Joystick Analogico PS2 para Arduino 4

Eso es. Ahora estás listo para mostrar tus habilidades de manipulación con Joystick.

Joystick Código Arduino

El programa es muy simple. Leeremos la medición de dos entradas analógicas y una entrada digital. Luego, mostraremos el resultado en el monitor en serie. Para usar el módulo joystick no es necesario ninguna librería.

// Arduino pin numbers
const int SW_pin = 8; // digital pin connected to switch output
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output

void setup() {
  pinMode(SW_pin, INPUT);
  digitalWrite(SW_pin, HIGH);
  Serial.begin(9600);
}

void loop() {
  Serial.print("Switch:  ");
  Serial.print(digitalRead(SW_pin));
  Serial.print(" | ");
  Serial.print("X-axis: ");
  Serial.print(analogRead(X_pin));
  Serial.print(" | ");
  Serial.print("Y-axis: ");
  Serial.print(analogRead(Y_pin));
  Serial.println(" | ");
  delay(200);
}

Si todo está bien, debería ver la salida a continuación en el monitor en serie.

Joystick Analogico PS2 para Arduino 5

Problemas con el Joystick y Arduino

Hay un par de problemas pequeños pero importantes con el sistema de joystick analógico.

  • En primer lugar, el crudo proceso de conversión de Arduino de analógico a digital no es muy preciso, ya que el sistema no tiene un verdadero convertidor de analógico a digital. Esto compromete un poco la sensibilidad del joystick.
  • En segundo lugar, el microcontrolador tiene que dedicar una gran cantidad de potencia de procesamiento para «sondear» regularmente el sistema de joystick para determinar la posición del stick. Esto le quita mucho poder a otras operaciones, pero se podría resolver con una ISR.

Dónde Comprar un Joystick

PatagoniaTec

Amazon.es

Alibaba

A %d blogueros les gusta esto: