Controlador FLISoL2020
¡Saludos! Te damos la bienvenida a nuestro tutorial paso a paso de cómo realizar el controlador de nuestro FLISoL2020.
Primero que todo necesitaremos lo siguiente:
- 2 sensores de distancia ultrasonido (HC-SR04) 6.3
- 8 cables macho hembra.
- Arduino E32. Usamos este Arduino ya que cuenta con Bluetooth.
- Descargar las siguientes librerías para el programa Arduino:
- Newping.h: https://bitbucket.org/teckel12/arduino-new-ping/wi...
- ESP32-BLE-Keyboard: https://github.com/T-vK/ESP32-BLE-Keyboard
Conexión
Esta conexión al arduino de los dos sensores será simple:
Del primer sensor: el ECHO va al pin 14
el TRIG va al pin 27
Del segundo sensor: el TRIG va al pin 23
el ECHO va al pin 19
El GND de ambos sensores va al mismo GND del arduino y el VCC de ambos sensores irá al mismo pin de voltaje, en este caso será 5V. Nos damos cuenta que este es un circuito en serie.
Una vez conectado todo el sensor podemos empezar a trabajar en el código.
Código
Trabajaremos en el software Arduino y seguiremos los siguientes pasos.
- Incluimos las librerías:
#include<NewPing.h> #include<BleKeyboard.h>
- Para utilizar la libreria del BleKeyboard debemos crear uno:
BleKeyboard bleKeyboard;
- Definimos los pines:
const int TRIGGER_PIN = 27;
const int ECHO_PIN = 14; const int TRIGGER_PIN2 = 23; const int ECHO_PIN2 = 19;
- Definimos distancias máximas para el sensor 1 y 2, esto lo hacemos porque cada sensor va a tener un trabajo diferente:
const int MAX_DISTANCE = 20;
const int MAX_DISTANCE2 = 5;
- Creamos dos variables de distancia para almacenar los valores de distancia de los sensores:
int distancia;
int distancia2;
- Usamos la libreria NewPing para crear el sonar. Los valores que entran son los pines; TRIGGER, ECHO y DISTANCIA MAXIMA. Esto lo hacemos para cada sensor:
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
NewPing sonar2(TRIGGER_PIN2, ECHO_PIN2, MAX_DISTANCE2);
- Pasamos al setup, donde hacemos un Serial.begin para que corra el código y el bleKeyboard para que se active al correr el código:
void setup() {
Serial.begin(9600); bleKeyboard.begin(); }
Pasamos al loop, asignamos los valores del sonar a cada distancia en cm. También tenemos un par de condicionales. Si distancia se encuentra entre 1-7 cm. envía una señal de S en el bleKeyboard y si la distancia esta entre 7-15, envía una señal de W:
void loop() {
distancia = sonar.ping_cm(); distancia2 = sonar2.ping_cm(); // Espera de 50ms entre pings (about 20 pings/sec). 29ms debe ser el minimo delay entre pings. /*Serial.print("Ping: "); Serial.print(sonar.ping_cm()); // enviar ping, obtener distancia en cm e imprimir resultado (0 = outside set distance range) Serial.println("cm");*/ if (distancia <= 7 && distancia >= 1){ //digitalWrite(13, 1); // en alto el pin 13 si la distancia es menor a 10cm //digitalWrite(4, 0); Serial.print(distancia); // envía el valor de la distancia por el puerto serial Serial.println('w'); bleKeyboard.press('w'); bleKeyboard.releaseAll(); }
if (distancia <= 15 && distancia >= 7){ //digitalWrite(13, 1); // en alto el pin 13 si la distancia es menor a 10cm //digitalWrite(4, 0); Serial.print(distancia); // envía el valor de la distancia por el puerto serial Serial.println('s'); bleKeyboard.press('s'); bleKeyboard.releaseAll(); } if (distancia2 <= 5 && distancia2 >= 1){ //digitalWrite(13, 1); // en alto el pin 13 si la distancia es menor a 10cm //digitalWrite(4, 0); Serial.print(distancia2); // envía el valor de la distancia por el puerto serial Serial.println('e'); bleKeyboard.press(' '); bleKeyboard.releaseAll(); } delay(100); }
Entendiendo El Código
La librería de bleKeyboard nos permitirá usar el Bluetooth del Arduino E32 para conectarnos a nuestro computador mediante Bluetooth. Nuestro Arduino tiene la función de simular que estamos oprimiendo una tecla, que en este caso son W, S y la barra espaciadora, las teclas necesarias para nuestro videojuego.
Hardware
Como puedes ver, en nuestro caso hemos usado una caja de cartón. adentro se encuentra el cableado y el arduino y, lo cual es muy importante, recuerda dejar expuestos los dos sensores.
El Videojuego
¡Descarga aquí el videojuego para que lo manejes con el controlador que has creado tú mismo!