- Batay sa Alexa Controlled Rocket Launcher na Kinokontrol ng Voice - Gumagana
- Launchpad para sa aming NodeMCU Rocket Launch Controller
- Kinakailangan ang Mga Bahagi para sa Alexa Controlled Rocket Launcher
- Arduino Rocket Launcher Circuit Diagram
- Pagbuo ng Circuit sa PerfBoard
- Programming NodeMCU para sa Alexa Controlled Rocket Launcher
- Ang pag-configure ng Alexa sa Alexa Android Application
- Alexa Controlled Rocket Launcher - Pagsubok
Habang papalapit ang panahon ng taglamig; dumating ang oras ng taon kung kailan ipinagdiriwang ang pagdiriwang ng mga ilaw. Oo, pinag-uusapan natin ang tungkol sa Diwali na isang tunay na pagdiriwang ng India na ipinagdiriwang sa buong mundo. Sa taong ito, tapos na si Diwali, at nakikita ang mga paputok, naisip ko ang ideya na buuin ang Alexa based Voice Controlled Rocket Launcher o Igniter, na maaaring maglunsad ng mga rocket na may lamang utos ng boses, ginagawa itong napaka-ligtas at kasiya-siya para sa mga bata.
Upang linawin ito, wala ako dito para hikayatin ang mga tao na sunugin ang mga crackers sa Diwali, nagpatupad ang gobyerno ng India ng mga paghihigpit sa mga crackers upang mapigilan ang polusyon at responsibilidad nating sumunod dito. Ang ideya dito ay na sa halip na gugulin ang buong araw na pagpapaputok ng mga crackers, bumuo tayo ng isang cool na Arduino rocket igniter na kontroladong boses at sunugin ang ilang mga rocket na istilo. Nakikita ko iyon bilang isang panalo.
Ang launcher ng Arduino rocket na ito ay magiging ibang-iba sa iba. Mayroon itong isang napakalakas na chassis na gawa sa playwud, isang maaasahang mekanismo ng control na nakabatay sa relay, at isang natatanging mekanismo para sa paglulunsad at pag-reload ng mga rocket, kaya nang walang karagdagang pagkaantala, magpatuloy tayo sa proseso ng pagbuo.
Batay sa Alexa Controlled Rocket Launcher na Kinokontrol ng Voice - Gumagana
Ang mekanismo ng pagtatrabaho ng circuit ay napaka-simple, ang pangunahing sangkap na responsable para sa paglulunsad ng rocket ay ang nichrome wire, at nagmula ito sa anyo ng isang coil ng pag-init. Ang nichrome wire na ito ay kikilos bilang rocket igniter. Paano? Ipapakita ko sa iyo mamaya.
Tulad ng nakikita mo sa imahe sa itaas, ang nichrome wire ay dumating sa anyo ng isang heater coil, para sa akin, ito ang pinakamadaling paraan upang makuha ito. Kailangan nating hilahin ito nang tuwid at yumuko ito upang makabuo ng isang hugis na katulad ng ipinakita sa imahe sa ibaba.
Kapag nagawa na namin ito, papalakasin namin ito sa isang 12V lead-acid na baterya at mamula ito sa mainit na pula. Sapat na ito upang maapaso ang itim na pulbos sa loob ng rocket at gagana ito tulad ng isang normal na dosis ng fuse. Maabisuhan na ito ay isang mataas na power rocket launch controller, ang kasalukuyang kinakailangang gawing mainit ang kawad ay mataas. Sundin ang payo sa kaligtasan kapag nagtatrabaho nang may mataas na alon.
Kapag natapos na ang pagsubok, ang natitirang bagay lamang ay ang proseso ng pagkontrol, na gagawin namin habang nagpapatuloy kami sa artikulo.
Launchpad para sa aming NodeMCU Rocket Launch Controller
Para sa pagbuo na ito, gumawa tayo ng isang launchpad. Sa tapos na ang launchpad, madali nating mai-reload ang ilang mga crackers at madaling mailunsad ang mga ito. Bumuo ako ng isang launchpad na mukhang ang ipinakita sa imaheng ipinakita sa ibaba.
Dumaan tayo sa hakbang-hakbang na proseso ng pagbuo ng launchpad. Para sa dalawang panig ng frame, gumamit ako ng dalawang (25X3X1.5) pulgada na haba ng piraso ng playwud. Para sa tuktok na bahagi, gumamit ako ng isang (20X3X1.5) pulgada ng haba na bahagi ng playwud at para sa base, gumamit ako ng isang (20X6X1.5) pulgada na mahabang piraso ng playwud, na magbibigay dito ng kaunti pang katatagan. Ang imahe sa ibaba ay magbibigay sa iyo ng isang malinaw na ideya.
Ngayon, oras na upang gawin ang mga filament na batay sa wire na nichrome, na magsisilbing isang piyus para sa aming rocket. Para doon, bumili ako ng isang 1000W nichrome wire base heating coil, itinuwid ito, at ginawa ang istraktura na ipinapakita sa ibaba. Kailangan kong gumamit ng dalawang pliers at mga cutter sa gilid upang hugis ang nichrome wire tulad ng ipinakita sa ibaba.
Kapag tapos na ito, hinati ko ang 20 "piraso ng bloke ng playwud sa pitong piraso na sukat nito, at nag-drill ng mga butas upang ilagay ang mga filament na nakabatay sa wire na nichrome, at kapag tapos na ito, mukhang ang mga imahe sa ibaba.
Ngunit bago mailagay ang mga filament, naka-attach ako ng 1 sq mm na makapal na wire ng tanso sa bawat terminal at naipasa ang mga ito sa mga butas, sa sandaling tapos na ang lahat, mukhang ang imahe sa ibaba.
Tulad ng nakikita mo, naglagay din ako ng dalawang-sangkap na malagkit upang ma-secure ang kawad at mga filament sa lugar. Sa tapos na, kumpleto na ang aming launchpad. At tulad ng nakikita mo mula sa unang larawan sa seksyong ito, direktang nakalakip ko ang mga filament wires sa PCB dahil nakikipag-usap kami sa napakataas na alon kaya't hindi ako nag-abala na maglagay ng isang terminal ng tornilyo, at na ang marka ng pagtatapos ng aming chassis proseso ng pagbuo.
Kinakailangan ang Mga Bahagi para sa Alexa Controlled Rocket Launcher
Para sa panig ng hardware ng mga bagay, gumamit kami ng mga napaka-pangkaraniwang bahagi na madali kang makakakuha mula sa iyong lokal na tindahan ng libangan, isang kumpletong listahan ng mga item ang ibinibigay sa ibaba.
- 12V-Relay - 3
- BD139 Transistor - 3
- 1N4004 Diode - 3
- 5.08 mm Screw Terminal - 1
- LM7805 - Voltage Regulator - 1
- 100uF Decoupling Capacitor - 2
- 5.1V Zener Diode - 1
- NodeMCU (ESP8266-12E) Lupon - 1
- Dotted Perf Board - ½
- Koneksyon sa Wire - 10
Arduino Rocket Launcher Circuit Diagram
Ang kumpletong eskematiko para sa Alexa Controlled Rocket Launcher ay ibinibigay sa ibaba. Gumamit ako ng mga tag upang ikonekta ang isang pin sa isa pa. Kung tumingin ka ng sapat na malapit, hindi dapat maging mahirap bigyang kahulugan ang eskematiko.
Ang Pagtatayo ng Circuit ay medyo prangka, Kaya't hindi ko masyadong bibigyan ang mga detalye.
Una, mayroon kaming IC1 na kung saan ay isang LM7805 boltahe regulator, kasama ang 100uF decoupling capacitors na tinukoy ng C1 at C2. Pagkatapos nito, nasa gitna namin ang aming proyekto, ang board ng NodeMCU, na naglalaman ng module na ESP-12E. Dahil gumagamit kami ng isang 12V lead-acid na baterya upang mapagana ang buong circuit, na ang dahilan kung bakit kailangan naming gamitin ang LM7805 upang mai-convert muna ito sa 12V hanggang 5V upang mapagana ang board ng NodeMCU. Ginagawa namin ito dahil ang onboard AMS1117 boltahe regulator ay hindi sapat na sapat upang mai-convert ang 12V nang direkta sa 3.3V, na ang dahilan kung bakit kinakailangan ang 7805.
Sa pagpapatuloy, mayroon kaming tatlong 12V relay, para sa pagpapakitang ito, gumagamit kami ng tatlong relay, ngunit tulad ng naunang nabanggit, ang launchpad ay may isang placeholder para sa 7 rockets. Maaari mong sabunutan nang kaunti ang code at ilagay ang lahat ng pitong mga rocket upang maglunsad nang sama-sama. Ang tatlong mga relay ay hinihimok ng isang T1, T2, at T3 na tatlong mga transistor ng NPN, at sapat ang mga ito upang himukin ang pagkarga ng isang tunay. Sa wakas, mayroon kaming tatlong mga diode ng freewheeling na nagpoprotekta sa circuit mula sa mga mataas na boltahe na spike na nabuo ng relay.
Pagbuo ng Circuit sa PerfBoard
Tulad ng nakikita mo mula sa pangunahing imahe, ang ideya ay gumawa ng isang simpleng circuit na maaaring hawakan ang isang malaking halaga ng kasalukuyang para sa isang maikling panahon, ayon sa aming pagsubok, 800 milliseconds ay sapat na upang magaan ang isang piraso ng papel. Kaya, binubuo namin ang circuit sa isang piraso ng perfboard at ikinonekta ang lahat ng mga pangunahing koneksyon na may 1 sq mm makapal na tanso na tanso. Pagkatapos naming matapos ang paghihinang ng pisara. Kapag natapos na kami, mukhang isang bagay na ipinakita sa ibaba.
Programming NodeMCU para sa Alexa Controlled Rocket Launcher
Ngayon na handa na ang hardware, oras na upang simulan ang pag-coding para sa aming batay sa Alexa na kinokontrol na rocket launcher. Ang kumpletong code ay matatagpuan sa pagtatapos ng pahinang ito, ngunit bago kami magsimula, mahalagang idagdag ang kinakailangang mga aklatan sa iyong Arduino IDE. Siguraduhin na idagdag mo ang tamang mga aklatan mula sa link na ibinigay sa ibaba iba pa ang code ay magtapon ng mga error kapag naipon.
- I-download ang Espalexa Library
Matapos idagdag ang kinakailangang mga aklatan, maaari mong direktang mai-upload ang code na ibinigay sa ilalim ng pahinang ito upang suriin kung gumagana ang circuit. Kung nais mong malaman kung paano gumagana ang code, pagkatapos ay patuloy na basahin.
Tulad ng lagi, sinisimulan namin ang programa sa pamamagitan ng pagdaragdag ng kinakailangang mga file ng header at pagtukoy sa mga pangalan ng pin at kredensyal para sa aming hotspot.
# isama
Ang pagpapatuloy sa aming code, mayroon kaming mga prototype ng pagpapaandar at kahulugan ng pag-andar ng callback.
Ginagamit ang function connectToWiFi () upang kumonekta sa Wi-Fi network at ang function na ito ay bumalik nang totoo kapag matagumpay na nakakonekta ang Wi-Fi.
Susunod, mayroon kaming mga pag- andar sa callback , tatawagin ang mga pagpapaandar na ito kapag nagbibigay kami ng isang utos kay Alexa, ang espalexa API ang humahawak sa mga pagpapaandar na ito
walang bisa allrockets (uint8_t ningning); walang bisa firstrocket (uint8_t ningning); walang bisa ang secondrocket (uint8_t ningning); walang bisa ang thirdrocket (uint8_t ningning);
Susunod, tinutukoy namin ang Mga Pangalan ng Device. Ang mga tinukoy na pangalan ng aparato ay makikita sa Alexa app at kapag nagsabi kami ng isang utos, makikilala ng Alexa ang mga aparato sa mga pangalang ito. Kaya't ang mga pangalang ito ay napakahalaga.
// Mga pangalan ng aparato String First_Device_Name = "Lahat ng Rockets"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Dalawang Rocket"; String Forth_Device_Name = "Tatlong Rocket";
Susunod, tinutukoy namin ang isang boolean variable wifiStatus, na hahawak sa katayuan ng koneksyon ng Wi-Fi. Sa wakas, lumikha kami ng isang Espalexa object na espalexa. Gagamitin namin ang bagay na ito upang mai-configure ang NodeMCU.
// status ng wifi check boolean wifiStatus = false; // Espalexa Object Espalexa espalexa;
Susunod, mayroon kaming seksyon na walang bisa na pag-set up () . Sa seksyong ito, pinasimulan namin ang serial na komunikasyon para sa pag-debug sa pagpapaandar ng Serial.begin () . Itinakda namin ang lahat ng nakaraang tinukoy na mga pin bilang output na may function na pinMode () , susunod na tatawagan namin ang function na connectToWiFi () , susubukan nitong kumonekta sa Wi-Fi nang labinlimang beses kung nakakonekta ito, babalik ito nang totoo kung hindi makakonekta, magbabalik ito ng hindi totoo at ang code ay magpapatupad ng isang habang () loop magpakailanman. Kung matagumpay ang koneksyon sa Wi-Fi, idaragdag namin ang dati nang natukoy na mga aparato sa bagay na Alexa sa pamamagitan ng paggamit ng function na espalexa.addDevice () . Ang pagpapaandar na ito ay tumatagal ng dalawang mga argumento, una ang Pangalan ng Device, pangalawa ang pangalan ng function ng callback, kapag naglabas kami ng isang utos kay Alexa, tatawagin ang katabing pagpapaandar. Kapag tapos na namin itong gawin para sa lahat ng aming apat na aparato, tinawag namin ang mga simula () na pamamaraan para sa bagay na espalexa.
void setup () {Serial.begin (115200); // Paganahin ang Serial para sa pag-debug ng mga mensahe pinMode (ROCKET_1_PIN, OUTPUT); // setup ESP pins as output pinMode (ROCKET_2_PIN, OUTPUT); // setup ESP pin bilang output pinMode (ROCKET_3_PIN, OUTPUT); // setup ESP pins as output wifiStatus = connectToWiFi (); // Kumonekta sa lokal na Wi-Fi Network kung (wifiStatus) {// i-set up ang lahat ng mga aparatong espalexa // Tukuyin ang iyong mga aparato dito. espalexa.addDevice (First_Device_Name, allrockets); // pinakasimpleng kahulugan, default na estado sa espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } iba pa {habang (1) {Serial. println ("Hindi makakonekta sa WiFi. Mangyaring suriin ang data at i-reset ang ESP."); pagkaantala (2500); }}}
Sa seksyon ng loop , tinawag namin ang loop () na paraan ng espalexa object na palaging susuriin para sa anumang papasok na utos at tawagan ang callback function kung ito ay totoo.
void loop () {espalexa.loop (); antala (1); }
Susunod, tinutukoy namin ang lahat ng aming mga pag-andar sa callback, sa seksyong ito, tutukuyin namin kung ano ang nangyayari kapag tinawag ang pagpapaandar na ito ng callback. Kapag tinawag ang pagpapaandar ng allrockets () , ang lahat ng mga rocket ay ilulunsad nang magkasama. Para doon, bubuksan namin ang relay para sa 00 ms at pagkatapos nito, papatayin namin ang mga relay. Sa aking mga pagsusulit, nalaman ko na para sa tinukoy na haba ng nichrome wire, kailangan ko ng 800ms ng pagkaantala upang ganap na maiinit ang kawad, maaaring ito ay maaaring hindi para sa iyo. Kaya piliin ang pagkaantala nang naaayon.
void allrockets (uint8_t brightness) {if (brightness == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, TAAS); digitalWrite (ROCKET_3_PIN, TAAS); pagkaantala (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Lahat ng Rockets Inilunsad"); }}
Susunod, mayroon kaming unang rocket (), tatawagin ito kapag tinawag namin si Alexa at sinabing itali ang utos upang ilunsad ang unang rocket. Ang proseso ay halos kapareho, binubuksan namin ang relay para sa 800ms at patayin.
void firstrocket (uint8_t brightness) {if (brightness == 255) {digitalWrite (ROCKET_1_PIN, HIGH); pagkaantala (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Unang Rocket Inilunsad"); }}
Sa wakas, mayroon kaming function na connectToWiFi () . Ang pagpapaandar na ito ay medyo pangkaraniwan at nagpapaliwanag sa sarili, kaya't hindi ko bibigyan ang mga detalye tungkol sa pagpapaandar na ito. Ang pagpapaandar na ito ay kumokonekta sa ESP sa Wi-Fi at ibabalik ang katayuan ng koneksyon.
boolean connectToWiFi () {boolean state = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, password); Serial.println (""); Serial.println ("Kumokonekta sa WiFi"); // Maghintay para sa koneksyon Serial.print ("Kumokonekta…"); habang (WiFi.status ()! = WL_CONNected) {pagkaantala (500); Serial.print ("."); kung (i> 15) {state = false; pahinga; } i ++; } Serial.println (""); kung (estado) {Serial.print ("Nakakonekta sa"); Serial.println (ssid); Serial.print ("IP address:"); Serial.println (WiFi.localIP ()); } iba pa {Serial.println ("Nabigo ang koneksyon."); } bumalik estado; }
Ang tinukoy ng pagpapaandar na ito ay nagmamarka sa pagtatapos ng bahagi ng pag-coding.
Ang pag-configure ng Alexa sa Alexa Android Application
Tatanggap lamang ang Alexa ng mga utos kung at kung makikilala lamang ang aparatong esp8866. Para doon, kailangan naming i-configure ang Alexa sa tulong ng Alexa app sa Android. Ang isang mahalagang bagay na dapat gawin bago magpatuloy sa anumang karagdagang ay kailangan nating tiyakin na naka-configure ang Alexa sa aming android application.
Upang magawa iyon, pumunta sa higit pang seksyon ng Alexa app at mag-click sa pagpipilian na Magdagdag ng isang Device, mag-click sa Banayad, pagkatapos ay mag-scroll pababa sa ilalim ng pahina at mag-click sa Iba pa.
Susunod, mag-click sa DISCOVER DEVICE at maghintay ng ilang sandali pagkatapos na makahanap ang Alexa ng mga bagong aparato. Kapag nahanap na ng Alexa ang mga aparato, kailangan mong mag-click sa mga ito at idagdag ang mga ito sa kani-kanilang mga lugar / kategorya, at tapos ka na.
Alexa Controlled Rocket Launcher - Pagsubok
Para sa proseso ng pagsubok, nagpunta ako sa aking hardin, hinugot ang lahat ng mga piyus mula sa rocket, inilagay ito sa kani-kanilang lugar, at sinigawan ko si Alexa…! I-on ang lahat ng Rockets, na naka-cross ang aking mga daliri. At ang lahat ng mga rocket ay lumipad sa pamamagitan ng pagmamarka ng aking mga pagsisikap bilang isang malaking tagumpay. Mukha itong ganito.
Sa wakas, minsan pa sinabi ko si Alexa…! I-on ang lahat ng mga rocket upang makakuha ng isang mahabang tula larawan ng mga filament na maaari mong makita sa ibaba.
Para sa isang mas mahabang karanasan, inirerekumenda kong panoorin mo ang video.