- Hlasově ovládaný raketomet na bázi Alexa - pracuje
- Launchpad pro náš NodeMCU Rocket Launch Controller
- Komponenty požadované pro Alexa Controlled Rocket Launcher
- Okruhové schéma raketometu Arduino
- Budování okruhu na PerfBoard
- Programování NodeMCU pro Alexa Controlled Rocket Launcher
- Konfigurace Alexa pomocí aplikace Alexa pro Android
- Alexa Controlled Rocket Launcher - Testování
Jak se blíží zimní sezóna; přichází doba, kdy se slaví svátek světel. Ano, mluvíme o Diwali, což je skutečný indický festival oslavovaný po celém světě. Letos je Diwali již u konce a když jsem viděl petardy lidí, přišel jsem s nápadem postavit Voice Controlled Rocket Launcher nebo Igniter na bázi Alexa, který dokáže odpalovat rakety pouhým hlasovým příkazem, což je pro děti velmi bezpečné a zábavné.
Aby bylo jasno, nejsem tu proto, abych povzbuzoval lidi, aby pálili crackery na Diwali, indická vláda prosadila omezení crackerů, aby omezila znečištění a je naší odpovědností to dodržovat. Myšlenka zde je, že místo toho, abychom celý den pálili crackery, postavme si skvělý hlasem ovládaný zapalovač raket Arduino a vypálíme několik raket ve velkém stylu. Vidím to jako win-win.
Tento raketomet Arduino se bude velmi lišit od ostatních. Má velmi robustní podvozek vyrobený z překližky, spolehlivý řídicí mechanismus založený na relé a velmi jedinečný mechanismus pro spouštění a nabíjení raket, takže bez dalšího zpoždění pojďme přímo do procesu stavby.
Hlasově ovládaný raketomet na bázi Alexa - pracuje
Pracovní mechanismus obvodu je velmi jednoduchý, hlavní složkou odpovědnou za odpálení rakety je nichromový drát, který má formu topné spirály. Tento nichromový drát bude fungovat jako raketový zapalovač. Jak? Ukážu vám to později.
Jak vidíte na obrázku výše, nichromový drát má formu topné spirály, pro mě to byl nejjednodušší způsob, jak ho získat. Musíme to vytáhnout rovně a ohnout, abychom vytvořili tvar, který vypadá, jak je znázorněno na obrázku níže.
Jakmile to uděláme, napájíme jej olověným akumulátorem 12V a bude žhnout červeně. To bude stačit k zapálení černého prachu uvnitř rakety a bude to fungovat jako normální dávka pojistky. Mějte na paměti, že se jedná o vysoce výkonný ovladač spouštění raket, proud potřebný k tomu, aby byl vodič horký, je vysoký. Při práci s vysokými proudy dodržujte bezpečnostní pokyny.
Po dokončení testování zbývá jen kontrolní proces, který budeme dělat, jak budeme pokračovat v článku.
Launchpad pro náš NodeMCU Rocket Launch Controller
Pro toto sestavení vytvořme příruční panel. Po dokončení příručního panelu můžeme snadno načíst některé crackery a velmi snadno je spustit. Postavil jsem příruční panel, který vypadá jako ten, který je zobrazen na obrázku níže.
Projdeme si krok za krokem proces sestavování příručního panelu. Pro dvě strany rámu jsem použil dva (25X3X1,5) palce dlouhé kousky překližky. Pro horní část jsem použil (20X3X1,5) palcovou část překližky a pro základnu jsem použil (20X6X1,5) palcový kus překližky, což jí dodá trochu větší stabilitu. Obrázek níže vám dá jasnou představu.
Nyní je čas vyrobit vlákna z chromového drátu, která budou fungovat jako pojistka pro naši raketu. Za to jsem si koupil 1000W nichromový drátový topný výměník, narovnal ho a vyrobil strukturu, která je zobrazena níže. K tvarování nichromového drátu jsem musel použít dvě kleště a boční řezačky, jak je znázorněno níže.
Jakmile to bylo hotové, rozdělil jsem 20 ”kus překližkového bloku na sedm kusů, změřil to a vyvrtal otvory, do kterých jsem vložil vlákna z nichromového drátu, a jakmile to bylo hotové, vypadalo to jako na obrázcích níže.
Ale před umístěním vláken jsem do každého terminálu připojil měděný drát o tloušťce 1 čtvereční mm a protáhl je otvory, jakmile bylo vše hotové, vypadalo to jako na obrázku níže.
Jak vidíte, vložil jsem také dvousložkové lepidlo k zajištění drátu a vláken na místě. Tím je náš launchpad kompletní. A jak můžete vidět z prvního obrázku v této části, připojil jsem přímo vláknové vodiče k desce plošných spojů, protože máme co do činění s velmi vysokými proudy, takže jsem se neobtěžoval umístit šroubovou svorku a to označuje konec našeho šasi stavební proces.
Komponenty požadované pro Alexa Controlled Rocket Launcher
Pokud jde o hardwarovou stránku věci, použili jsme velmi obecné součásti, které můžete snadno získat z místního hobby obchodu, kompletní seznam položek je uveden níže.
- 12V relé - 3
- Tranzistor BD139 - 3
- Dioda 1N4004 - 3
- Šroubová svorka 5,08 mm - 1
- LM7805 - Regulátor napětí - 1
- Oddělovací kondenzátor 100uF - 2
- 5.1V Zenerova dioda - 1
- Deska NodeMCU (ESP8266-12E) - 1
- Tečkovaná Perf Board - ½
- Připojovací vodič - 10
Okruhové schéma raketometu Arduino
Kompletní schéma pro Alexa Controlled Rocket Launcher je uvedeno níže. Použil jsem značky pro připojení jednoho kolíku k druhému. Pokud se podíváte dostatečně blízko, nemělo by být obtížné vyložit schéma.
Konstrukce obvodu je docela přímočará, takže se nebudu moc podrobně zabývat.
Nejprve máme IC1, což je regulátor napětí LM7805 se svými 100uF oddělovacími kondenzátory označenými C1 a C2. Poté máme srdce našeho projektu, desku NodeMCU, ve které je umístěn modul ESP-12E. Jelikož k napájení celého obvodu používáme 12V olověnou baterii, proto musíme nejprve použít LM7805 k převedení na 12V až 5V pro napájení desky NodeMCU. Děláme to proto, že palubní regulátor napětí AMS1117 nestačí k převodu 12V přímo na 3,3V, což je důvod, proč je 7805 nezbytný.
Pokračujeme, máme tři 12V relé, pro tuto demonstraci používáme tři relé, ale jak jsme již zmínili, launchpad má zástupný symbol pro 7 raket. Můžete trochu vylepšit kód a umístit všech sedm raket, abyste mohli úplně vystartovat. Tři relé jsou poháněna tranzistory T1, T2 a T3, což jsou tři tranzistory NPN a jsou dostatečné k tomu, aby poháněly skutečnou zátěž. Konečně máme tři volnoběžné diody, které chrání obvod před vysokonapěťovými hroty generovanými relé.
Budování okruhu na PerfBoard
Jak vidíte na hlavním obrázku, myšlenkou bylo vytvořit jednoduchý obvod, který zvládne obrovské množství proudu na krátkou dobu, podle našich testů stačí 800 milisekund na rozsvícení kousku papíru. Takže stavíme obvod na kusu perfboardu a spojujeme všechna hlavní spojení měděným drátem o tloušťce 1 čtvereční mm. Po dokončení pájení desky. Jakmile jsme skončili, vypadalo to jako něco, co je zobrazeno níže.
Programování NodeMCU pro Alexa Controlled Rocket Launcher
Nyní, když je hardware připraven, je čas začít kódovat náš raketomet s hlasovým ovládáním na bázi Alexa. Celý kód najdete na konci této stránky, ale než začneme, je důležité přidat do svého Arduino IDE požadované knihovny. Ujistěte se, že přidáte správné knihovny z odkazu uvedeného níže, jinak bude kód při kompilaci vyvolávat chyby.
- Stáhněte si knihovnu Espalexa
Po přidání požadovaných knihoven můžete přímo nahrát kód uvedený v dolní části této stránky a zkontrolovat, zda obvod funguje. Pokud chcete vědět, jak kód funguje, pokračujte ve čtení.
Jako vždy začneme program přidáním požadovaných souborů záhlaví a definováním názvů pinů a pověření pro náš hotspot.
#zahrnout
Pokračujeme naším kódem a máme prototypy funkcí a definice funkcí zpětného volání.
Funkce connectToWiFi () se používá k připojení k síti Wi-Fi a tato funkce vrátí hodnotu true, když se Wi-Fi úspěšně připojí.
Dále máme naše funkce zpětného volání , tyto funkce budou volány, když dáme příkaz Alexě, espalexa API zpracovává tyto funkce
void allrockets (jas uint8_t); void firstrocket (jas uint8_t); void secondrocket (uint8_t jas); void thirdrocket (jas uint8_t);
Dále definujeme názvy zařízení. Tyto definované názvy zařízení se projeví v aplikaci Alexa a když řekneme příkaz, Alexa rozpozná zařízení podle těchto jmen. Tato jména jsou tedy velmi důležitá.
// Názvy zařízení String First_Device_Name = "Všechny rakety"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Rocket Two"; String Forth_Device_Name = "Raketa tři";
Dále definujeme logickou proměnnou wifiStatus, která udrží stav připojení Wi-Fi. Nakonec vytvoříme objekt Espalexa espalexa. Tento objekt použijeme ke konfiguraci NodeMCU.
// kontrola stavu wifi boolean wifiStatus = false; // Objekt Espalexa Espalexa espalexa;
Dále máme sekci void setup () . V této části inicializujeme sériovou komunikaci pro ladění pomocí funkce Serial.begin () . Vytvořili jsme všechny předchozí definované čepy jako výstup s pinMode () funkce, vedle nazýváme connectToWiFi () funkce, pokusí se připojit k síti Wi-Fi po dobu patnácti časy, je-li připojen, vrátí true, pokud se tak nestane připojte se, vrátí hodnotu false a kód navždy provede smyčku while () . Pokud je připojení Wi-Fi úspěšné, přidáme dříve definovaná zařízení k objektu Alexa pomocí funkce espalexa.addDevice (). Tato funkce má dva argumenty, první je název zařízení, druhý je název funkce zpětného volání, když vydáme příkaz Alexě, bude vyvolána sousední funkce. Jakmile to uděláme pro všechna čtyři naše zařízení, zavoláme metody start () pro objekt espalexa.
void setup () {Serial.begin (115200); // Povolit Serial pro ladění zpráv pinMode (ROCKET_1_PIN, OUTPUT); // nastavení pinů ESP jako výstupního pinMode (ROCKET_2_PIN, OUTPUT); // nastavení pinů ESP jako výstupního pinMode (ROCKET_3_PIN, OUTPUT); // nastavení pinů ESP jako výstupu wifiStatus = connectToWiFi (); // Připojte se k místní síti Wi-Fi, pokud (wifiStatus) {// nastavíte všechna zařízení espalexa // Zde definujte svá zařízení. espalexa.addDevice (First_Device_Name, všechna kola); // nejjednodušší definice, výchozí stav vypnut espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, třetí řádek); espalexa.begin (); } else {while (1) {Serial. println ("Nelze se připojit k WiFi. Zkontrolujte data a resetujte ESP."); zpoždění (2 500); }}}
V sekci smyčky voláme metodu loop () objektu espalexa, která vždy zkontroluje jakýkoli příchozí příkaz a zavolá funkci zpětného volání, pokud ji považuje za pravdivou.
void loop () {espalexa.loop (); zpoždění (1); }
Dále definujeme všechny naše funkce zpětného volání, v této části definujeme, co se stane, když se tato funkce zpětného volání volá. Když je vyvolána funkce allrockets () , všechny rakety budou odpáleny společně. Za tímto účelem zapneme relé na 00 ms a poté vypneme relé. Ve svých testech jsem zjistil, že pro specifikovanou délku nichromového drátu potřebuji 800ms zpoždění k úplnému zahřátí drátu, což pro vás může nebo nemusí být. Podle toho tedy vyberte zpoždění.
void allrockets (uint8_t jas) {if (jas == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); zpoždění (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Všechny rakety spuštěny"); }}
Dále máme první raketu (), která se volá, když zavoláme Alexu a řekneme příkaz tie ke spuštění první rakety. Proces je velmi podobný, zapneme relé na 800 ms a vypneme.
void firstrocket (uint8_t jas) {if (jas == 255) {digitalWrite (ROCKET_1_PIN, HIGH); zpoždění (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("První raketa spuštěna"); }}
Konečně máme naši funkci connectToWiFi () . Tato funkce je docela obecná a vysvětlující, takže se touto funkcí nebudu zabývat. Tato funkce připojuje ESP k Wi-Fi a vrací stav připojení.
boolean connectToWiFi () {boolean state = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, heslo); Serial.println (""); Serial.println ("Připojení k WiFi"); // Počkejte na připojení Serial.print ("Připojuji…"); while (WiFi.status ()! = WL_CONNECTED) {zpoždění (500); Serial.print ("."); if (i> 15) {state = false; přestávka; } i ++; } Serial.println (""); if (state) {Serial.print ("Připojeno k"); Serial.println (ssid); Serial.print ("IP adresa:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Připojení se nezdařilo."); } návratový stav; }
Tato definovaná funkce označuje konec kódovací části.
Konfigurace Alexa pomocí aplikace Alexa pro Android
Alexa bude přijímat příkazy pouze tehdy, pokud rozpozná zařízení esp8866. K tomu potřebujeme nakonfigurovat Alexu pomocí aplikace Alexa pro Android. Jednou důležitou věcí, kterou je třeba udělat, než budeme pokračovat, je, že se musíme ujistit, že Alexa je nakonfigurována s naší aplikací pro Android.
Chcete-li to provést, přejděte do další části aplikace Alexa a klikněte na možnost Přidat zařízení, klikněte na Světlo, pak přejděte dolů v dolní části stránky a klikněte na Další.
Dále klikněte na ZOBRAZIT ZAŘÍZENÍ a chvíli počkejte, než Alexa najde nová zařízení. Jakmile Alexa najde zařízení, musíte na ně kliknout a přidat je do příslušných míst / kategorií, a máte hotovo.
Alexa Controlled Rocket Launcher - Testování
Pro testovací proces jsem šel do své zahrady, vytáhl všechny pojistky z rakety, umístil je na jejich příslušná místa a zakřičel jsem Alexa…! Zapněte všechny rakety a držte mi palce. A všechny rakety letěly tím, že mé úsilí označily za obrovský úspěch. Vypadalo to asi takto.
Nakonec jsem ještě jednou řekl, Alexo…! Zapněte všechny rakety a získejte epický obraz vláken, který můžete vidět níže.
Pro epičtější zážitek vám velmi doporučuji sledovat video.