- Alexa-basert stemmekontrollert rakettstarter - fungerer
- Launchpad for NodeMCU Rocket Launch Controller
- Komponenter som kreves for Alexa Controlled Rocket Launcher
- Arduino Rocket Launcher Circuit Diagram
- Bygg kretsen på PerfBoard
- Programmering av NodeMCU for Alexa Controlled Rocket Launcher
- Konfigurere Alexa med Alexa Android-applikasjonen
- Alexa Controlled Rocket Launcher - Testing
Når vintersesongen nærmer seg; kommer den tiden av året da lysfestivalen feires. Ja, vi snakker om Diwali, som er en ekte indisk festival feiret over hele verden. I år er Diwali allerede over, og da jeg så folk fyrverkeri, kom jeg på ideen om å bygge den Alexa-baserte stemmestyrte rakettstarteren eller tenningen, som kan starte raketter med bare stemmekommando, noe som gjør det veldig trygt og morsomt for barn.
For å gjøre det klart er jeg ikke her for å oppmuntre folk til å skyte kjeks på Diwali, den indiske regjeringen har håndhevet restriksjoner på kjeks for å dempe forurensning, og det er vårt ansvar å følge den. Tanken her er at i stedet for å bruke hele dagen på å skyte kjeks, la oss bygge en kul stemmekontrollert Arduino raketttenner og skyte noen raketter med stil. Jeg ser det som en vinn-vinn.
Denne Arduino rakettkasteren vil være veldig forskjellig fra andre. Den har et veldig solid understell laget av kryssfiner, en pålitelig relébasert kontrollmekanisme og en veldig unik mekanisme for å skyte og laste rakettene, så uten videre forsinkelse, la oss komme rett inn i byggeprosessen.
Alexa-basert stemmekontrollert rakettstarter - fungerer
Kretsens arbeidsmekanisme er veldig enkel, hovedkomponenten som er ansvarlig for å lansere raketten er nikromtråden, og den kommer i form av en varmespole. Denne nikrome ledningen vil fungere som raketttenneren . Hvordan? Jeg viser deg senere.
Som du kan se på bildet over, kommer nikromtråden i form av en varmespiral, for meg var det den enkleste måten å få den på. Vi må trekke den rett og bøye den for å danne en form som ser ut som vist på bildet nedenfor.
Når vi har gjort dette, vil vi drive det med et 12V blybatteri, og det lyser rødglødende. Dette vil være nok til å antenne det svarte pulveret inne i raketten, og det vil fungere akkurat som en normal sikringsdose. Vær oppmerksom på at dette er en rakettstartkontroller med høy effekt, strømmen som kreves for å gjøre ledningen rødglødende er høy. Følg sikkerhetsrådene når du arbeider med høy strøm.
Når testingen er ferdig, er det eneste som gjenstår kontrollprosessen, som vi skal gjøre når vi fortsetter videre i artikkelen.
Launchpad for NodeMCU Rocket Launch Controller
For denne bygningen, la oss lage en startpute. Når lanseringsplaten er ferdig, kan vi enkelt laste inn noen kjeks og starte dem veldig enkelt. Jeg har bygget en lanseringsplate som ser ut som den som vises på bildet vist nedenfor.
La oss gå trinnvis for å bygge lanseringsplaten. For de to sidene av rammen har jeg brukt to (25X3X1.5) tomme lange kryssfinerstykker. For den øverste delen har jeg brukt en (20X3X1.5) tommers lang del kryssfiner, og til basen har jeg brukt en (20X6X1.5) tommers lang kryssfinér, som vil gi den litt mer stabilitet. Bildet nedenfor gir deg en klar ide.
Nå er det på tide å lage de nikrome trådbaserte filamentene, som vil fungere som en sikring for raketten vår. For det har jeg kjøpt en 1000W nikrom trådbasevarmebatteri, rettet den opp og laget strukturen som er vist nedenfor. Jeg måtte bruke to tang og sidekutter for å forme nikromtråden som vist nedenfor.
Når dette var gjort, delte jeg den 20 ”biten av kryssfinér i syv stykker, målte den og boret hull for å sette de nikrome trådbaserte filamentene i, og når det var gjort, så det ut som bildene nedenfor.
Men før jeg la filamentene, har jeg festet 1 m² tykk kobbertråd i hver terminal og ført dem gjennom hullene, når alt var gjort, så det ut som bildet nedenfor.
Som du ser, har jeg også satt inn to-komponent lim for å feste ledningen og filamentene på plass. Når det er gjort, er lanseringsplaten vår komplett. Og som du kan se fra det første bildet i denne delen, har jeg koblet glødetrådene direkte til PCB fordi vi har å gjøre med veldig høye strømmer, så jeg gadd ikke å plassere en skrueterminal, og det markerer slutten på chassiset byggeprosess.
Komponenter som kreves for Alexa Controlled Rocket Launcher
For maskinvaresiden av ting har vi brukt veldig generiske deler som du enkelt kan få fra din lokale hobbybutikk. En komplett liste over varer er gitt nedenfor.
- 12V-relé - 3
- BD139 Transistor - 3
- 1N4004 Diode - 3
- 5,08 mm skrueterminal - 1
- LM7805 - Spenningsregulator - 1
- 100uF frakobling kondensator - 2
- 5.1V Zener-diode - 1
- NodeMCU (ESP8266-12E) Board - 1
- Prikket Perf Board - ½
- Tilkoblingstråd - 10
Arduino Rocket Launcher Circuit Diagram
Det fullstendige skjemaet for Alexa Controlled Rocket Launcher er gitt nedenfor. Jeg har brukt tagger for å koble en pin til en annen. Ser du nær nok, bør det ikke være vanskelig å tolke skjematisk.
Circuit Construction er ganske grei, så jeg vil ikke gå veldig detaljert inn på detaljene.
For det første har vi IC1, som er en LM7805 spenningsregulator, med dens 100uF avkoblingskondensatorer betegnet med C1 og C2. Etter det har vi hjertet i prosjektet vårt, NodeMCU-kortet, som huser ESP-12E-modulen. Siden vi bruker et 12V blybatteri for å drive hele kretsen, er det derfor vi må bruke LM7805 for å først konvertere det til 12V til 5V for å drive NodeMCU-kortet. Vi gjør det fordi den innebygde AMS1117 spenningsregulatoren ikke er tilstrekkelig til å konvertere 12V direkte til 3,3V, og det er derfor 7805 er nødvendig.
Fortsatt har vi tre 12V-reléer, for denne demonstrasjonen bruker vi tre reléer, men som vi tidligere har nevnt, har lanseringsplaten en plassholder for 7 raketter. Du kan tilpasse koden litt og plassere alle syv rakettene for å starte helt. De tre reléene drives av en T1, T2 og T3 som er tre NPN-transistorer, og de er tilstrekkelig nok til å drive lasten til en ekte. Til slutt har vi tre friluftsdioder som beskytter kretsen mot høyspennings pigger generert av reléet.
Bygg kretsen på PerfBoard
Som du kan se fra hovedbildet, var ideen å lage en enkel krets som kan håndtere en enorm mengde strøm i en kort periode, i henhold til testingen vår er 800 millisekunder nok til å lyse opp et stykke papir. Så vi bygger kretsen på et stykke perfboard og kobler alle større tilkoblinger med 1 m² tykk kobbertråd. Etter at vi var ferdig loddet på brettet. Når vi var ferdige, så det ut som noe som er vist nedenfor.
Programmering av NodeMCU for Alexa Controlled Rocket Launcher
Nå som maskinvaren er klar, er det på tide å begynne å kode for vår Alexa-baserte stemmestyrte rakettstarter. Den komplette koden finner du på slutten av denne siden, men før vi begynner, er det viktig å legge til de nødvendige bibliotekene på Arduino IDE. Forsikre deg om at du legger til de riktige bibliotekene fra lenken nedenfor, ellers vil koden kaste feil når den kompileres.
- Last ned Espalexa-biblioteket
Etter å ha lagt til de nødvendige bibliotekene, kan du laste opp koden som er oppgitt nederst på denne siden direkte for å sjekke om kretsen fungerer. Hvis du vil vite hvordan koden fungerer, så fortsett å lese.
Som alltid begynner vi programmet med å legge til de nødvendige headerfilene og definere pin-navn og legitimasjon for vårt hotspot.
#inkludere
Når vi går videre med koden vår, har vi definisjoner for funksjonsprototyper og tilbakeringingsfunksjoner.
Funksjonskobling ToWiFi () brukes til å koble til Wi-Fi-nettverket, og denne funksjonen blir tilbake når Wi-Fi blir koblet til.
Deretter har vi våre tilbakekallingsfunksjoner , disse funksjonene vil bli kalt når vi gir en kommando til Alexa, espalexa API håndterer disse funksjonene
ugyldige allrockets (uint8_t lysstyrke); ugyldig førstehjul (uint8_t lysstyrke); ugyldig andrehjul (uint8_t lysstyrke); ugyldig tredjehjul (uint8_t lysstyrke);
Deretter definerer vi enhetsnavnene. Disse definerte enhetsnavnene gjenspeiles i Alexa-appen, og når vi sier en kommando, vil Alexa gjenkjenne enhetene med disse navnene. Så disse navnene er veldig viktige.
// Enhetsnavn String First_Device_Name = "Alle raketter"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Rocket Two"; String Forth_Device_Name = "Rakett tre";
Deretter definerer vi en boolsk variabel wifiStatus, som vil holde tilkoblingsstatus for Wi-Fi. Til slutt lager vi et Espalexa-objekt espalexa. Vi bruker dette objektet til å konfigurere NodeMCU.
// wifi status sjekk boolsk wifiStatus = false; // Espalexa Objekt Espalexa espalexa;
Deretter har vi vår ugyldige oppsett () -del. I denne delen initialiserer vi seriell kommunikasjon for feilsøking med Serial.begin () -funksjonen. Vi setter alle de forrige definerte pinnene som utgang med pinMode () -funksjon, neste kaller vi connectToWiFi () -funksjonen, den vil prøve å koble til Wi-Fi i femten ganger hvis den er koblet til, den vil bli sann hvis den ikke bli koblet, vil den returnere falsk, og koden vil kjøre en stund () loop for alltid. Hvis Wi-Fi-tilkoblingen lykkes, legger vi til de tidligere definerte enhetene til Alexa-objektet ved hjelp av espalexa.addDevice () -funksjonen. Denne funksjonen tar to argumenter, først er enhetsnavnet, andre er navnet på tilbakeringingsfunksjonen, når vi legger ut en kommando til Alexa, vil den tilstøtende funksjonen kalles. Når vi er ferdige med å gjøre det for alle fire av enhetene våre, kaller vi start () -metodene for espalexa-objektet.
ugyldig oppsett () {Serial.begin (115200); // Aktiver Serial for feilsøking av meldinger pinMode (ROCKET_1_PIN, OUTPUT); // sette opp ESP-pinner som output pinMode (ROCKET_2_PIN, OUTPUT); // sette opp ESP-pinner som utgang pinMode (ROCKET_3_PIN, OUTPUT); // sette opp ESP-pinner som utgang wifiStatus = connectToWiFi (); // Koble til lokalt Wi-Fi-nettverk hvis (wifiStatus) {// konfigurere alle espalexa-enheter // Definer enhetene dine her. espalexa.addDevice (First_Device_Name, allrockets); // enkleste definisjon, standardstatus av espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } annet {mens (1) {Seriell. println ("Kan ikke koble til WiFi. Kontroller data og tilbakestill ESP."); forsinkelse (2500); }}}
I sløyfen seksjonen, kaller vi den løkke () metoden i espalexa objekt som alltid vil sjekke for en hvilken som helst innkommende kommando og kalle funksjonen for tilbakeringing hvis den finner det er sant.
ugyldig sløyfe () {espalexa.loop (); forsinkelse (1); }
Deretter definerer vi alle våre tilbakeringingsfunksjoner, i denne delen vil vi definere hva som skjer når denne tilbakeringingsfunksjonen kalles. Når allrockets () -funksjonen kalles, skal alle rakettene sjøsettes sammen. For det skal vi slå på reléet i 00 ms, og etter det skal vi slå av reléene. I testene mine har jeg funnet ut at for den angitte lengden på nikromtråd trenger jeg 800 ms forsinkelse for å varme opp ledningen helt, dette kan være tilfelle for deg. Så velg forsinkelsen tilsvarende.
ugyldige allrockets (uint8_t lysstyrke) {if (lysstyrke == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); forsinkelse (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Alle raketter lansert"); }}
Deretter har vi vår første rakett (), dette blir kalt når vi ringer Alexa og sier tie-kommando for å starte den første raketten. Prosessen er veldig lik, vi slår på reléet i 800 ms og slår av.
ugyldig førstehjul (uint8_t lysstyrke) {if (lysstyrke == 255) {digitalWrite (ROCKET_1_PIN, HIGH); forsinkelse (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Første rakett lansert"); }}
Til slutt har vi vår connectToWiFi () -funksjon. Denne funksjonen er ganske generisk og selvforklarende, så jeg vil ikke gå i detalj om denne funksjonen. Denne funksjonen kobler ESP til Wi-Fi og returnerer tilkoblingsstatusen.
boolsk connectToWiFi () {boolsk tilstand = sann; int i = 0; WiFi-modus (WIFI_STA); WiFi.begin (ssid, passord); Serial.println (""); Serial.println ("Koble til WiFi"); // Vent på tilkobling Serial.print ("Connecting…"); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); Serial.print ("."); hvis (i> 15) {state = false; gå i stykker; } i ++; } Serial.println (""); if (state) {Serial.print ("Connected to"); Serial.println (ssid); Serial.print ("IP-adresse:"); Serial.println (WiFi.localIP ()); } annet {Serial.println ("Tilkoblingen mislyktes."); } returstatus; }
Denne definerte funksjonen markerer slutten på kodingsdelen.
Konfigurere Alexa med Alexa Android-applikasjonen
Alexa vil bare godta kommandoer hvis og bare hvis den gjenkjenner esp8866-enheten. For det må vi konfigurere Alexa ved hjelp av Alexa-appen på Android. En viktig ting å gjøre før vi fortsetter videre er at vi må sørge for at Alexa er konfigurert med Android-applikasjonen vår.
For å gjøre det, gå til den mer delen av Alexa-appen og klikk på alternativet Legg til en enhet, klikk på Lys, og rull deretter ned nederst på siden og klikk på Annet.
Klikk deretter på OPPDAG ENHET og vent et øyeblikk etter at Alexa finner nye enheter. Når Alexa finner enhetene, må du klikke på dem og legge dem til i sine respektive steder / kategorier, og du er ferdig.
Alexa Controlled Rocket Launcher - Testing
For testprosessen dro jeg til hagen min, trakk alle sikringene fra raketten, plasserte dem på sine respektive steder, og jeg ropte Alexa…! Slå på alle raketter med fingrene i kors. Og alle rakettene fløy ved å markere innsatsen min som en kjempesuksess. Det så ut omtrent slik.
Endelig sa jeg nok en gang Alexa…! Slå på alle raketter for å få et episk bilde av filamentene som du kan se nedenfor.
For en mer episk opplevelse, anbefaler jeg deg på det sterkeste å se videoen.