- Hlasovo ovládaný raketomet - založený na Alexe - pracuje
- Launchpad pre náš NodeMCU Rocket Launch Controller
- Komponenty požadované pre Alexa Controlled Rocket Launcher
- Schéma zapojenia raketometu Arduino
- Budovanie okruhu na platforme PerfBoard
- Programovanie NodeMCU pre Alexa Controlled Rocket Launcher
- Konfigurácia Alexa pomocou aplikácie Alexa pre Android
- Alexa Controlled Rocket Launcher - Testovanie
Ako sa blíži zimné obdobie; prichádza to obdobie v roku, keď sa slávi festival svetiel. Áno, hovoríme o Diwali, čo je skutočný indický festival oslavovaný po celom svete. Tento rok je Diwali už za nami a keď som videl ľudí ako petardy, prišiel som s myšlienkou postaviť Alexa na báze Voice Controlled Rocket Launcher alebo Igniter, ktorý dokáže rakety odpaľovať iba hlasovým príkazom, takže je pre deti veľmi bezpečný a zábavný.
Aby som to objasnil, nie som tu na to, aby som povzbudzoval ľudí, aby strieľali crackery na Diwali, indická vláda presadila obmedzenia crackerov na obmedzenie znečistenia a je našou zodpovednosťou ich dodržiavať. Myšlienka tu je, že namiesto toho, aby sme celý deň pálili z krekrov, postavme si chladný hlasom riadený zapaľovač rakiet Arduino a vypálme niekoľko rakiet vo veľkom štýle. Vnímam to ako obojstranne prospešné.
Tento raketomet Arduino sa bude veľmi líšiť od ostatných. Má veľmi robustný podvozok vyrobený z preglejky, spoľahlivý riadiaci mechanizmus založený na relé a veľmi jedinečný mechanizmus na vypúšťanie a nabíjanie rakiet, takže bez ďalšieho oneskorenia poďme priamo do procesu stavby.
Hlasovo ovládaný raketomet - založený na Alexe - pracuje
Pracovný mechanizmus obvodu je veľmi jednoduchý, hlavnou súčasťou zodpovednou za vypustenie rakety je nichrómový drôt, ktorý má formu vykurovacej špirály. Tento nichrómový drôt bude slúžiť ako raketový zapaľovač. Ako? Ukážem ti to neskôr.
Ako môžete vidieť na obrázku vyššie, nichrómový drôt má formu vykurovacej špirály, pre mňa to bol najjednoduchší spôsob, ako ho získať. Musíme ju ťahať rovno a ohýbať, aby sme vytvorili tvar, ktorý vyzerá tak, ako je to znázornené na obrázku nižšie.
Keď to urobíme, napájame ho pomocou olovnatej batérie s napätím 12 V a bude horieť červeno. To bude stačiť na zapálenie čierneho prachu vo vnútri rakety a bude to fungovať ako bežná dávka poistky. Upozorňujeme, že sa jedná o vysoko výkonný riadiaci systém rakety, prúd potrebný na to, aby bol vodič horúci, je vysoký. Pri práci s vysokými prúdmi postupujte podľa bezpečnostných pokynov.
Po dokončení testovania zostáva iba kontrolný proces, ktorý urobíme, keď budeme pokračovať v článku.
Launchpad pre náš NodeMCU Rocket Launch Controller
Pre toto zostavenie si vytvorme launchpad. Keď je launchpad hotový, môžeme ľahko načítať niektoré crackery a veľmi ľahko ich spustiť. Postavil som launchpad, ktorý vyzerá ako ten, ktorý je zobrazený na obrázku nižšie.
Prejdime si postupný proces zostavenia launchpad. Na dve strany rámu som použil dva preglejky dlhé (25X3X1,5) palca. Na vrchnú časť som použil (20X3X1,5) palcovú časť preglejky a na základňu som použil (20X6X1,5) palcový kus preglejky, ktorá jej dodá trochu väčšiu stabilitu. Obrázok nižšie vám poskytne jasnú predstavu.
Teraz je čas vyrobiť nichrómové drôtové vlákna, ktoré budú slúžiť ako poistka pre našu raketu. Za týmto účelom som si kúpil 1000 W nichrómovú drôtovú vykurovaciu špirálu, narovnal som ju a vyrobil štruktúru, ktorá je uvedená nižšie. Musel som pomocou dvoch klieští a bočných nožov vytvarovať nichrómový drôt, ako je to znázornené nižšie.
Keď to bolo hotové, rozdelil som 20-palcový kus preglejkového bloku na sedem kusov, ktoré som zmeral, a vyvŕtal otvory, do ktorých som vložil vlákna z nichrómového drôtu, a akonáhle to bolo hotové, vyzeralo to ako na obrázkoch nižšie.
Ale pred umiestnením vlákien som do každého terminálu pripojil medený drôt s hrúbkou 1 štvorcový mm a prešiel som ich cez otvory, keď bolo všetko hotové, vyzeralo to ako na obrázku nižšie.
Ako vidíte, vložil som tiež dvojzložkové lepidlo na zaistenie drôtu a vlákien na miesto. Keď je hotovo, náš launchpad je hotový. A ako vidíte z prvého obrázka v tejto časti, priamo som pripojil vláknové vodiče k DPS, pretože máme do činenia s veľmi vysokými prúdmi, takže som sa neobťažoval umiestniť skrutkovú svorku a to znamená koniec nášho šasi. stavebný proces.
Komponenty požadované pre Alexa Controlled Rocket Launcher
Čo sa týka hardvérovej stránky, použili sme veľmi všeobecné súčasti, ktoré môžete ľahko získať v miestnom hobby obchode. Kompletný zoznam položiek je uvedený nižšie.
- 12V relé - 3
- Tranzistor BD139 - 3
- Dióda 1N4004 - 3
- Skrutková svorka 5,08 mm - 1
- LM7805 - Regulátor napätia - 1
- Oddeľovací kondenzátor 100 uF - 2
- 5.1V Zenerova dióda - 1
- Doska NodeMCU (ESP8266-12E) - 1
- Bodkovaná Perf Board - ½
- Pripojovací drôt - 10
Schéma zapojenia raketometu Arduino
Kompletná schéma pre Alexa Controlled Rocket Launcher je uvedená nižšie. Použil som značky na pripojenie jedného pinu k druhému. Ak sa pozriete dostatočne blízko, nemalo by byť ťažké interpretovať schému.
Circuit Construction je celkom jednoduchá, takže sa nebudem veľmi rozpisovať.
Najskôr máme IC1, ktorý je regulátorom napätia LM7805, s oddeľovacími kondenzátormi 100uF označenými C1 a C2. Potom máme srdce nášho projektu, dosku NodeMCU, v ktorej je umiestnený modul ESP-12E. Pretože na napájanie celého obvodu používame olovenú batériu s napätím 12 V, musíme preto najskôr použiť LM7805 na jej prevedenie na 12V až 5 V na napájanie dosky NodeMCU. Robíme to preto, lebo palubný regulátor napätia AMS1117 nie je dostatočný na to, aby prevádzal 12V priamo na 3,3V, a preto je nevyhnutná hodnota 7805.
Ďalej máme tri 12V relé, pre túto ukážku používame tri relé, ale ako sme už spomenuli, launchpad má zástupný symbol pre 7 rakiet. Môžete trochu vylepšiť kód a umiestniť všetkých sedem rakiet, aby sa úplne spustili. Tri relé sú poháňané T1, T2 a T3, čo sú tri tranzistory NPN, a sú dostatočné na to, aby riadili záťaž skutočného obvodu. Nakoniec máme tri voľnobežné diódy, ktoré chránia obvod pred vysokonapäťovými hrotmi generovanými relé.
Budovanie okruhu na platforme PerfBoard
Ako vidíte na hlavnom obrázku, išlo o vytvorenie jednoduchého obvodu, ktorý dokáže krátkodobo zvládnuť obrovské množstvo prúdu, podľa nášho testovania stačí na rozsvietenie kúska papiera 800 milisekúnd. Takže obvod postavíme na kúsku dosky perfboard a všetky hlavné spojenia spojíme medeným drôtom s hrúbkou 1 m². Po dokončení spájkovania dosky. Keď sme skončili, vyzeralo to ako niečo, čo je zobrazené nižšie.
Programovanie NodeMCU pre Alexa Controlled Rocket Launcher
Teraz, keď je hardvér pripravený, je čas začať kódovať náš raketomet s hlasovým ovládaním na báze Alexa. Celý kód nájdete na konci tejto stránky, ale skôr ako začneme, je dôležité pridať požadované knižnice do vášho Arduino IDE. Nezabudnite pridať správne knižnice z odkazu uvedeného nižšie, inak bude kód pri kompilácii vyvolávať chyby.
- Stiahnite si knižnicu Espalexa
Po pridaní požadovaných knižníc môžete priamo nahrať kód uvedený v dolnej časti tejto stránky a skontrolovať, či obvod funguje. Ak chcete vedieť, ako kód funguje, pokračujte v čítaní.
Ako vždy začneme program pridaním požadovaných súborov hlavičiek a definovaním názvov pinov a prihlasovacích údajov pre náš hotspot.
#include
Ďalej s našim kódom máme naše prototypy funkcií a definície funkcií spätného volania.
Funkcia connectToWiFi () sa používa na pripojenie k sieti Wi-Fi a táto funkcia vráti hodnotu true, keď sa pripojenie Wi-Fi úspešne pripojí.
Ďalej máme svoje funkcie spätného volania , tieto funkcie sa budú volať, keď dáme príkaz Alexe, espalexa API tieto funkcie zvláda
void allrockets (jas uint8_t); void firstrocket (jas uint8_t); void secondrocket (jas uint8_t); void thirdrocket (jas uint8_t);
Ďalej definujeme názvy zariadení. Tieto definované názvy zariadení sa prejavia v aplikácii Alexa a keď povieme príkaz, Alexa rozpozná zariadenia podľa týchto mien. Tieto mená sú teda veľmi dôležité.
// Názvy zariadení String First_Device_Name = "Všetky rakety"; Reťazec Secound_Device_Name = "Rocket One"; Reťazec Third_Device_Name = "Rocket Two"; String Forth_Device_Name = "Raketa tri";
Ďalej definujeme boolovskú premennú wifiStatus, ktorá udrží stav pripojenia Wi-Fi. Nakoniec vytvoríme objekt Espalexa espalexa. Tento objekt použijeme na konfiguráciu NodeMCU.
// kontrola stavu wifi boolean wifiStatus = false; // Objekt Espalexa Espalexa espalexa;
Ďalej máme sekciu void setup () . V tejto časti inicializujeme sériovú komunikáciu na ladenie pomocou funkcie Serial.begin () . Všetky predchádzajúce definované piny nastavíme na výstup s funkciou pinMode () , ďalej zavoláme funkciu connectToWiFi () , pokúsi sa o pripojenie k Wi-Fi pätnásťkrát, ak je pripojené, vráti true, ak nie pripojiť, vráti false a kód bude spúšťať while () slučka navždy. Ak je pripojenie Wi-Fi úspešné, pridáme predtým definované zariadenia do objektu Alexa pomocou funkcie espalexa.addDevice (). Táto funkcia vyžaduje dva argumenty, prvý je názov zariadenia, druhý je názov funkcie spätného volania, keď dáme príkaz Alexe, zavolá sa susedná funkcia. Keď to urobíme pre všetky štyri svoje zariadenia, zavoláme metódu start () pre objekt espalexa.
void setup () {Serial.begin (115200); // Povoliť Serial pre ladenie správ pinMode (ROCKET_1_PIN, OUTPUT); // nastavenie pinov ESP ako výstupných pinMode (ROCKET_2_PIN, OUTPUT); // nastavenie pinov ESP ako výstupných pinMode (ROCKET_3_PIN, OUTPUT); // nastavenie pinov ESP ako výstupu wifiStatus = connectToWiFi (); // Pripojte sa k miestnej sieti Wi-Fi, ak (wifiStatus) {// nastavíte všetky zariadenia espalexa // Definujte svoje zariadenia tu. espalexa.addDevice (First_Device_Name, allrockets); // najjednoduchšia definícia, predvolený stav vypnutý espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, tretierocket); espalexa.begin (); } else {while (1) {Serial. println ("Nemôžem sa pripojiť k WiFi. Skontrolujte dáta a resetujte ESP."); oneskorenie (2 500); }}}
V časti slučky voláme metódu loop () objektu espalexa, ktorá vždy skontroluje akýkoľvek prichádzajúci príkaz a zavolá funkciu spätného volania, ak zistí, že je pravdivá.
void loop () {espalexa.loop (); oneskorenie (1); }
Ďalej definujeme všetky naše funkcie spätného volania, v tejto časti definujeme, čo sa stane, keď sa táto funkcia spätného volania volá. Po vyvolaní funkcie allrockets () sa všetky rakety odpália spolu. Za týmto účelom zapneme relé na 00 ms a potom vypneme relé. Pri svojich testoch som zistil, že na uvedenú dĺžku nichrómového drôtu potrebujem oneskorenie 800 ms, aby sa vodič úplne zahrial, pre vás to môže alebo nemusí byť tak. Podľa toho teda zvoľte meškanie.
void allrockets (jas uint8_t) {if (jas == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); oneskorenie (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Spustené všetky rakety"); }}
Ďalej tu máme našu prvú raketu (), ktorá sa volá, keď zavoláme Alexu a povieme tie príkaz na spustenie prvej rakety. Proces je veľmi podobný, zapneme relé na 800ms a vypneme.
void firstrocket (jas uint8_t jas) {if (jas == 255) {digitalWrite (ROCKET_1_PIN, HIGH); oneskorenie (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Prvá raketa uvedená na trh"); }}
Nakoniec tu máme našu funkciu connectToWiFi () . Táto funkcia je dosť všeobecná a zrozumiteľná, takže sa ňou nebudem podrobne zaoberať. Táto funkcia pripája ESP k Wi-Fi a vracia stav pripojenia.
boolean connectToWiFi () {boolean state = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, heslo); Serial.println (""); Serial.println ("Pripojenie k WiFi"); // Počkajte na pripojenie Serial.print ("Pripája sa…"); while (WiFi.status ()! = WL_CONNECTED) {oneskorenie (500); Serial.print ("."); if (i> 15) {state = false; prestávka; } i ++; } Serial.println (""); if (state) {Serial.print ("Pripojený k"); Serial.println (ssid); Serial.print ("IP adresa:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Pripojenie zlyhalo."); } návratový stav; }
Táto definovaná funkcia označuje koniec kódovacej časti.
Konfigurácia Alexa pomocou aplikácie Alexa pre Android
Alexa bude prijímať príkazy iba vtedy, ak rozpozná zariadenie esp8866. Na to musíme nakonfigurovať Alexa pomocou aplikácie Alexa pre Android. Jedna ďalšia dôležitá vec, ktorú musíte urobiť, než budeme pokračovať, je, že sa musíme ubezpečiť, že je Alexa nakonfigurovaná v našej aplikácii pre Android.
Ak to chcete urobiť, prejdite do sekcie viac v aplikácii Alexa a kliknite na možnosť Pridať zariadenie , potom na položku Svetlo, potom prejdite nadol v dolnej časti stránky a kliknite na položku Iné.
Ďalej kliknite na OBJAVTE ZARIADENIE a počkajte chvíľu, potom Alexa nájde nové zariadenia. Keď Alexa nájde zariadenia, musíte na ne kliknúť a pridať ich na príslušné miesta / kategórie. Hotovo.
Alexa Controlled Rocket Launcher - Testovanie
Pre testovací proces som išiel do svojej záhrady, vytiahol všetky poistky z rakety, umiestnil ich na príslušné miesta a ja som zakričal Alexa…! Zapnite všetky rakety a držte mi palce. A všetky rakety leteli tak, že moje úsilie označili za obrovský úspech. Vyzeralo to asi takto.
Nakoniec som ešte raz povedal Alexa…! Zapnite všetky rakety, aby ste získali epický obraz vlákien, ktorý môžete vidieť nižšie.
Pre epickejší zážitok vám vrelo odporúčam pozrieť si video.