- Alexa-pohjainen ääniohjattu raketinheitin - toimii
- NodeMCU Rocket Launch Controllerin käynnistyslevy
- Tarvittavat komponentit Alexa-ohjatulle rakettien kantoraketille
- Arduino-raketinheittimen virtapiiri
- Piirin rakentaminen PerfBoardille
- NodeMCU: n ohjelmointi Alexa-ohjatulle rakettien kantoraketille
- Alexan määrittäminen Alexa Android -sovelluksella
- Alexa-ohjattu raketinheitin - testaus
Talvikauden lähestyessä; tulee tuohon aikaan vuodesta, jolloin valofestivaalia vietetään. Kyllä, puhumme Diwalista, joka on todellinen intialainen festivaali, jota vietetään ympäri maailmaa. Tänä vuonna Diwali on jo ohitse, ja nähdessäni sähinkäisiä, keksin ajatuksen rakentaa Alexaan perustuva ääniohjattu rakettien laukaisulaite tai sytytin, joka voi laukaista raketteja vain äänikomennolla, mikä tekee siitä erittäin turvallisen ja hauskan lapsille.
Selvyyden vuoksi en ole täällä kannustamassa ihmisiä ampumaan keksejä Diwalissa. Intian hallitus on pannut täytäntöön keksejä koskevia rajoituksia pilaantumisen hillitsemiseksi, ja meidän vastuullamme on noudattaa niitä. Ajatuksena on, että sen sijaan, että vietämme koko päivän keksejä ampumaan, rakennetaan viileä ääniohjattu Arduino-raketin sytytin ja ammutaan muutama raketti tyylillä. Mielestäni se on win-win.
Tämä Arduino-raketinheitin on hyvin erilainen kuin muut. Siinä on erittäin tukeva runko, joka on valmistettu vanerista, luotettava relepohjainen ohjausmekanismi ja erittäin ainutlaatuinen mekanismi rakettien laukaisemiseksi ja uudelleenlastaamiseksi, joten päästään heti eteenpäin rakennusprosessiin.
Alexa-pohjainen ääniohjattu raketinheitin - toimii
Piirin toimintamekanismi on hyvin yksinkertainen, raketin laukaisemisesta vastaava pääkomponentti on nikromilanka, ja se tulee lämmityspatterin muodossa. Tämä nikromilanka toimii raketin sytyttimenä. Miten? Näytän sinulle myöhemmin.
Kuten yllä olevasta kuvasta näet, nikromilanka tulee lämmitinkäämin muodossa, minulle se oli helpoin tapa saada se. Meidän on vedettävä se suoraan ja taivutettava muodostamaan muoto, joka näyttää alla olevan kuvan mukaiselta.
Kun olemme tehneet tämän, virtalähteenä se on 12 V: n lyijyakku ja se hehkuu punaisena. Tämä riittää sytyttämään mustan jauheen raketin sisällä ja se toimii aivan kuten normaali sulakeannos. Huomaa, että tämä on suuritehoinen rakettien laukaisuohjain, johdot punaiseksi tarvitsema virta on suuri. Noudata turvallisuusohjeita työskennellessäsi suurten virtojen kanssa.
Kun testaus on tehty, ainoa jäljellä oleva asia on kontrollointiprosessi, jonka teemme jatkaessamme artikkelissa.
NodeMCU Rocket Launch Controllerin käynnistyslevy
Tehdään tälle rakenteelle käynnistyslevy. Kun käynnistysalusta on valmis, voimme helposti ladata joitain keksejä ja käynnistää ne helposti. Olen rakentanut käynnistysalustan, joka näyttää samalta kuin alla olevassa kuvassa.
Käydään läpi vaihe vaiheelta käynnistysalustan rakentaminen. Rungon molemmille puolille olen käyttänyt kahta (25X3X1,5) tuuman pitkää vanerikappaletta. Yläosassa olen käyttänyt (20X3X1,5) tuuman pitkää vaneria ja pohjana olen käyttänyt (20X6X1,5) tuuman pitkää vaneria, mikä antaa sille hieman enemmän vakautta. Alla oleva kuva antaa sinulle selkeän kuvan.
Nyt on aika tehdä nikromilangasta valmistetut filamentit, jotka toimivat rakettimme sulakkeena. Sitä varten olen ostanut 1000 W nikromilangan pohjalämmityspatterin, suoristanut sen ja tehnyt alla olevan kuvan. Minun täytyi käyttää kahta pihtiä ja sivuleikkureita muotoillakseni nikromilangan alla olevan kuvan mukaisesti.
Kun tämä oli tehty, jaoin 20 tuuman vanerilohkon seitsemään osaan, mitaten sen, ja porasin reikiä asettamaan nikromilanka-pohjaiset filamentit, ja kun se oli tehty, se näytti olevan alla olevat kuvat.
Mutta ennen filamenttien asettamista, olen kiinnittänyt 1 neliömetrin paksuisen kuparilangan jokaiseen päätteeseen ja kuljettanut ne reikien läpi, kun kaikki oli tehty, se näytti olevan alla oleva kuva.
Kuten näette, olen myös laittanut kaksikomponenttisen liiman kiinnittämään langan ja filamentit paikoilleen. Kun tämä on tehty, käynnistyslevy on valmis. Ja kuten tämän osan ensimmäisestä kuvasta näet, olen kiinnittänyt hehkulangat suoraan piirilevyyn, koska kyseessä ovat erittäin suuret virrat, joten en vaivautunut asettamaan ruuviliitintä, ja se merkitsee rungomme loppua rakennusprosessi.
Tarvittavat komponentit Alexa-ohjatulle rakettien kantoraketille
Asioiden laitteistopuolelle olemme käyttäneet hyvin yleisiä osia, jotka saat melko helposti paikallisesta harrastekaupastasi. Täydellinen luettelo tuotteista on alla.
- 12 V: n rele - 3
- BD139-transistori - 3
- 1N4004 Diodi - 3
- 5,08 mm ruuviliitin - 1
- LM7805 - Jännitesäädin - 1
- 100uF irrotuskondensaattori - 2
- 5,1 V: n Zener-diodi - 1
- NodeMCU (ESP8266-12E) -levy - 1
- Pisteviiva Perf Board - ½
- Liitäntäjohto - 10
Arduino-raketinheittimen virtapiiri
Alexa-ohjatun raketti-laukaisimen täydellinen kaavio on esitetty alla. Olen käyttänyt tunnisteita liittääni yhden nastan toiseen. Jos katsot tarpeeksi lähelle, kaavion ei pitäisi olla vaikea tulkita.
Piirirakenne on melko suoraviivainen, joten en aio mennä yksityiskohtiin kovin paljon.
Ensinnäkin meillä on IC1, joka on LM7805-jännitesäädin, sen 100uF: n irrotuskondensaattoreilla, joita merkitään C1: llä ja C2: lla. Sen jälkeen meillä on projektin ydin, NodeMCU-kortti, johon kuuluu ESP-12E-moduuli. Koska käytämme 12 V: n lyijyakkuja koko piirin virtalähteeseen, siksi meidän on ensin käytettävä LM7805: tä muuntamaan se 12 V: sta 5 V: ksi NodeMCU-kortin virran saamiseksi. Teemme niin, koska sisäinen AMS1117-jännitesäädin ei riitä 12 V: n muuntamiseen suoraan 3,3 V: ksi, minkä vuoksi 7805 on tarpeen.
Siirtymällä eteenpäin meillä on kolme 12 V: n releä, tässä esittelyssä käytämme kolmea releitä, mutta kuten aiemmin mainitsimme, käynnistyslevyllä on paikkamerkki 7 raketille. Voit säätää koodia hieman ja sijoittaa kaikki seitsemän rakettia käynnistääksesi kaiken. Näitä kolmea releä ohjaavat T1, T2 ja T3, jotka ovat kolme NPN-transistoria, ja ne ovat riittävät todellisen kuorman ohjaamiseen. Lopuksi meillä on kolme vapaasti kulkevaa diodia, jotka suojaavat virtapiiriä releen tuottamilta suurjännitepiikeiltä.
Piirin rakentaminen PerfBoardille
Kuten pääkuvasta näet, ajatuksena oli tehdä yksinkertainen piiri, joka pystyy käsittelemään valtavan määrän virtaa lyhyeksi ajaksi, testauksemme mukaan 800 millisekuntia riittää pala paperin palamiseen. Joten rakennamme virtapiirin paperilevylle ja yhdistämme kaikki tärkeimmät liitännät 1 neliömetriä paksulla kuparilangalla. Kun olemme juottaneet levyn. Kun olimme valmiit, se näytti siltä, mikä näkyy alla.
NodeMCU: n ohjelmointi Alexa-ohjatulle rakettien kantoraketille
Nyt kun laitteisto on valmis, on aika alkaa koodata Alexa-pohjaista ääniohjattua rakettien kantorakettia. Koko koodi löytyy tämän sivun lopusta, mutta ennen kuin aloitamme, on tärkeää lisätä tarvittavat kirjastot Arduino IDE -laitteeseesi. Varmista, että lisäät oikeat kirjastot alla olevasta linkistä. Muuten koodi heittää virheitä käännettäessä.
- Lataa Espalexa-kirjasto
Kun olet lisännyt vaaditut kirjastot, voit ladata tämän sivun alaosassa olevan koodin suoraan tarkistaaksesi, toimiiko piiri. Jos haluat tietää, miten koodi toimii, jatka lukemista.
Kuten aina, aloitamme ohjelman lisäämällä vaaditut otsikkotiedostot ja määrittelemällä hotspotin PIN-tunnukset ja tunnistetiedot.
#sisältää
Koodillamme eteenpäin meillä on toimintoprototyypit ja takaisinkutsufunktioiden määritelmät.
Toiminto connectToWiFi () käytetään yhteyden Wi-Fi-verkon ja tämä funktio palauttaa true, kun Wi-Fi saa saanut yhteyttä.
Seuraavaksi meillä on takaisinkutsutoiminnot , nämä toiminnot kutsutaan, kun annamme komennon Alexalle, espalexa-sovellusliittymä käsittelee näitä toimintoja
mitätön allrockets (kirkkaus uint8_t); void firstrocket (uint8_t-kirkkaus); void secondrocket (uint8_t-kirkkaus); mitätön kolmas takaratas (uint8_t-kirkkaus);
Seuraavaksi määritämme laitenimet. Nämä määritetyt laitenimet heijastuvat Alexa-sovellukseen, ja kun sanomme komennon, Alexa tunnistaa laitteet näillä nimillä. Joten nämä nimet ovat erittäin tärkeitä.
// Laitteiden nimet String First_Device_Name = "Kaikki raketit"; String Secound_Device_Name = "Raketti Yksi"; String Third_Device_Name = "Raketti kaksi"; String Forth_Device_Name = "Raketti kolme";
Seuraavaksi määritellään looginen muuttuja wifiStatus, joka pitää Wi-Fi-yhteyden tilan. Lopuksi luomme Espalexa-objektin espalexa. Käytämme tätä objektia NodeMCU: n määritykseen.
// wifi-tilan tarkistus looginen wifiStatus = false; // Espalexa-objekti Espalexa espalexa;
Seuraavaksi meillä on void setup () -osio. Tässä osassa alustamme sarjaliikenteen virheenkorjausta varten Serial.begin () -toiminnolla. Asetamme kaikki edelliset määritetyt nastat lähdöksi pinMode () -toiminnolla, seuraavaksi kutsumme connectToWiFi () -toimintoa, se yrittää muodostaa yhteyden Wi-Fi- verkkoon viisitoista kertaa, jos se on kytketty, se palaa totta, jos se ei muodosta yhteys, se palauttaa väärän arvon ja koodi suorittaa jonkin aikaa () -silmukan ikuisesti. Jos Wi-Fi-yhteys onnistuu, lisätään aiemmin määritetyt laitteet Alexa-objektiin käyttämällä espalexa.addDevice () -toimintoa.Tässä toiminnossa on kaksi argumenttia, ensin on Laitteen nimi, toinen on soittopyynnön nimi, kun annamme komennon Alexalle, viereinen toiminto kutsutaan. Kun olemme tehneet tee sitä kaikissa neljässä meidän laitteiden, kutsumme alkaa () menetelmiä espalexa objektin.
void setup () {Sarja.alku (115200); // Ota sarja käyttöön viestien virheenkorjauksessa pinMode (ROCKET_1_PIN, OUTPUT); // aseta ESP-nastat lähtöliitäntätilaksi (ROCKET_2_PIN, OUTPUT); // aseta ESP-nastat lähtönopeustilaksi (ROCKET_3_PIN, OUTPUT); // aseta ESP-nastat lähtöön wifiStatus = connectToWiFi (); // Yhdistä paikalliseen Wi-Fi-verkkoon, jos (wifiStatus) {// määritä kaikki espalexa-laitteet // Määritä laitteesi täällä. espalexa.addDevice (First_Device_Name, allrockets); // yksinkertaisin määritelmä, oletustila pois päältä espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (kolmas_laitteen_nimi, secondrocket); espalexa.addDevice (Forth_Device_Name, kolmas takaa); espalexa.begin (); } else {while (1) {Sarja. println ("Wi-Fi-verkkoon ei saada yhteyttä. Tarkista tiedot ja nollaa ESP."); viive (2500); }}}
Että silmukka osassa, kutsumme silmukka () menetelmän espalexa objekti, joka aina tarkistaa kaikki saapuvat komento ja soittaa takaisinkutsufunktio, jos se toteaa totta.
void loop () {espalexa.loop (); viive (1); }
Seuraavaksi määritellään kaikki takaisinkutsutoiminnot, tässä osassa määritetään mitä tapahtuu, kun tätä takaisinsoittotoimintoa kutsutaan. Kun allrockets () -toiminto kutsutaan, kaikki raketit laukaistaan yhdessä. Tätä varten aiomme kytkeä releen päälle 00 ms: n ajan ja sen jälkeen sammuttaa releet. Testeissä olen havainnut, että tietyn pituisen nikromilangan tarvitsen 800 ms viivettä langan täydelliseen lämmittämiseen, tämä voi olla sinulle tai ei. Joten valitse viive vastaavasti.
void allrockets (uint8_t kirkkaus) {if (kirkkaus == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); viive (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Kaikki raketit käynnistetty"); }}
Seuraavaksi meillä on ensimmäinen raketti (), tämä kutsutaan, kun soitamme Alexalle ja sanomme tie -komennon ensimmäisen raketin käynnistämiseksi. Prosessi on hyvin samanlainen, kytkemme releen päälle 800 ms ja sammutamme.
void firstrocket (uint8_t kirkkaus) {if (kirkkaus == 255) {digitalWrite (ROCKET_1_PIN, HIGH); viive (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Ensimmäinen raketti käynnistettiin"); }}
Lopuksi meillä on connectToWiFi () -toiminto. Tämä toiminto on melko yleinen ja itsestään selvä, joten en käsittele tämän toiminnon yksityiskohtia. Tämä toiminto yhdistää ESP: n Wi-Fi-verkkoon ja palauttaa yhteyden tilan.
looginen connectToWiFi () {looginen tila = tosi; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, salasana); Sarja.println (""); Serial.println ("Yhdistäminen WiFi-verkkoon"); // Odota yhteyttä Serial.print ("Yhdistetään…"); while (WiFi.status ()! = WL_CONNECTED) {viive (500); Sarjaprintti ("."); jos (i> 15) {tila = väärä; tauko; } i ++; } Sarja.println (""); if (tila) {Serial.print ("Yhdistetty kohteeseen"); Serial.println (ssid); Serial.print ("IP-osoite:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Yhteys epäonnistui."); } paluutila; }
Tämä määritetty toiminto merkitsee koodaavan osan loppua.
Alexan määrittäminen Alexa Android -sovelluksella
Alexa hyväksyy komennot vain ja vain, jos se tunnistaa esp8866-laitteen. Tätä varten meidän on määritettävä Alexa Androidin Alexa-sovelluksen avulla. Yksi tärkeä asia ennen kuin jatkamme, on, että meidän on varmistettava, että Alexa on määritetty Android-sovelluksellamme.
Voit tehdä sen siirtymällä Alexa-sovelluksen lisää osioon ja napsauttamalla Lisää laite -vaihtoehtoa, napsauttamalla Valo, vierittämällä alaspäin sivun alareunassa ja valitsemalla Muu.
Napsauta seuraavaksi NÄYTÄ LAITE ja odota hetki sen jälkeen, kun Alexa löytää uusia laitteita. Kun Alexa löytää laitteet, sinun on napsautettava niitä ja lisättävä ne omiin paikkoihinsa / luokkiinsa, ja olet valmis.
Alexa-ohjattu raketinheitin - testaus
Testausprosessia varten menin puutarhaan, vedin kaikki sulakkeet raketista, asetin ne omiin paikkoihinsa ja huusin Alexa…! Kytke kaikki raketit päälle sormeni ristissä. Ja kaikki raketit lentivät merkitsemällä ponnisteluni suureksi menestykseksi. Se näytti tältä.
Lopuksi vielä kerran sanoin Alexan…! Kytke kaikki raketit päälle saadaksesi eeppisen kuvan filamenteista, jotka näet alla.
Eeppisemmän kokemuksen saamiseksi suosittelen lämpimästi katsomaan videota.