- Izstrelitev rakete z glasovnim nadzorom na osnovi Alexa - deluje
- Launchpad za naš NodeMCU Rocket Launch Controller
- Komponente, potrebne za lansirni raketni sistem Alexa Controlled
- Shema vezja Arduino Rocket Launcher
- Gradnja vezja na PerfBoard
- Programiranje NodeMCU za lansirni raketni nadzornik Alexa
- Konfiguriranje Alexa z aplikacijo Alexa za Android
- Alexa Controlled Rocket Launcher - Testiranje
Ko se bliža zimska sezona; prihaja tisti letni čas, ko praznujemo praznik luči. Da, govorimo o Diwaliju, ki je pravi indijski festival, ki ga praznujejo po vsem svetu. Letos je Diwali že konec in ko sem videl petarde ljudi, sem prišel na idejo, da bi zgradil glasovno vodeni raketni lansirnik ali Igniter, ki temelji na Alexa, ki lahko s samo glasovnim ukazom izstreli rakete, zaradi česar je otrokom zelo varno in zabavno.
Da bi bilo jasno, nisem tukaj zato, da bi ljudi spodbujal k streljanju krekerjev na Diwaliju, indijska vlada je uveljavila omejitve za krekerje, da bi omejila onesnaževanje, in naša odgovornost je, da se tega držimo. Ideja je v tem, da namesto, da bi cel dan streljali z krekerji, zgradimo hladen glasovno nadzorovan raketni vžigalnik Arduino in v stilu sprožimo nekaj raket. To vidim kot win-win.
Ta izstrelitev Arduino se bo zelo razlikoval od drugih. Ima zelo trdno ohišje iz vezanega lesa, zanesljiv krmilni mehanizem, ki temelji na releju, in zelo edinstven mehanizem za spuščanje in ponovno polnjenje raket, zato brez nadaljnjega odlašanja pojdimo naravnost v postopek gradnje.
Izstrelitev rakete z glasovnim nadzorom na osnovi Alexa - deluje
Delovni mehanizem vezja je zelo preprost, glavna komponenta, ki je odgovorna za izstrelitev rakete, je nichrome žica in je v obliki grelne tuljave. Ta nikromova žica bo delovala kot vžigalnik rakete. Kako? Pokazal vam bom kasneje.
Kot lahko vidite na zgornji sliki, je nichrome žica v obliki grelne tuljave, zame jo je bilo najlažje dobiti. Potegniti ga moramo naravnost in upogniti, da se oblikuje oblika, ki je videti, kot je prikazano na spodnji sliki.
Ko bomo to storili, ga bomo napajali z 12V svinčeno-kislinsko baterijo in zasvetila bo vroče. To bo dovolj za vžig črnega prahu znotraj rakete in bo deloval tako kot običajni odmerek varovalke. Upoštevajte, da je to krmilnik rakete z visoko močjo, tok, potreben za vročo žico, je visok. Pri delu z močnimi tokovi upoštevajte varnostna navodila.
Ko je testiranje končano, ostane le še nadzor, ki ga bomo nadaljevali v nadaljevanju članka.
Launchpad za naš NodeMCU Rocket Launch Controller
Za to gradnjo naredimo lansirno ploščo. Po končani lansirni plošči lahko z lahkoto znova naložimo nekaj krekerjev in jih zelo enostavno zaženemo. Zgradil sem zagonsko ploščico, ki je videti kot tista, prikazana na spodnji sliki.
Pojdimo skozi postopek izdelave lansirne plošče po korakih. Za dve strani okvirja sem uporabil dva (25X3X1,5) palca dolga kosa vezanega lesa. Za zgornji del sem uporabil (20X3X1,5) palca dolg del vezanega lesa, za podlago pa (20X6X1,5) palca dolg kos vezanega lesa, kar mu bo dalo malo več stabilnosti. Spodnja slika vam bo dala jasno predstavo.
Zdaj je čas, da izdelujemo nitne žice na osnovi nikroma, ki bodo delovale kot varovalka naše rakete. Za to sem kupil 1000 W nichrome žično osnovno ogrevalno tuljavo, jo poravnal in izdelal strukturo, ki je prikazana spodaj. Za oblikovanje nichrome žice sem moral uporabiti dve klesti in stranske rezalnike, kot je prikazano spodaj.
Ko je bilo to storjeno, sem 20-palčni kos vezanega lesa razdelil na sedem kosov, izmeril sem ga in zvrtal luknje, da sem vstavil nitne žice na osnovi nikroma, in ko je bilo to narejeno, je bilo videti kot spodnje slike.
Toda preden sem postavil filamente, sem na vsak terminal pritrdil 1 kvadratno mm debelo bakreno žico in jih spustil skozi luknje.
Kot lahko vidite, sem dal tudi dvokomponentno lepilo za pritrditev žice in filamentov. S tem je naša lansirna ploščica končana. In kot vidite na prvi sliki v tem razdelku, sem žice z žarilno nitko pritrdil na tiskano vezje, ker imamo opravka z zelo visokimi tokovi, zato se nisem potrudil namestiti vijačne sponke in to pomeni konec našega podvozja gradbeni proces.
Komponente, potrebne za lansirni raketni sistem Alexa Controlled
Za strojno stran smo uporabili zelo splošne dele, ki jih lahko precej preprosto dobite v lokalni trgovini s hobiji, spodaj je podan celoten seznam izdelkov.
- Rele 12V - 3
- BD139 Tranzistor - 3
- 1N4004 Dioda - 3
- 5,08 mm vijačni priključek - 1
- LM7805 - Regulator napetosti - 1
- 100uF ločilni kondenzator - 2
- 5.1V Zener dioda - 1
- NodeMCU (ESP8266-12E) plošča - 1
- Dotted Perf Board - ½
- Priključna žica - 10
Shema vezja Arduino Rocket Launcher
Popolna shema za Alexa Controlled Rocket Launcher je podana spodaj. Oznake sem uporabil za povezavo enega zatiča z drugim. Če pogledate dovolj blizu, si ne bi smelo biti težko razložiti sheme.
Konstrukcija vezij je precej preprosta, zato se ne bom spuščal v podrobnosti.
Najprej imamo IC1, ki je regulator napetosti LM7805, s svojimi ločilnimi kondenzatorji 100uF, označenima s C1 in C2. Po tem imamo srce našega projekta, ploščo NodeMCU, v kateri je modul ESP-12E. Ker za napajanje celotnega vezja uporabljamo 12V svinčevo baterijo, zato moramo LM7805 najprej pretvoriti v 12V v 5V za napajanje plošče NodeMCU. To počnemo, ker vgrajeni regulator napetosti AMS1117 ne zadostuje za pretvorbo 12V neposredno v 3,3V, zato je potreben 7805.
Nadaljujemo, imamo tri 12V releje, za to predstavitev uporabljamo tri releje, toda kot smo že omenili, ima lansirna plošča ogradno mesto za 7 raket. Kodo lahko malo prilagodite in postavite vseh sedem raket, da jih lahko skupaj izstrelite. Tri releje poganjajo T1, T2 in T3, ki so trije NPN tranzistorji, in zadostujejo za pogon dejanske obremenitve. Na koncu imamo še tri proste diode, ki ščitijo vezje pred visokonapetostnimi konicami, ki jih ustvari rele.
Gradnja vezja na PerfBoard
Kot lahko vidite iz glavne slike, je bila ideja izdelati preprosto vezje, ki lahko za kratek čas obvlada ogromno količino toka, saj je po našem testiranju dovolj 800 milisekund, da se prižge kos papirja. Torej vezje zgradimo na kosu perfboard-a in vse glavne povezave povežemo z 1 kvadratno mm debelo bakreno žico. Ko smo končali s spajkanjem plošče. Ko smo končali, je bilo videti kot nekaj, kar je prikazano spodaj.
Programiranje NodeMCU za lansirni raketni nadzornik Alexa
Zdaj, ko je strojna oprema pripravljena, je čas, da začnemo s kodiranjem našega lansirnega raketnega sistema z glasovnim nadzorom. Popolno kodo najdete na koncu te strani, toda preden začnemo, je pomembno, da v svojo Arduino IDE dodate zahtevane knjižnice. Prepričajte se, da ste dodali prave knjižnice s spodnje povezave, sicer bo koda pri prevajanju povzročila napake.
- Prenesite knjižnico Espalexa
Ko dodate potrebne knjižnice, lahko neposredno naložite kodo, navedeno na dnu te strani, da preverite, ali vezje deluje. Če želite vedeti, kako koda deluje, nadaljujte z branjem.
Kot vedno začnemo program tako, da dodamo zahtevane datoteke z glavo in določimo imena in poverilnice za našo dostopno točko.
#include
Nadaljujemo z našo kodo, imamo svoje prototipe funkcij in definicije funkcij povratnega klica.
Funkcija connectToWiFi () se uporablja za povezavo z omrežjem Wi-Fi in ta funkcija vrne vrednost true, ko se Wi-Fi uspešno poveže.
Nato imamo funkcije povratnega klica , te funkcije bodo poklicane, ko Alexa ukažemo, API espalexa te funkcije obravnava
void allrockets (svetlost uint8_t); void firstrocket (svetlost uint8_t); void secondrocket (svetlost uint8_t); prazna tretja raketa (svetlost uint8_t);
Nato določimo Imena naprav. Ta definirana imena naprav se bodo odražala v aplikaciji Alexa in ko izgovorimo ukaz, bo Alexa prepoznala naprave s temi imeni. Ta imena so torej zelo pomembna.
// Imena naprav String First_Device_Name = "Vse rakete"; String Secound_Device_Name = "Raketa ena"; String Third_Device_Name = "Raketa dva"; String Forth_Device_Name = "Raketa tri";
Nato določimo logično spremenljivko wifiStatus, ki bo ohranila stanje povezave Wi-Fi. Na koncu ustvarimo še objekt Espalexa espalexa. Ta objekt bomo uporabili za konfiguracijo NodeMCU.
// preverjanje stanja wifi logično wifiStatus = false; // Espalexa Predmet Espalexa espalexa;
Nato imamo razdelek void setup () . V tem razdelku inicializiramo serijsko komunikacijo za odpravljanje napak s funkcijo Serial.begin () . Vse prejšnje definirane nožice nastavimo kot izhod s funkcijo pinMode () , nato pokličemo funkcijo connectToWiFi () , poskušala se bo petnajstkrat povezati z Wi-Fi, če je povezan, če ne povežite se, vrnil bo false in koda bo za vedno izvajala zanko while () . Če je povezava Wi-Fi uspešna, v objekt Alexa dodamo prej definirane naprave s funkcijo espalexa.addDevice (). Ta funkcija zavzame dva argumenta, najprej je ime naprave, drugo je ime funkcije povratnega klica, ko bomo Alexa izdali ukaz, bo poklicana sosednja funkcija. Ko to naredimo za vse štiri naše naprave, pokličemo metode begin () za objekt espalexa.
void setup () {Serial.begin (115200); // Omogoči Serial za razhroščevanje sporočil pinMode (ROCKET_1_PIN, OUTPUT); // nastavitev ESP zatičev kot izhodnega pinMode (ROCKET_2_PIN, OUTPUT); // nastavitev ESP zatičev kot izhodnega pinMode (ROCKET_3_PIN, OUTPUT); // nastavimo zatiče ESP kot izhod wifiStatus = connectToWiFi (); // Povežite se z lokalnim omrežjem Wi-Fi, če (wifiStatus) {// nastavite vse naprave espalexa // Tu določite svoje naprave. espalexa.addDevice (First_Device_Name, allrockets); // najpreprostejša definicija, privzeto stanje izključeno espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (tretje_ime_naprave, sekundarna raketa); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } else {medtem ko (1) {Serial. println ("Ne morem se povezati z WiFi. Preverite podatke in ponastavite ESP."); zamuda (2500); }}}
V razdelku zanke pokličemo metodo loop () predmeta espalexa, ki bo vedno preverila, ali je prišel kateri koli dohodni ukaz, in poklicala funkcijo povratnega klica, če ugotovi, da je resnična.
void loop () {espalexa.loop (); zamuda (1); }
Nato določimo vse naše funkcije povratnega klica, v tem razdelku bomo opredelili, kaj se zgodi, ko se ta funkcija povratnega klica pokliče. Ko pokličete funkcijo allrockets () , bodo vse rakete izstreljene skupaj. Za to bomo vklopili rele za 00 ms in po tem izklopili releje. V svojih testih sem ugotovil, da za določeno dolžino nikromove žice potrebujem 800ms zakasnitve, da popolnoma ogrejem žico, kar lahko velja za vas ali ne. Zato ustrezno izberite zamudo.
void allrockets (uint8_t svetlost) {if (svetlost == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); zamuda (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Izstreljene vse rakete"); }}
Nato imamo prvo raketo (), ta se pokliče, ko pokličemo Alexa in izgovorimo ukaz tie, da zaženemo prvo raketo. Postopek je zelo podoben, rele vklopimo za 800ms in izklopimo.
void firstrocket (svetlost uint8_t) {if (svetlost == 255) {digitalWrite (ROCKET_1_PIN, HIGH); zamuda (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Prva izstreljena raketa"); }}
Na koncu imamo še funkcijo connectToWiFi () . Ta funkcija je precej splošna in samoumevna, zato se ne bom spuščal v podrobnosti o tej funkciji. Ta funkcija poveže ESP z Wi-Fi in vrne stanje povezave.
boolean connectToWiFi () {logično stanje = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, geslo); Serial.println (""); Serial.println ("Povezovanje z WiFi"); // Čakamo na povezavo Serial.print ("Povezovanje…"); medtem ko (WiFi.status ()! = WL_CONNECTED) {zamuda (500); Serial.print ("."); if (i> 15) {stanje = napačno; odmor; } i ++; } Serial.println (""); if (state) {Serial.print ("Connected to"); Serial.println (ssid); Serial.print ("IP naslov:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Povezava ni uspela."); } stanje vrnitve; }
Ta definirana funkcija označuje konec dela kodiranja.
Konfiguriranje Alexa z aplikacijo Alexa za Android
Alexa bo ukaze sprejemala le, če in le, če bo prepoznala napravo esp8866. Za to moramo Alexa nastaviti s pomočjo aplikacije Alexa v Androidu. Ena pomembna stvar, ki jo moramo storiti, preden nadaljujemo, je, da moramo zagotoviti, da je Alexa konfigurirana z našo aplikacijo za Android.
Če želite to narediti, pojdite na več razdelkov aplikacije Alexa in kliknite možnost Dodaj napravo, kliknite Svetloba, nato se na dnu strani pomaknite navzdol in kliknite Drugo.
Nato kliknite ODKRIJ NAPRAVO in počakajte trenutek, ko bo Alexa našla nove naprave. Ko Alexa najde naprave, jih morate klikniti in dodati na njihova mesta / kategorije in končali ste.
Alexa Controlled Rocket Launcher - Testiranje
Za postopek testiranja sem šel na svoj vrt, izvzel vse varovalke iz rakete, jih postavil na svoja mesta in zavpil Alexa…! Vklopi vse rakete s prekrižanimi prsti. In vse rakete so letele, tako da so moja prizadevanja označila za velik uspeh. Videti je bilo nekako takole.
Končno sem še enkrat rekel Alexa…! Vklopite vse rakete, da dobite epsko sliko žarilnih nitk, ki si jo lahko ogledate spodaj.
Za bolj epsko izkušnjo vam toplo priporočam, da si ogledate video.