- Lanciarazzi a controllo vocale basato su Alexa - Funzionante
- Launchpad per il nostro controller di lancio di razzi NodeMCU
- Componenti necessari per il lanciarazzi controllato da Alexa
- Schema del circuito del lanciarazzi Arduino
- Costruire il circuito su PerfBoard
- NodeMCU di programmazione per lanciarazzi controllato da Alexa
- Configurazione di Alexa con l'applicazione Android Alexa
- Lanciarazzi controllato da Alexa - Test
Con l'avvicinarsi della stagione invernale; arriva quel periodo dell'anno in cui si celebra la festa delle luci. Sì, stiamo parlando di Diwali, una vera festa indiana celebrata in tutto il mondo. Quest'anno, Diwali è già finito e vedendo le persone petardi, mi è venuta l'idea di costruire il Lanciarazzi o Igniter a controllo vocale basato su Alexa, che può lanciare razzi con il solo comando vocale, rendendolo molto sicuro e divertente per i bambini.
Per chiarire, non sono qui per incoraggiare le persone a sparare cracker sul Diwali, il governo indiano ha imposto restrizioni sui cracker per frenare l'inquinamento ed è nostra responsabilità aderirvi. L'idea qui è che invece di passare l'intera giornata a sparare cracker, costruiamo un accenditore per razzi Arduino a controllo vocale e spariamo alcuni razzi con stile. Lo vedo come un vantaggio per tutti.
Questo lanciarazzi Arduino sarà molto diverso dagli altri. Ha un telaio molto robusto in compensato, un affidabile meccanismo di controllo basato su relè e un meccanismo davvero unico per il lancio e il ricaricamento dei razzi, quindi senza ulteriori ritardi, entriamo direttamente nel processo di costruzione.
Lanciarazzi a controllo vocale basato su Alexa - Funzionante
Il meccanismo di funzionamento del circuito è molto semplice, il componente principale responsabile del lancio del razzo è il filo di nicromo e si presenta sotto forma di una bobina di riscaldamento. Questo filo di nicromo fungerà da accenditore del razzo. Come? Te lo mostrerò più tardi.
Come puoi vedere nell'immagine sopra, il filo di nicromo si presenta sotto forma di una bobina del riscaldatore, per me è stato il modo più semplice per ottenerlo. Dobbiamo tirarlo dritto e piegarlo per formare una forma che assomiglia a quella mostrata nell'immagine qui sotto.
Una volta fatto questo, lo alimenteremo con una batteria al piombo da 12V e si illuminerà di rosso. Questo sarà sufficiente per accendere la polvere nera all'interno del razzo e funzionerà proprio come una normale dose di fusibile. Tieni presente che questo è un controller di lancio di razzi ad alta potenza, la corrente richiesta per rendere il filo rosso caldo è alta. Seguire i consigli di sicurezza quando si lavora con correnti elevate.
Una volta terminato il test, l'unica cosa che rimane è il processo di controllo, che faremo man mano che procediamo più avanti nell'articolo.
Launchpad per il nostro controller di lancio di razzi NodeMCU
Per questa build, creiamo un launchpad. Una volta terminato il launchpad, possiamo facilmente ricaricare alcuni cracker e avviarli molto facilmente. Ho costruito un launchpad simile a quello mostrato nell'immagine mostrata sotto.
Esaminiamo il processo passo passo per creare il launchpad. Per i due lati del telaio, ho usato due pezzi di compensato lunghi 25X3X1.5 pollici. Per la parte superiore, ho usato una parte di compensato lunga (20X3X1.5) pollici e per la base ho usato un pezzo di compensato lungo (20X6X1.5) pollici, che gli darà un po 'più di stabilità. L'immagine qui sotto ti darà un'idea chiara.
Ora è il momento di creare i filamenti a base di filo di nicromo, che fungeranno da miccia per il nostro razzo. Per questo, ho acquistato una bobina di riscaldamento con base in filo di nicromo da 1000 W, l'ho raddrizzata e ho realizzato la struttura mostrata di seguito. Ho dovuto usare due pinze e tronchesi laterali per modellare il filo di nicromo come mostrato di seguito.
Una volta fatto questo, ho diviso il pezzo di compensato da 20 pollici in sette pezzi, misurato e praticato dei fori per inserire i filamenti a base di filo di nicromo, e una volta fatto, sembrava come le immagini sotto.
Ma prima di posizionare i filamenti, ho attaccato un filo di rame spesso 1 mmq in ogni terminale e li ho fatti passare attraverso i fori, una volta fatto tutto, sembrava l'immagine qui sotto.
Come puoi vedere, ho anche inserito l'adesivo bicomponente per fissare il filo e i filamenti in posizione. Fatto ciò, il nostro launchpad è completo. E come puoi vedere dalla prima immagine in questa sezione, ho attaccato direttamente i fili del filamento al PCB perché abbiamo a che fare con correnti molto elevate quindi non mi sono preoccupato di posizionare un terminale a vite, e questo segna la fine del nostro telaio processo di costruzione.
Componenti necessari per il lanciarazzi controllato da Alexa
Per il lato hardware, abbiamo utilizzato parti molto generiche che puoi ottenere abbastanza facilmente dal tuo negozio di hobby locale, un elenco completo di articoli è fornito di seguito.
- Relè 12V - 3
- Transistor BD139 - 3
- Diodo 1N4004 - 3
- Morsetto a vite da 5,08 mm - 1
- LM7805 - Regolatore di tensione - 1
- Condensatore di disaccoppiamento 100uF - 2
- Diodo Zener 5,1 V - 1
- Scheda NodeMCU (ESP8266-12E) - 1
- Tavola punteggiata - ½
- Cavo di collegamento - 10
Schema del circuito del lanciarazzi Arduino
Di seguito è riportato lo schema completo per il lanciarazzi controllato da Alexa. Ho usato tag per collegare un pin a un altro. Se guardi abbastanza da vicino, non dovrebbe essere difficile interpretare lo schema.
La costruzione del circuito è piuttosto semplice, quindi non entrerò molto nei dettagli.
Innanzitutto, abbiamo IC1 che è un regolatore di tensione LM7805, con i suoi condensatori di disaccoppiamento da 100uF indicati con C1 e C2. Dopodiché, abbiamo il cuore del nostro progetto, la scheda NodeMCU, che ospita il modulo ESP-12E. Poiché utilizziamo una batteria al piombo-acido da 12V per alimentare l'intero circuito, ecco perché dobbiamo usare l'LM7805 per convertirlo prima a 12V in 5V per alimentare la scheda NodeMCU. Lo stiamo facendo perché il regolatore di tensione AMS1117 integrato non è sufficiente per convertire direttamente 12V a 3,3V, motivo per cui è necessario 7805.
Andando avanti, abbiamo tre relè da 12V, per questa dimostrazione stiamo usando tre relè, ma come abbiamo accennato in precedenza, il launchpad ha un segnaposto per 7 razzi. Puoi modificare un po 'il codice e posizionare tutti e sette i razzi da lanciare insieme. I tre relè sono pilotati da un T1, T2 e T3 che sono tre transistor NPN, e sono sufficienti per pilotare il carico di un reale. Infine, abbiamo tre diodi a ruota libera che proteggono il circuito dai picchi di alta tensione generati dal relè.
Costruire il circuito su PerfBoard
Come puoi vedere dall'immagine principale, l'idea era di realizzare un semplice circuito in grado di gestire un'enorme quantità di corrente per un breve periodo, secondo i nostri test, 800 millisecondi sono sufficienti per accendere un pezzo di carta. Quindi, costruiamo il circuito su un pezzo di perfboard e colleghiamo tutti i principali collegamenti con un filo di rame spesso 1 mmq. Dopo aver finito di saldare la scheda. Una volta terminato, sembrava qualcosa che è mostrato di seguito.
NodeMCU di programmazione per lanciarazzi controllato da Alexa
Ora che l'hardware è pronto, è ora di iniziare a programmare per il nostro lanciarazzi a comando vocale basato su Alexa. Il codice completo si trova alla fine di questa pagina, ma prima di iniziare, è importante aggiungere le librerie richieste al tuo IDE Arduino. Assicurati di aggiungere le librerie giuste dal collegamento fornito di seguito altrimenti il codice genererà errori quando viene compilato.
- Scarica Espalexa Library
Dopo aver aggiunto le librerie richieste, è possibile caricare direttamente il codice fornito in fondo a questa pagina per verificare se il circuito funziona. Se vuoi sapere come funziona il codice, continua a leggere.
Come sempre, iniziamo il programma aggiungendo i file di intestazione richiesti e definendo i nomi dei pin e le credenziali per il nostro hotspot.
#includere
Andando avanti con il nostro codice, abbiamo i nostri prototipi di funzione e le definizioni delle funzioni di callback.
La funzione connectToWiFi () viene utilizzata per connettersi alla rete Wi-Fi e questa funzione restituisce true quando il Wi-Fi viene connesso correttamente.
Successivamente, abbiamo le nostre funzioni di callback , queste funzioni verranno chiamate quando diamo un comando ad Alexa, l'API espalexa gestisce queste funzioni
void allrockets (uint8_t luminosità); void firstrocket (uint8_t luminosità); void secondrocket (uint8_t luminosità); void thirdrocket (uint8_t luminosità);
Successivamente, definiamo i nomi dei dispositivi. Questi nomi di dispositivi definiti si rifletteranno sull'app Alexa e quando pronunciamo un comando, Alexa riconoscerà i dispositivi con questi nomi. Quindi questi nomi sono molto importanti.
// Device names String First_Device_Name = "All Rockets"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Rocket Two"; String Forth_Device_Name = "Rocket Three";
Successivamente, definiamo una variabile booleana wifiStatus, che manterrà lo stato di connessione del Wi-Fi. Infine, creiamo un oggetto Espalexa espalexa. Useremo questo oggetto per configurare NodeMCU.
// controllo dello stato wifi booleano wifiStatus = false; // Espalexa Object Espalexa espalexa;
Successivamente, abbiamo la nostra sezione void setup () . In questa sezione, inizializziamo la comunicazione seriale per il debug con la funzione Serial.begin () . Impostiamo tutti i pin definiti in precedenza come output con la funzione pinMode () , quindi chiamiamo la funzione connectToWiFi () , proverà a connettersi al Wi-Fi per quindici volte se è connesso, restituirà true se non lo fa connettersi, restituirà false e il codice eseguirà un ciclo while () per sempre. Se la connessione Wi-Fi va a buon fine, aggiungiamo i dispositivi precedentemente definiti all'oggetto Alexa utilizzando la funzione espalexa.addDevice (). Questa funzione accetta due argomenti, il primo è il Nome del dispositivo, il secondo è il nome della funzione di callback, quando inviamo un comando ad Alexa, verrà chiamata la funzione adiacente. Una volta che abbiamo finito di farlo per tutti e quattro i nostri dispositivi, chiamiamo i metodi begin () per l'oggetto espalexa.
void setup () {Serial.begin (115200); // Abilita seriale per il debug dei messaggi pinMode (ROCKET_1_PIN, OUTPUT); // imposta i pin ESP come output pinMode (ROCKET_2_PIN, OUTPUT); // imposta i pin ESP come output pinMode (ROCKET_3_PIN, OUTPUT); // configura i pin ESP come output wifiStatus = connectToWiFi (); // Connettiti alla rete Wi-Fi locale se (wifiStatus) {// configura tutti i dispositivi espalexa // Definisci i tuoi dispositivi qui. espalexa.addDevice (First_Device_Name, allrockets); // definizione più semplice, stato predefinito off espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } else {while (1) {Serial. println ("Impossibile connettersi al WiFi. Controlla i dati e reimposta l'ESP."); ritardo (2500); }}}
Nella sezione loop , chiamiamo il metodo loop () dell'oggetto espalexa che controllerà sempre qualsiasi comando in arrivo e chiamerà la funzione callback se lo trova vero.
void loop () {espalexa.loop (); ritardo (1); }
Successivamente, definiamo tutte le nostre funzioni di callback, in questa sezione definiremo cosa succede quando viene chiamata questa funzione di callback. Quando viene chiamata la funzione allrockets () , tutti i razzi verranno lanciati insieme. Per questo, accenderemo il relè per 00 ms e dopodiché spegneremo i relè. Nei miei test, ho scoperto che per la lunghezza specificata del filo di nicromo, ho bisogno di 800 ms di ritardo per riscaldare completamente il filo, questo può essere o meno il tuo caso. Quindi scegli il ritardo di conseguenza.
void allrockets (uint8_t luminosità) {if (luminosità == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); ritardo (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("All Rockets Launched"); }}
Successivamente, abbiamo il nostro primo razzo (), che viene chiamato quando chiamiamo Alexa e diciamo il comando tie per lanciare il primo razzo. Il processo è molto simile, accendiamo il relè per 800 ms e spegniamo.
void firstrocket (uint8_t luminosità) {if (luminosità == 255) {digitalWrite (ROCKET_1_PIN, HIGH); ritardo (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Primo lancio del razzo"); }}
Infine, abbiamo la nostra funzione connectToWiFi () . Questa funzione è piuttosto generica e autoesplicativa, quindi non entrerò nei dettagli di questa funzione. Questa funzione collega l'ESP al Wi-Fi e restituisce lo stato della connessione.
boolean connectToWiFi () {boolean state = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, password); Serial.println (""); Serial.println ("Connessione a WiFi"); // Attendi la connessione Serial.print ("Connecting…"); while (WiFi.status ()! = WL_CONNECTED) {ritardo (500); Serial.print ("."); se (i> 15) {stato = falso; rompere; } i ++; } Serial.println (""); if (stato) {Serial.print ("Connesso a"); Serial.println (ssid); Serial.print ("Indirizzo IP:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Connessione non riuscita."); } stato di ritorno; }
Questa funzione definita segna la fine della parte di codifica.
Configurazione di Alexa con l'applicazione Android Alexa
Alexa accetterà comandi solo se e solo se riconosce il dispositivo esp8866. Per questo, dobbiamo configurare Alexa con l'aiuto dell'app Alexa su Android. Una cosa importante da fare prima di procedere ulteriormente è che dobbiamo assicurarci che Alexa sia configurato con la nostra applicazione Android.
Per farlo, vai alla sezione Altro dell'app Alexa e fai clic sull'opzione Aggiungi un dispositivo, fai clic su Luce, quindi scorri verso il basso nella parte inferiore della pagina e fai clic su Altro.
Quindi, fai clic su SCOPRI DISPOSITIVO e attendi un momento dopo che Alexa troverà nuovi dispositivi. Una volta che Alexa trova i dispositivi, è necessario fare clic su di essi e aggiungerli ai rispettivi luoghi / categorie e il gioco è fatto.
Lanciarazzi controllato da Alexa - Test
Per il processo di test, sono andato nel mio giardino, ho estratto tutte le micce dal razzo, le ho posizionate nelle rispettive posizioni e ho gridato Alexa…! Accendi tutti i razzi, con le dita incrociate. E tutti i razzi volarono contrassegnando i miei sforzi come un enorme successo. Sembrava qualcosa del genere.
Infine, ancora una volta ho detto Alexa…! Accendi tutti i razzi per ottenere un'immagine epica dei filamenti che puoi vedere di seguito.
Per un'esperienza più epica, ti consiglio vivamente di guardare il video.