Introduction: Gamepaduino (Mando Para Videjuegos Hecho Con Arduino)
En este pequeño proyecto crearemos un gamepad (control de videojuegos),
utilizando un CircuitPlayground, aunque se prodría utilizar cualquier placa que cuente con un procesador atmega32u4. Lo que hacemos es programar nuestra placa como un periférico de entrada de datos (teclado). Esto se puede realizar con otras placas como la arduino UNO, pero hay que realizar otra serie de pasos he instalar programas externos.
Al realizarlo con una placa con el procesador atmega32u4, estamos reduciendo en gran media los pasos y por ende el tiempo de elaboración.
Step 1: Video Paso a Paso Del Proyecto
Step 2: ⛏Materiales⚒
En la realización de este proyecto se utilizaron:
1 Circuitplayground. Aunque este proyecto se puede realizar con cualquier placa arduino que posea un procesador atmega32u4 como por ejemplo: Arduino Micro, Arduino Yun, Arduino Robot, Lilypad USB, Arduino Leonardo.
1 Protoboard
6 Pulsadores (push button).
6 Resistencia de 220 ohm.
14 trocitos de cable de red.
Step 3: Montaje En Fritzing
Les comparto la imagen del proyecto montado en fritzing donde muestro como
realicé las conexiones de todos los componente
Step 4: Construcción
Paso 1
Empezaremos fijando la tarjeta a la protoboard para evitar que la tarjeta se mueva. Para fijarla podemos utilizar unas bandas elasticas.
Step 5: Construcción: Pulsadores Y Resistencias
Paso 2. Conectamos los pulsadores a la protoboard como se muestra en las imágenes. Tres pulsadores del lado derecho y tres del lado izquierdo.
A cada pulsador vamos a conectar una resistencia de 220 ohm a su pata derecha de la parte de abajo, como se muestra en las imágenes, estas resistencias irán conectadas a la fila de color azul.
Step 6: Construcción: Pulsadores Y 5V
Paso 3
Conectaremos ahora la pata izquierda del lado de abajo de los pulsadores a la fila de color rojo, donde posteriormente conectaremos los 5v de nuestra placa.
Al final las conexiones nos deben quedar como se muestra en las imágenes☝☝
Step 7: Construcción: Pulsadores Y Puertos Digitales De La CircuitPlayground
Paso 4
Ahora que ya tenemos conectados los pulsadores a GND a través de las resistencias de 220 ohm a la fila de color azul y a VCC a través de los trocitos de cable de red a la fila de color rojo de nuestra protoboard.
Continuamos ahora conectando nuestra placa (Circuitplayground):
Del Lado derecho de nuestra tarjeta tenemos los botones A, B, C
1- Conectamos el puerto digital #10 al botón C
2- Conectamos el puerto digital #9 al botón B
3- Conectamos el puerto digital #6 al botón A
Ahora del lado izquierdo de nuestra CircuitPlayground tenemos las flechas izquierda, arriba, derecha
4- Conectamos el puerto digital # 3 al botón que representa la flecha izquierda
4- Conectamos el puerto digital # 2 al botón que representa la flecha arriba
4- Conectamos el puerto digital # 0 al botón que representa la flecha derecha
Step 8: Programación: Librerias Y Variables
Realizaremos la programación en el IDE de Arduino
Incluimos las siguientes librerías
#include <Keyboard.h>
#include <Adafruit_CircuitPlayground.h> //si se usa otra placa arduino, esta librería no es necesaria //Definimos los botones del lado derecho int btna = 6; int btnb = 9; int btnc = 10; //Definimos los botones del lado izquierdo int fiz = 3; int farriba = 2; int fder = 0; // Definimos las variables que se cargaran con los datos que nos den los pulsadores (botones del lado izquierdo y derecho) int arriba; int derecha; int izquierda; int botona; int botonb; int botonc;
Step 9: Programación: Void Setup
CircuitPlayground.begin(); // si usamos otra placa arduino esta parte no es necesaria Keyboard.begin(); //inicializamos el Keyboard //a continuación definimos los puertos de nuestra placa, todos como entradas como se muestra pinMode (farriba, INPUT); pinMode (fder, INPUT); pinMode (fiz, INPUT); pinMode (btna, INPUT); pinMode (btnb, INPUT); pinMode (btnc, INPUT);
Step 10: ??Programación?? Void Loop
//cargamos los valores de los 6 botones en las variables
arriba = digitalRead(farriba); izquierda = digitalRead(fiz); derecha = digitalRead (fder); botonc = digitalRead(btnc); botonb = digitalRead(btnb); botona = digitalRead(btna);//Indicamos que teclas queremos que se activen cada vez que presionamos un boton
//flecha izquierda if (izquierda == HIGH){ Keyboard.press(KEY_LEFT_ARROW); }
//flecha arriba if (arriba == HIGH){ Keyboard.press(KEY_UP_ARROW); }
//flecha derecha if (derecha == HIGH){ Keyboard.press(KEY_RIGHT_ARROW); }
//boton c if (botonc == HIGH){ Keyboard.press(KEY_UP_ARROW); }
//boton b if (botonb == HIGH){ Keyboard.press(88); //EL 88 en código ASCII representa la tecla X }
//boton a if (botona == HIGH){ Keyboard.press(32); //EL 32 en código ASCII representa la tecla Espacio
}
} delay (90);
//esta parte de la programación es para indicarte la PC
// que tiene que liberar las teclas, porque si no las teclas quedarían presionadas
Keyboard.releaseAll();