- Pokretač raketa s glasovnim upravljanjem na temelju Alexa - radi
- Launchpad za naš NodeMCU Rocket Launch Controller
- Komponente potrebne za raketni bacač pod nadzorom Alexa
- Dijagram kruga rakete Arduino
- Izgradnja kruga na PerfBoardu
- Programiranje NodeMCU za Alexa kontrolirani raketni bacač
- Konfiguriranje Alexa s Alexa Android aplikacijom
- Alexa kontrolirani bacač raketa - testiranje
Kako se približava zimska sezona; dolazi ono doba godine kada se slavi festival svjetlosti. Da, govorimo o Diwaliju, istinskom indijskom festivalu koji se slavi širom svijeta. Ove godine Diwali je već gotov, a kad sam vidio ljude kako se petarde, došao sam na ideju da izgradim Glasovno upravljani raketni bacač ili Igniter sa sjedištem na Alexa, koji rakete mogu lansirati samo glasovnom naredbom, što ga čini vrlo sigurnim i zabavnim za djecu.
Da to bude jasno, nisam ovdje zbog poticanja ljudi da ispaljuju krekere na Diwali, indijska vlada uvela je ograničenja na krekere kako bi suzbila zagađenje i naša je odgovornost pridržavati se toga. Ideja je ovdje da, umjesto da cijeli dan provodimo ispaljujući krekere, napravimo hladni Arduino raketni upaljač s glasovnim upravljanjem i ispalimo nekoliko raketa u velikom stilu. To vidim kao win-win.
Ovaj raketni bacač Arduino bit će vrlo različit od ostalih. Ima vrlo čvrstu šasiju izrađenu od šperploče, pouzdan upravljački mehanizam zasnovan na releju i vrlo jedinstven mehanizam za lansiranje i ponovno punjenje raketa, pa bez daljnjeg odgađanja, krenimo odmah u postupak gradnje.

Pokretač raketa s glasovnim upravljanjem na temelju Alexa - radi
Mehanizam rada kruga vrlo je jednostavan, glavna komponenta koja je odgovorna za lansiranje rakete je nikromova žica i dolazi u obliku zavojnice za grijanje. Ova nikromova žica će djelovati kao upaljač rakete. Kako? Pokazat ću vam kasnije.

Kao što možete vidjeti na gornjoj slici, nikromova žica dolazi u obliku zavojnice grijača, za mene je to bio najlakši način da je dobijem. Moramo ga povući ravno i saviti kako bismo oblikovali oblik koji izgleda kao što je prikazano na donjoj slici.

Nakon što to učinimo, napajat ćemo ga olovnom baterijom od 12 V i zasvijetlit će do usijanja. To će biti dovoljno za paljenje crnog praha unutar rakete i radit će baš kao i normalna doza osigurača. Imajte na umu da je ovo kontroler lansiranja rakete velike snage, struja potrebna da se žica usija na vrućem mjestu je velika. Slijedite sigurnosne upute pri radu s jakim strujama.

Jednom kada je testiranje završeno, preostaje samo postupak kontrole, koji ćemo raditi u nastavku članka.
Launchpad za naš NodeMCU Rocket Launch Controller
Za ovu izgradnju napravimo lansirnu ploču. Nakon završetka lansirne ploče, možemo lako ponovno učitati neke krekere i lagano ih pokrenuti. Izradio sam lansirnu pločicu koja izgleda poput one prikazane na donjoj slici.

Prođimo kroz korak po korak procesa izrade lansirne rampe. Za dvije strane okvira upotrijebio sam dva komada šperploče (25X3X1,5) inča. Za gornji dio upotrijebio sam (20X3X1,5) inča dugački dio šperploče, a za podlogu (20X6X1,5) inčni komad šperploče, što će mu dati malo veću stabilnost. Slika u nastavku dat će vam jasnu ideju.

Sada je vrijeme da napravimo nitne žice na osnovi nikroma, koje će djelovati kao osigurač naše rakete. Za to sam kupio zavojnicu za grijanje od nichrome žice od 1000 W, izravnao je i izradio strukturu koja je prikazana u nastavku. Morao sam upotrijebiti dvije kliješta i bočne rezače kako bih oblikovao ihrom žicu kako je prikazano dolje.

Jednom kad sam to učinio, podijelio sam 20-inčni komad šperploče na sedam dijelova, izmjerio ga i izbušio rupe da u njih ugradim filamente na osnovi nikromove žice, a kad je to bilo gotovo, izgledalo je kao na slikama u nastavku.

Ali prije postavljanja filamenata, na svaki sam terminal pričvrstio bakrenu žicu debljine 1 kvadratni mm i provukao ih kroz rupe, nakon što je sve bilo gotovo, izgledalo je kao na donjoj slici.

Kao što vidite, također sam stavio dvokomponentno ljepilo da učvrstim žicu i niti na mjestu. Nakon toga, naša lansirna ploča je gotova. I kao što možete vidjeti iz prve slike u ovom odjeljku, izravno sam pričvrstio žice s nitima na PCB, jer imamo posla s vrlo jakim strujama, pa se nisam potrudio postaviti vijčani terminal, a to označava kraj naše šasije proces gradnje.

Komponente potrebne za raketni bacač pod nadzorom Alexa
Za hardversku stranu stvari koristili smo vrlo generičke dijelove koje možete prilično lako dobiti u lokalnoj hobi trgovini, a cjelovit popis predmeta dat je u nastavku.
- Relej od 12 V - 3
- BD139 Tranzistor - 3
- 1N4004 Dioda - 3
- Vijčana stezaljka 5,08 mm - 1
- LM7805 - Regulator napona - 1
- Kondenzator za odvajanje od 100 uF - 2
- 5,1V Zener dioda - 1
- Ploča NodeMCU (ESP8266-12E) - 1
- Točkasta Perf ploča - ½
- Priključna žica - 10
Dijagram kruga rakete Arduino
Kompletna shema za Alexa Controlled Rocket Launcher dana je u nastavku. Oznake sam koristio za spajanje jedne igle na drugu. Ako pogledate dovoljno izbliza, ne bi trebalo biti teško protumačiti shemu.

Izgradnja kruga prilično je jednostavna, pa neću previše ulaziti u detalje.
Prvo, imamo IC1 koji je LM7805 regulator napona, sa svojim odvojenim kondenzatorima od 100 uF označenima sa C1 i C2. Nakon toga imamo srce našeg projekta, ploču NodeMCU na kojoj se nalazi modul ESP-12E. Budući da za napajanje cijelog kruga koristimo olovnu bateriju od 12 V, zbog čega moramo koristiti LM7805 kako bismo ga prvo pretvorili u 12 V u 5 V za napajanje NodeMCU ploče. Činimo to jer ugrađeni regulator napona AMS1117 nije dovoljan da pretvori 12V izravno u 3,3V, zbog čega je potrebno 7805.
Nastavljamo dalje, imamo tri releja od 12 V, za ovu demonstraciju koristimo tri releja, ali kao što smo već spomenuli, lansirna rampa ima rezervirano mjesto za 7 raketa. Možete malo podesiti kôd i postaviti svih sedam raketa da se ukupno lansiraju. Tri releja pokreću T1, T2 i T3, što su tri NPN tranzistora, i dovoljni su za pogon stvarnog opterećenja. Napokon, imamo tri diode slobodnog kotača koje štite krug od visokonaponskih skokova generiranih relejem.
Izgradnja kruga na PerfBoardu
Kao što možete vidjeti iz glavne slike, ideja je bila napraviti jednostavan sklop koji može nositi ogromnu količinu struje u kratkom razdoblju, prema našem testiranju, dovoljno je 800 milisekundi da se osvijetli komad papira. Dakle, sklop gradimo na komadu ploče i sve glavne veze spajamo bakrenom žicom debljine 1 kvadratni mm. Nakon što smo završili s lemljenjem ploče. Kad smo završili, izgledalo je kao nešto što je prikazano u nastavku.

Programiranje NodeMCU za Alexa kontrolirani raketni bacač
Sad kad je hardver spreman, vrijeme je da započnemo s kodiranjem našeg raketnog bacača glasom upravljanog na temelju Alexa. Kompletni kôd nalazi se na kraju ove stranice, ali prije nego što započnemo, važno je dodati potrebne knjižnice u svoj Arduino IDE. Obavezno dodajte prave knjižnice s dolje navedene veze, inače će kod stvaranja pogrešaka nastati pogreške.
- Preuzmite biblioteku Espalexa
Nakon dodavanja potrebnih knjižnica, možete izravno prenijeti kod naveden na dnu ove stranice kako biste provjerili radi li sklop. Ako želite znati kako kod funkcionira, nastavite čitati.
Kao i uvijek, program započinjemo dodavanjem potrebnih datoteka zaglavlja i definiranjem imena i vjerodajnica za našu žarišnu točku.
#include
Nastavljajući s našim kodom, imamo svoje prototipove funkcija i definicije funkcija povratnog poziva.
Funkcija connectToWiFi () koristi se za povezivanje s Wi-Fi mrežom i ova funkcija vraća vrijednost true kada se Wi-Fi uspješno poveže.
Dalje, imamo svoje funkcije povratnog poziva , te će se funkcije pozvati kad damo naredbu Alexa, espalexa API obrađuje te funkcije
void allrockets (svjetlina uint8_t); void firstrocket (svjetlina uint8_t); praznina secondrocket (uint8_t svjetlina); prazna treća raketa (svjetlina uint8_t);
Zatim definiramo Imena uređaja. Ova definirana imena uređaja prikazat će se u aplikaciji Alexa, a kada izgovorimo naredbu, Alexa će prepoznati uređaje pod tim imenima. Dakle, ta su imena vrlo važna.
// Imena uređaja String First_Device_Name = "Sve rakete"; String Secound_Device_Name = "Raketa Jedan"; String Third_Device_Name = "Raketa dva"; String Forth_Device_Name = "Raketa tri";
Dalje, definiramo logičku varijablu wifiStatus, koja će zadržati status veze Wi-Fi-ja. Na kraju kreiramo objekt Espalexa espalexa. Koristit ćemo ovaj objekt za konfiguriranje NodeMCU.
// provjera statusa wifi-a boolean wifiStatus = false; // Espalexa objekt Espalexa espalexa;
Dalje, imamo odjeljak void setup () . U ovom odjeljku inicijaliziramo serijsku komunikaciju za uklanjanje pogrešaka pomoću funkcije Serial.begin () . Postavili smo sve prethodne definirane igle kao izlaz s pinMode () funkcija, pored zovemo connectToWiFi () funkciju, on će pokušati spojiti na Wi-Fi za petnaest puta, ako je spojen, on će se vratiti vrijedi ako se to ne dogodi povežite se, vratit će false i kôd će zauvijek izvršavati while () petlju . Ako je Wi-Fi veza uspješna, dodamo prethodno definirane uređaje u objekt Alexa pomoću funkcije espalexa.addDevice (). Ova funkcija uzima dva argumenta, prvi je naziv uređaja, drugo je ime funkcije povratnog poziva, kad Alexa damo naredbu, pozvat će se susjedna funkcija. Nakon što završimo s obavljanjem svih četiriju uređaja, pozivamo metode begin () za objekt espalexa.
void setup () {Serial.begin (115200); // Omogući serijski za otklanjanje pogrešaka u porukama pinMode (ROCKET_1_PIN, OUTPUT); // postavljanje ESP pinova kao izlaznog pinMode (ROCKET_2_PIN, OUTPUT); // postavljanje ESP pinova kao izlaznog pinMode (ROCKET_3_PIN, OUTPUT); // postavljanje ESP pinova kao izlaza wifiStatus = connectToWiFi (); // Poveži se s lokalnom Wi-Fi mrežom ako (wifiStatus) {// postavi sve uređaje espalexa // Ovdje definiraj svoje uređaje. espalexa.addDevice (First_Device_Name, allrockets); // najjednostavnija definicija, zadano stanje isključeno iz espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Ime_treće_naprave, druga raketa); espalexa.addDevice (četvrto_ime_naprave, treća raketa); espalexa.begin (); } else {while (1) {Serial. println ("Ne mogu se povezati na WiFi. Provjerite podatke i resetirajte ESP."); kašnjenje (2500); }}}
U odjeljku petlje pozivamo metodu loop () objekta espalexa koja će uvijek provjeriti ima li dolazne naredbe i pozvat će funkciju povratnog poziva ako utvrdi da je istinita.
petlja void () {espalexa.loop (); kašnjenje (1); }
Dalje, definiramo sve naše funkcije povratnog poziva, u ovom ćemo odjeljku definirati što se događa kada se ova funkcija povratnog poziva pozove. Kad se pozove funkcija allrockets () , sve će se rakete lansirati zajedno. Za to ćemo uključiti relej na 00 ms, a nakon toga isključit ćemo releje. U svojim testovima otkrio sam da mi za navedenu duljinu nikrom žice trebaju 800ms kašnjenja da bih potpuno zagrijao žicu, to može i ne mora biti slučaj za vas. Dakle, prema tome odaberite kašnjenje.
void allrockets (uint8_t svjetlina) {if (svjetlina == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); kašnjenje (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Sve lansirane rakete"); }}
Dalje, imamo prvu raketu (), to se poziva kada nazovemo Alexa i kažemo tie naredbu za lansiranje prve rakete. Proces je vrlo sličan, uključujemo relej na 800ms i isključujemo se.
void firstrocket (uint8_t svjetlina) {if (svjetlina == 255) {digitalWrite (ROCKET_1_PIN, HIGH); kašnjenje (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Prva lansirana raketa"); }}
Napokon, imamo našu funkciju connectToWiFi () . Ova je funkcija prilično generička i samorazumljiva, stoga neću ulaziti u detalje o ovoj funkciji. Ova funkcija povezuje ESP s Wi-Fi mrežom i vraća status veze.
boolean connectToWiFi () {boolean state = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, lozinka); Serial.println (""); Serial.println ("Spajanje na WiFi"); // Pričekajte vezu Serial.print ("Spajanje…"); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); if (i> 15) {stanje = netačno; pauza; } i ++; } Serial.println (""); if (state) {Serial.print ("Connected to"); Serial.println (ssid); Serial.print ("IP adresa:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Veza nije uspjela."); } stanje vraćanja; }
Ova definirana funkcija označava kraj dijela kodiranja.
Konfiguriranje Alexa s Alexa Android aplikacijom
Alexa će prihvaćati naredbe samo ako i samo ako prepozna uređaj esp8866. Za to trebamo konfigurirati Alexa uz pomoć aplikacije Alexa na Androidu. Jedna važna stvar koju treba učiniti prije nego što nastavimo dalje jest da moramo biti sigurni da je Alexa konfigurirana s našom android aplikacijom.
Da biste to učinili, idite na više odjeljaka aplikacije Alexa i kliknite opciju Dodaj uređaj, kliknite Svjetlo, a zatim se pomaknite dolje na dnu stranice i kliknite Ostalo.

Zatim kliknite OTKRIJ UREĐAJ i pričekajte trenutak nakon što će Alexa pronaći nove uređaje. Nakon što Alexa pronađe uređaje, morate ih kliknuti i dodati na njihova mjesta / kategorije i gotovi ste.

Alexa kontrolirani bacač raketa - testiranje
Za postupak ispitivanja, otišao sam u svoj vrt, izvukao sve osigurače iz rakete, stavio ih na njihova mjesta i vikao Alexa…! Uključi sve Rakete, prekriženih prstiju. I sve su rakete poletjele označivši moj trud kao ogroman uspjeh. Izgledalo je otprilike ovako.

Napokon, još jednom sam rekao Alexa…! Uključite sve rakete da biste dobili epsku sliku niti koju možete vidjeti dolje.

Za epsko iskustvo, toplo vam preporučujem da pogledate video.
