- Базирано на Alexa гласово управлявано ракетно устройство - работи
- Стартов панел за нашия NodeMCU Rocket Launch Controller
- Компоненти, необходими за Alexa Launcher, контролиран от Alexa
- Схема на Arduino Rocket Launcher
- Изграждане на веригата на PerfBoard
- Програмиране на NodeMCU за Alexa Controlled Rocket Launcher
- Конфигуриране на Alexa с приложението за Android на Alexa
- Alexa Controlled Rocket Launcher - Тестване
С наближаването на зимния сезон; идва онова време от годината, когато се празнува празникът на светлините. Да, говорим за Дивали, който е истински индийски фестивал, празнуван по целия свят. Тази година Diwali вече приключи и като видях хора с нестинарство, измислих идеята да изградя базиран на Alexa гласово управляван ракетен носител или Igniter, който може да изстрелва ракети само с гласова команда, което го прави много безопасно и забавно за децата.
За да стане ясно, аз не съм тук за насърчаване на хората да изстрелват бисквити срещу Дивали, индийското правителство наложи ограничения върху бисквитките, за да ограничи замърсяването и нашата отговорност е да се придържаме към него. Идеята тук е, че вместо да прекарваме цял ден в стрелба с крекери, нека да изградим хладен гласов контрол на Arduino ракетен запалвач и да изстреляме няколко ракети със стил. Виждам това като печеливша.
Тази ракета-носител Arduino ще бъде много различна от другите. Той има много здраво шаси, изработено от шперплат, надежден механизъм за управление, базиран на реле, и много уникален механизъм за изстрелване и презареждане на ракетите, така че без допълнително забавяне, нека да влезем веднага в процеса на изграждане.
Базирано на Alexa гласово управлявано ракетно устройство - работи
Работният механизъм на веригата е много прост, основният компонент, който е отговорен за изстрелването на ракетата, е нихромовият проводник и се предлага под формата на нагревателна бобина. Тази нихромова жица ще действа като запалител на ракетата. Как Ще ви покажа по-късно.
Както можете да видите на изображението по-горе, нихромовият проводник се предлага под формата на нагревателна намотка, за мен това беше най-лесният начин да го получа. Трябва да го издърпаме направо и да го огънем, за да образуваме форма, която изглежда така, както е показано на изображението по-долу.
След като направим това, ще го захраним с 12V оловно-киселинна батерия и тя ще свети до червено. Това ще бъде достатъчно, за да запали черния прах вътре в ракетата и ще работи точно като нормална доза предпазител. Имайте предвид, че това е контролер за изстрелване на ракети с висока мощност, токът, необходим за нагряване на жицата, е висок. Следвайте съветите за безопасност при работа с висок ток.
След като тестването приключи, единственото, което остава, е процесът на контрол, който ще правим, докато продължаваме по-нататък в статията.
Стартов панел за нашия NodeMCU Rocket Launch Controller
За тази компилация, нека направим стартов панел. След като стартираме панела за стартиране, можем лесно да презаредим някои крекери и да ги стартираме много лесно. Изградих стартов панел, който изглежда като този, показан на изображението, показано по-долу.
Нека да преминем през стъпка по стъпка процеса на изграждане на стартовия панел. За двете страни на рамката съм използвал два (25X3X1,5) инча дълги парчета шперплат. За горната част използвах шперплат с дължина (20X3X1,5) инча, а за основата използвах шперплат с дължина (20X6X1,5) инча, което ще му придаде малко повече стабилност. Изображението по-долу ще ви даде ясна представа.
Сега е време да направим нишките на основата на тел, които ще действат като предпазител за нашата ракета. За тази цел купих 1000W нихромово нагревателна намотка, изправих я и направих структурата, показана по-долу. Трябваше да използвам две клещи и странични фрези, за да оформя нихромовия проводник, както е показано по-долу.
След като това беше направено, аз разделих 20-инчовия блок шперплат на седем парчета, измерих го и пробих дупки, за да вложа нишковите нишки на основата на тел и след като беше направено, изглеждаше като изображенията по-долу.
Но преди да поставям нишките, прикачих меден проводник с дебелина 1 кв. Мм във всеки терминал и ги прекарах през отворите, след като всичко беше направено, изглеждаше като изображението по-долу.
Както можете да видите, аз също поставих двукомпонентното лепило, за да закрепя жицата и нишките на място. С това нашето изстрелване е завършено. И както можете да видите от първата снимка в този раздел, аз директно прикачих проводниците с нажежаема жичка към печатната платка, тъй като имаме работа с много високи токове, така че не се притесних да поставя винтова клема и това бележи края на нашето шаси процес на изграждане.
Компоненти, необходими за Alexa Launcher, контролиран от Alexa
За хардуерната страна на нещата използвахме много общи части, които можете да получите доста лесно от местния магазин за хоби, пълен списък с елементи е даден по-долу.
- 12V-реле - 3
- BD139 транзистор - 3
- 1N4004 Диод - 3
- 5,08 mm винтов терминал - 1
- LM7805 - Регулатор на напрежение - 1
- Кондензатор за разединяване 100uF - 2
- 5.1V ценеров диод - 1
- Платка NodeMCU (ESP8266-12E) - 1
- Пунктирана перфектна дъска - ½
- Свързващ проводник - 10
Схема на Arduino Rocket Launcher
Пълната схема за Alexa Controlled Rocket Launcher е дадена по-долу. Използвал съм тагове за свързване на един щифт с друг. Ако погледнете достатъчно отблизо, не би трябвало да е трудно да интерпретирате схемата.
Конструкцията на веригата е доста ясна, така че няма да навлизам в подробностите много.
Първо, имаме IC1, който е LM7805 регулатор на напрежение, със своите 100uF разединителни кондензатори, обозначени с C1 и C2. След това имаме сърцето на нашия проект, платката NodeMCU, в която се помещава модулът ESP-12E. Тъй като използваме 12V оловно-киселинна батерия за захранване на цялата верига, поради което трябва да използваме LM7805, за да я преобразуваме първо в 12V в 5V за захранване на платката NodeMCU. Правим това, защото вграденият регулатор на напрежение AMS1117 не е достатъчен, за да преобразува 12V директно в 3.3V, поради което е необходимо 7805.
Продължавайки, имаме три 12V релета, за тази демонстрация използваме три релета, но както вече споменахме, стартовата площадка има резервоар за 7 ракети. Можете да промените кода малко и да поставите всичките седем ракети, за да стартирате изцяло. Трите релета се задвижват от T1, T2 и T3, които са три NPN транзистора, и те са достатъчни, за да задвижат натоварването на истински. И накрая, имаме три диода със свободен ход, които предпазват веригата от пикове с високо напрежение, генерирани от релето.
Изграждане на веригата на PerfBoard
Както можете да видите от основното изображение, идеята беше да се направи проста схема, която да може да се справи с огромно количество ток за кратък период, според нашето тестване, 800 милисекунди са достатъчни, за да светне лист хартия. И така, ние изграждаме веригата върху парче перфборд и свързваме всички основни връзки с медна жица с дебелина 1 кв. Мм. След като приключихме с запояването на дъската. След като приключихме, изглеждаше като нещо, което е показано по-долу.
Програмиране на NodeMCU за Alexa Controlled Rocket Launcher
Сега, когато хардуерът е готов, е време да започнем да кодираме нашия базиран на Alexa гласово управляван ракетен изстрелвател. Пълният код може да бъде намерен в края на тази страница, но преди да започнем, е важно да добавите необходимите библиотеки към вашата Arduino IDE. Уверете се, че сте добавили правилните библиотеки от връзката, дадена по-долу, в противен случай кодът ще създаде грешки при компилиране.
- Изтеглете библиотеката на Espalexa
След добавяне на необходимите библиотеки можете директно да качите кода, даден в долната част на тази страница, за да проверите дали веригата работи. Ако искате да знаете как работи кодът, продължете да четете.
Както винаги, ние започваме програмата, като добавяме необходимите заглавни файлове и дефинираме имената на ПИН и идентификационните данни за нашата гореща точка.
#include
Продължавайки с нашия код, имаме прототипи на функции и дефиниции на функции за обратно извикване.
Функция connectToWiFi () се използва за свързване към Wi-Fi мрежата и тази функция връща вярно, когато Wi-Fi се свърже успешно.
След това имаме нашите функции за обратно извикване , тези функции ще бъдат извикани, когато дадем команда на Alexa, API на espalexa обработва тези функции
void allrockets (uint8_t яркост); void firstrocket (uint8_t яркост); void secondrocket (uint8_t яркост); void thirdrocket (uint8_t яркост);
След това определяме имената на устройствата. Тези дефинирани имена на устройства ще бъдат отразени в приложението Alexa и когато кажем команда, Alexa ще разпознае устройствата под тези имена. Така че тези имена са много важни.
// Имена на устройства String First_Device_Name = "Всички ракети"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Ракета две"; String Forth_Device_Name = "Ракета три";
След това дефинираме булева променлива wifiStatus, която ще поддържа състоянието на връзката на Wi-Fi. И накрая, ние създаваме обект Espalexa espalexa. Ще използваме този обект за конфигуриране на NodeMCU.
// проверка на wifi състоянието boolean wifiStatus = false; // обект на Espalexa Espalexa espalexa;
След това имаме нашата секция void setup () . В този раздел инициализираме серийната комуникация за отстраняване на грешки с функцията Serial.begin () . Поставихме всички предишни определени щифтове като изход с pinMode () функция, в непосредствена близост, което наричаме connectToWiFi () функция, тя ще се опита да се свърже с Wi-Fi в продължение на петнадесет пъти, ако е свързан, той ще се върне вярно, ако това не е така свържете се, той ще върне false и кодът ще изпълни цикъл while () завинаги. Ако Wi-Fi връзката е успешна, добавяме предварително дефинираните устройства към обекта Alexa, като използваме функцията espalexa.addDevice (). Тази функция отнема два аргумента, първият е Името на устройството, второто е името на функцията за обратно извикване, когато изпратим команда към Alexa, ще бъде извикана съседната функция. След като приключим с всичките си четири устройства, извикваме методите begin () за обекта espalexa.
void setup () {Serial.begin (115200); // Активиране на Serial за отстраняване на грешки в съобщения pinMode (ROCKET_1_PIN, OUTPUT); // настройка на ESP щифтове като изходен pinMode (ROCKET_2_PIN, OUTPUT); // настройка на ESP щифтове като изходен pinMode (ROCKET_3_PIN, OUTPUT); // настройка на ESP щифтове като изход wifiStatus = connectToWiFi (); // Свързване с локална Wi-Fi мрежа, ако (wifiStatus) {// настройка на всички устройства espalexa // Дефинирайте вашите устройства тук. espalexa.addDevice (First_Device_Name, allrockets); // най-проста дефиниция, състояние по подразбиране е espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } else {while (1) {Serial. println ("Не може да се свърже с WiFi. Моля, проверете данните и нулирайте ESP."); забавяне (2500); }}}
В раздела за цикъл извикваме метода loop () на обекта espalexa, който винаги ще проверява за входяща команда и ще извиква функцията за обратно извикване, ако установи, че е истина.
цикъл на празнота () {espalexa.loop (); забавяне (1); }
След това дефинираме всички наши функции за обратно извикване, в този раздел ще определим какво се случва, когато се извика тази функция за обратно извикване. Когато се извика функцията allrockets () , всички ракети ще бъдат изстреляни заедно. За това ще включим релето за 00 ms и след това ще изключим релетата. В моите тестове открих, че за определената дължина на нихромовия проводник ми трябват 800ms закъснение, за да загрея напълно жицата, това може да е или не за вас. Затова изберете закъснението съответно.
void allrockets (uint8_t яркост) {if (яркост == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); забавяне (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Стартирани всички ракети"); }}
След това имаме първата си ракета (), това се извиква, когато се обадим на Alexa и кажем команда tie, за да стартираме първата ракета. Процесът е много подобен, включваме релето за 800ms и изключваме.
void firstrocket (uint8_t яркост) {if (яркост == 255) {digitalWrite (ROCKET_1_PIN, HIGH); забавяне (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println („Първата ракета стартирана“); }}
И накрая, имаме нашата функция connectToWiFi () . Тази функция е доста обща и обяснима сама по себе си, така че няма да навлизам в подробностите за тази функция. Тази функция свързва ESP с Wi-Fi и връща състоянието на връзката.
boolean connectToWiFi () {булево състояние = вярно; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, парола); Serial.println (""); Serial.println ("Свързване към WiFi"); // Изчакайте връзка Serial.print ("Свързване…"); докато (WiFi.status ()! = WL_CONNECTED) {закъснение (500); Serial.print ("."); if (i> 15) {състояние = невярно; почивка; } i ++; } Serial.println (""); if (състояние) {Serial.print ("Свързан с"); Serial.println (ssid); Serial.print ("IP адрес:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Свързването не бе успешно."); } състояние на връщане; }
Тази дефинирана функция маркира края на кодиращата част.
Конфигуриране на Alexa с приложението за Android на Alexa
Alexa ще приема команди само тогава и само ако разпознае устройството esp8866. За това трябва да конфигурираме Alexa с помощта на приложението Alexa на Android. Едно важно нещо, което трябва да направите, преди да продължите по-нататък, е, че трябва да се уверим, че Alexa е конфигурирана с нашето приложение за Android.
За да направите това, отидете в по-раздела на приложението Alexa и кликнете върху опцията Добавяне на устройство, щракнете върху Light, след това превъртете надолу в долната част на страницата и щракнете върху Other.
След това кликнете върху ОТКРИЙТЕ УСТРОЙСТВО и изчакайте малко след това Alexa ще намери нови устройства. След като Alexa намери устройствата, трябва да кликнете върху тях и да ги добавите към съответните им места / категории и сте готови.
Alexa Controlled Rocket Launcher - Тестване
За процеса на тестване отидох в градината си, извадих всички предпазители от ракетата, поставих ги на съответните им места и извиках Alexa…! Включете всички Ракети, с кръстосани пръсти. И всички ракети полетяха, отбелязвайки усилията ми като огромен успех. Изглеждаше нещо подобно.
И накрая, още веднъж казах Alexa…! Включете всички ракети, за да получите епична картина на нишките, която можете да видите по-долу.
За по-епично изживяване, горещо ви препоръчвам да гледате видеоклипа.