- Lanzador de cohetes controlado por voz basado en Alexa - Funcionando
- Launchpad para nuestro controlador de lanzamiento de cohetes NodeMCU
- Componentes necesarios para el lanzacohetes controlado por Alexa
- Diagrama de circuito del lanzador de cohetes Arduino
- Construyendo el circuito en PerfBoard
- Programación de NodeMCU para lanzacohetes controlado por Alexa
- Configuración de Alexa con la aplicación de Android Alexa
- Lanzacohetes controlado por Alexa - Prueba
A medida que se acerca la temporada de invierno; Llega esa época del año en que se celebra la fiesta de las luces. Sí, estamos hablando de Diwali, que es un verdadero festival indio que se celebra en todo el mundo. Este año, Diwali ya terminó, y al ver a la gente petardos, se me ocurrió la idea de construir el Lanzacohetes o Encendedor controlado por voz basado en Alexa, que puede lanzar cohetes con solo comandos de voz, lo que lo hace muy seguro y divertido para los niños.
Para dejarlo en claro, no estoy aquí para alentar a la gente a que dispare galletas en Diwali, el gobierno indio ha impuesto restricciones a las galletas para frenar la contaminación y es nuestra responsabilidad cumplirlo. La idea aquí es que en lugar de pasar todo el día disparando galletas, construyamos un encendedor de cohetes Arduino controlado por voz y disparemos algunos cohetes con estilo. Veo eso como un ganar-ganar.
Este lanzacohetes Arduino será muy diferente a los demás. Tiene un chasis muy resistente hecho de madera contrachapada, un mecanismo de control confiable basado en relés y un mecanismo único para lanzar y recargar los cohetes, así que sin más demora, entremos directamente en el proceso de construcción.
Lanzador de cohetes controlado por voz basado en Alexa - Funcionando
El mecanismo de funcionamiento del circuito es muy sencillo, el componente principal que se encarga de lanzar el cohete es el alambre de nicromo, y se presenta en forma de bobina calefactora. Este alambre de nicromo actuará como encendedor de cohetes. ¿Cómo? Te mostraré más tarde.
Como puede ver en la imagen de arriba, el cable de nicromo viene en forma de bobina calefactora, para mí fue la forma más fácil de conseguirlo. Tenemos que estirarlo recto y doblarlo para formar una forma que se parezca a la que se muestra en la imagen de abajo.
Una vez hecho esto, lo alimentaremos con una batería de plomo-ácido de 12V y se encenderá al rojo vivo. Esto será suficiente para encender el polvo negro dentro del cohete y funcionará como una dosis normal de mecha. Tenga en cuenta que este es un controlador de lanzamiento de cohetes de alta potencia, la corriente requerida para hacer que el cable esté al rojo vivo es alta. Siga los consejos de seguridad cuando trabaje con corrientes elevadas.
Una vez que se realizan las pruebas, lo único que queda es el proceso de control, que haremos a medida que avancemos en el artículo.
Launchpad para nuestro controlador de lanzamiento de cohetes NodeMCU
Para esta compilación, hagamos una plataforma de lanzamiento. Con el launchpad listo, podemos recargar fácilmente algunos crackers y lanzarlos muy fácilmente. He construido una plataforma de lanzamiento que se parece a la que se muestra en la imagen que se muestra a continuación.
Repasemos paso a paso el proceso de creación de la plataforma de lanzamiento. Para los dos lados del marco, he usado dos piezas de madera contrachapada (25X3X1.5) de largo. Para la parte superior, he usado una parte de madera contrachapada de (20X3X1.5) pulgadas de largo y para la base, he usado una pieza de madera contrachapada de (20X6X1.5) pulgadas de largo, que le dará un poco más de estabilidad. La siguiente imagen le dará una idea clara.
Ahora es el momento de fabricar los filamentos a base de alambre de nicromo, que actuarán como un fusible para nuestro cohete. Para eso, compré una bobina calefactora con base de alambre de nicromo de 1000 W, la enderecé e hice la estructura que se muestra a continuación. Tuve que usar dos alicates y cortadores laterales para dar forma al alambre de nicrom como se muestra a continuación.
Una vez hecho esto, dividí el bloque de madera contrachapada de 20 ”en siete pedazos, lo medí y taladré agujeros para colocar los filamentos de alambre de nicromo, y una vez hecho, se veía como las imágenes de abajo.
Pero antes de colocar los filamentos, coloqué alambre de cobre de 1 mm2 de espesor en cada terminal y los pasé por los orificios, una vez que todo estuvo hecho, se veía como en la imagen de abajo.
Como puede ver, también he colocado el adhesivo de dos componentes para asegurar el cable y los filamentos en su lugar. Una vez hecho esto, nuestra plataforma de lanzamiento está completa. Y como se puede ver en la primera imagen de esta sección, he conectado directamente los cables de filamento a la PCB porque estamos lidiando con corrientes muy altas por lo que no me molesté en colocar un terminal de tornillo, y eso marca el final de nuestro chasis. proceso de construcción.
Componentes necesarios para el lanzacohetes controlado por Alexa
Por el lado del hardware, hemos utilizado piezas muy genéricas que puede obtener con bastante facilidad en su tienda de pasatiempos local, a continuación se proporciona una lista completa de elementos.
- Relé 12V - 3
- Transistor BD139 - 3
- Diodo 1N4004 - 3
- Terminal de tornillo de 5,08 mm - 1
- LM7805 - Regulador de voltaje - 1
- Condensador de desacoplamiento 100uF - 2
- Diodo Zener de 5.1V - 1
- Tarjeta NodeMCU (ESP8266-12E) - 1
- Tablero perforado punteado - ½
- Cable de conexión - 10
Diagrama de circuito del lanzador de cohetes Arduino
El esquema completo del Lanzacohetes controlado por Alexa se muestra a continuación. He usado etiquetas para conectar un pin a otro. Si miras lo suficientemente cerca, no debería ser difícil interpretar el esquema.
La construcción del circuito es bastante sencilla, así que no entraré mucho en detalles.
Primero, tenemos IC1, que es un regulador de voltaje LM7805, con sus condensadores de desacoplamiento de 100uF indicados por C1 y C2. Después de eso, tenemos el corazón de nuestro proyecto, la placa NodeMCU, que alberga el módulo ESP-12E. Dado que estamos usando una batería de plomo-ácido de 12V para alimentar todo el circuito, es por eso que tenemos que usar el LM7805 para convertirlo primero a 12V a 5V para alimentar la placa NodeMCU. Lo estamos haciendo porque el regulador de voltaje AMS1117 incorporado no es suficiente para convertir 12V directamente a 3.3V, por lo que es necesario el 7805.
Continuando, tenemos tres relés de 12V, para esta demostración, estamos usando tres relés, pero como mencionamos anteriormente, la plataforma de lanzamiento tiene un marcador de posición para 7 cohetes. Puede modificar un poco el código y colocar los siete cohetes para lanzarlos por completo. Los tres relés son impulsados por un T1, T2 y T3 que son tres transistores NPN, y son suficientes para impulsar la carga de un real. Finalmente, tenemos tres diodos de rueda libre que protegen el circuito de los picos de alto voltaje generados por el relé.
Construyendo el circuito en PerfBoard
Como puede ver en la imagen principal, la idea era hacer un circuito simple que pueda manejar una gran cantidad de corriente durante un período corto, según nuestras pruebas, 800 milisegundos son suficientes para iluminar una hoja de papel. Entonces, construimos el circuito en una pieza de perfboard y conectamos todas las conexiones principales con alambre de cobre de 1 mm2 de espesor. Después de que terminemos de soldar la placa. Una vez que terminamos, parecía algo que se muestra a continuación.
Programación de NodeMCU para lanzacohetes controlado por Alexa
Ahora que el hardware está listo, es hora de comenzar a codificar nuestro lanzador de cohetes controlado por voz basado en Alexa. El código completo se puede encontrar al final de esta página, pero antes de comenzar, es importante agregar las bibliotecas requeridas a su IDE de Arduino. Asegúrese de agregar las bibliotecas correctas desde el enlace que se proporciona a continuación, de lo contrario, el código arrojará errores cuando se compile.
- Descarga Biblioteca Espalexa
Después de agregar las bibliotecas requeridas, puede cargar directamente el código que se proporciona al final de esta página para verificar si el circuito está funcionando. Si quieres saber cómo funciona el código, sigue leyendo.
Como siempre, comenzamos el programa agregando los archivos de encabezado requeridos y definiendo los nombres de los pines y las credenciales para nuestro hotspot.
#incluir
Continuando con nuestro código, tenemos nuestros prototipos de funciones y definiciones de funciones de devolución de llamada.
La función connectToWiFi () se utiliza para conectarse a la red Wi-Fi y esta función se vuelve verdadera cuando Wi-Fi se conecta correctamente.
A continuación, tenemos nuestras funciones de devolución de llamada , estas funciones serán llamadas cuando le demos un comando a Alexa, la API de espalexa maneja estas funciones
void allrockets (brillo uint8_t); void firststrocket (uint8_t brillo); segundo cohete void (brillo uint8_t); tercer cohete vacío (brillo uint8_t);
A continuación, definimos los nombres de los dispositivos. Estos nombres de dispositivos definidos se reflejarán en la aplicación Alexa y cuando digamos un comando, Alexa reconocerá los dispositivos por estos nombres. Entonces estos nombres son muy importantes.
// Nombres de dispositivo String First_Device_Name = "Todos los cohetes"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Cohete dos"; String Forth_Device_Name = "Cohete Tres";
A continuación, definimos una variable booleana wifiStatus, que mantendrá el estado de conexión del Wi-Fi. Finalmente, creamos un objeto Espalexa espalexa. Usaremos este objeto para configurar NodeMCU.
// comprobar el estado de wifi boolean wifiStatus = false; // Objeto Espalexa Espalexa espalexa;
A continuación, tenemos nuestra sección void setup () . En esta sección, inicializamos la comunicación en serie para depurar con la función Serial.begin () . Configuramos todos los pines definidos anteriormente como salida con la función pinMode () , luego llamamos a la función connectToWiFi () , intentará conectarse a Wi-Fi quince veces si está conectado, devolverá verdadero si no lo hace conectarse, devolverá falso y el código ejecutará un ciclo while () para siempre. Si la conexión Wi-Fi es exitosa, agregamos los dispositivos previamente definidos al objeto Alexa usando la función espalexa.addDevice () Esta función toma dos argumentos, primero es el Nombre del Dispositivo, el segundo es el nombre de la función de devolución de llamada, cuando enviamos un comando a Alexa, se llamará a la función adyacente. Una vez que terminamos de hacerlo para nuestros cuatro dispositivos, llamamos a los métodos begin () para el objeto espalexa.
configuración vacía () {Serial.begin (115200); // Activar Serial para depurar mensajes pinMode (ROCKET_1_PIN, OUTPUT); // configura los pines ESP como salida pinMode (ROCKET_2_PIN, OUTPUT); // configura los pines ESP como salida pinMode (ROCKET_3_PIN, OUTPUT); // configura los pines ESP como salida wifiStatus = connectToWiFi (); // Conéctese a la red Wi-Fi local if (wifiStatus) {// configure todos los dispositivos espalexa // Defina sus dispositivos aquí. espalexa.addDevice (First_Device_Name, allrockets); // definición más simple, estado predeterminado off espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, tercer cohete); espalexa.begin (); } else {while (1) {Serial. println ("No se puede conectar a WiFi. Verifica los datos y restablece el ESP"); retraso (2500); }}}
En la sección de bucle , llamamos al método loop () del objeto espalexa que siempre buscará cualquier comando entrante y llamará a la función de devolución de llamada si lo encuentra verdadero.
bucle vacío () {espalexa.loop (); retraso (1); }
A continuación, definimos todas nuestras funciones de devolución de llamada, en esta sección, definiremos qué sucede cuando se llama a esta función de devolución de llamada. Cuando se llama a la función allrockets () , todos los cohetes se lanzarán juntos. Para eso, vamos a encender el relé durante 00 ms y luego a apagar los relés. En mis pruebas, encontré que para la longitud especificada de cable de nicromo, necesito 800 ms de retraso para calentar completamente el cable, este puede ser o no su caso. Así que elige el retraso en consecuencia.
void allrockets (uint8_t brillo) {if (brillo == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, ALTO); digitalWrite (ROCKET_3_PIN, HIGH); retraso (800); escritura digital (ROCKET_1_PIN, BAJO); digitalWrite (ROCKET_2_PIN, BAJO); digitalWrite (ROCKET_3_PIN, BAJO); Serial.println ("Todos los cohetes lanzados"); }}
A continuación, tenemos nuestro primer cohete (), este se llama cuando llamamos a Alexa y decimos el comando tie para lanzar el primer cohete. El proceso es muy similar, encendemos el relé durante 800ms y lo apagamos.
void firststrocket (uint8_t brillo) {if (brillo == 255) {digitalWrite (ROCKET_1_PIN, HIGH); retraso (800); escritura digital (ROCKET_1_PIN, BAJO); Serial.println ("Primer cohete lanzado"); }}
Finalmente, tenemos nuestra función connectToWiFi () . Esta función es bastante genérica y se explica por sí misma, por lo que no entraré en detalles sobre esta función. Esta función conecta el ESP a Wi-Fi y devuelve el estado de la conexión.
boolean connectToWiFi () {estado booleano = verdadero; int i = 0; Modo WiFi (WIFI_STA); WiFi.begin (ssid, contraseña); Serial.println (""); Serial.println ("Conexión a WiFi"); // Espere la conexión Serial.print ("Conectando…"); while (WiFi.status ()! = WL_CONNECTED) {retraso (500); Serial.print ("."); si (i> 15) {estado = falso; romper; } i ++; } Serial.println (""); if (estado) {Serial.print ("Conectado a"); Serial.println (ssid); Serial.print ("dirección IP:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Error de conexión"); } estado de retorno; }
Esta función definida marca el final de la parte de codificación.
Configuración de Alexa con la aplicación de Android Alexa
Alexa solo aceptará comandos si y solo si reconoce el dispositivo esp8866. Para eso, necesitamos configurar Alexa con la ayuda de la aplicación Alexa en Android. Una cosa importante que debemos hacer antes de continuar es que debemos asegurarnos de que Alexa esté configurada con nuestra aplicación de Android.
Para hacerlo, vaya a la sección más de la aplicación Alexa y haga clic en la opción Agregar un dispositivo, haga clic en Luz, luego desplácese hacia abajo en la parte inferior de la página y haga clic en Otro.
A continuación, haga clic en DESCUBRIR DISPOSITIVO y espere un momento después de que Alexa encontrará nuevos dispositivos. Una vez que Alexa encuentra los dispositivos, debe hacer clic en ellos y agregarlos a sus respectivos lugares / categorías, y listo.
Lanzacohetes controlado por Alexa - Prueba
Para el proceso de prueba, fui a mi jardín, saqué todos los fusibles del cohete, los coloqué en sus respectivos lugares y le grité ¡Alexa…! Encienda todos los Rockets, con los dedos cruzados. Y todos los cohetes volaron marcando mis esfuerzos como un gran éxito. Se veía algo así.
¡Finalmente, una vez más dije Alexa…! Encienda todos los cohetes para obtener una imagen épica de los filamentos que puede ver a continuación.
Para una experiencia más épica, te recomiendo que veas el video.