- Запуск голосової керованої ракети-носія на базі Alexa - працює
- Пускова панель для нашого контролера запуску ракет NodeMCU
- Компоненти, необхідні для керованої ракети-носія Alexa
- Схема ланцюга запуску ракет Arduino
- Побудова схеми на PerfBoard
- Програмування NodeMCU для керованого ракетою запуску Alexa
- Налаштування Alexa за допомогою програми Android для Android
- Контрольована ракетна установка Alexa - тестування
У міру наближення зимового сезону; настає та пора року, коли святкується свято вогнів. Так, ми говоримо про Дівалі, який є справжнім індійським фестивалем, який відзначається по всій земній кулі. Цього року Дівалі вже закінчився, і, побачивши людей, які займаються петардами, я придумав побудувати заснований на Alexa голосовий пусковий апарат для запуску ракет або Igniter, який може запускати ракети лише за допомогою голосової команди, роблячи це дуже безпечним та цікавим для дітей.
Щоб було зрозуміло, я не для того, щоб заохочувати людей стріляти сухариками по Дівалі, індійський уряд запровадив обмеження щодо сухарів, щоб стримати забруднення, і наш обов'язок - дотримуватися цього. Ідея тут полягає в тому, що замість того, щоб витрачати цілий день на стрілянину з крекерів, давайте побудуємо крутий голосовий контролер-запалювач Arduino і випустимо кілька ракет у стилі. Я розглядаю це як безпрограшний варіант.
Ця ракетна установка Arduino буде сильно відрізнятися від інших. Він має дуже міцне шасі, виготовлене з фанери, надійний механізм управління на основі реле та дуже унікальний механізм для запуску та перезаряджання ракет, тому без подальших зволікань давайте перейдемо до процесу будівництва.
Запуск голосової керованої ракети-носія на базі Alexa - працює
Робочий механізм схеми дуже простий, основним компонентом, який відповідає за запуск ракети, є ніхромовий провід, і він має форму нагрівальної котушки. Цей ніхромовий дріт діятиме як запалювач ракети. Як? Я покажу тобі пізніше.
Як ви можете бачити на зображенні вище, ніхромовий дріт поставляється у вигляді нагрівача, для мене це був найпростіший спосіб отримати його. Ми повинні витягнути його прямо і зігнути, щоб сформувати форму, яка виглядає так, як показано на малюнку нижче.
Після того, як ми це зробимо, ми будемо живити його за допомогою свинцево-кислотної батареї на 12 В, і вона буде світитися гарячим. Цього буде достатньо, щоб запалити чорний порошок всередині ракети, і він буде працювати так само, як звичайна доза запобіжника. Зауважте, що це потужний контролер запуску ракети, струм, необхідний для розгорання дроту, високий. Дотримуйтесь рекомендацій з техніки безпеки під час роботи з сильним струмом.
Після закінчення тестування залишається лише процес контролю, який ми будемо робити, продовжуючи далі в статті.
Пускова панель для нашого контролера запуску ракет NodeMCU
Для цієї збірки давайте зробимо стартову панель. Закінчивши панель запуску, ми можемо легко перезавантажити деякі зломщики і запустити їх дуже легко. Я створив стартову панель, схожу на ту, що показана на зображенні нижче.
Пройдемо покроковий процес побудови панелі запуску. Для двох сторін рами я використав два шматки фанери довжиною (25X3X1,5) дюймів. Для верхньої частини я використав фанеру довжиною (20X3X1,5) дюймів, а для основи - шматок фанери довжиною (20X6X1,5) дюймів, що додасть їй трохи більшої стійкості. Зображення нижче дасть вам чітке уявлення.
Тепер настав час виготовити ніхромові нитки на основі дроту, які будуть виконувати роль запобіжника для нашої ракети. Для цього я купив нагрівальну котушку з ніхромовим дротом потужністю 1000 Вт, вирівняв її і зробив конструкцію, яка показана нижче. Мені довелося за допомогою двох плоскогубців та бічних різців сформувати ніхромовий дріт, як показано нижче.
Як тільки це було зроблено, я розділив 20-дюймовий шматок фанерного блоку на сім частин, виміряв його, і просвердлив отвори, щоб вкласти нитки на основі ніхромової дроту, і як тільки це було зроблено, це виглядало як на малюнках нижче.
Але перед тим, як розміщувати нитки розжарення, я прикріпив мідний дріт товщиною 1 кв. Мм до кожного терміналу і пропустив їх крізь отвори, як тільки все було зроблено, це виглядало як на малюнку нижче.
Як бачите, я також вклав двокомпонентний клей, щоб закріпити дріт і нитки на місці. Після цього наша панель запуску закінчена. І як ви можете бачити з першого малюнка в цьому розділі, я безпосередньо підключив дроти ниток до друкованої плати, оскільки ми маємо справу з дуже сильними струмами, тому я не потрудився розмістити гвинтову клему, і це означає кінець нашого шасі будівельний процес.
Компоненти, необхідні для керованої ракети-носія Alexa
Що стосується апаратної частини справи, ми використали дуже загальні деталі, які ви можете отримати досить легко у своєму місцевому магазині хобі, повний перелік предметів наведено нижче.
- 12В-реле - 3
- Транзистор BD139 - 3
- 1N4004 Діод - 3
- Гвинтова клема 5,08 мм - 1
- LM7805 - Регулятор напруги - 1
- Роз'єднувальний конденсатор 100 мкФ - 2
- Стабілітрон 5,1 В - 1
- Плата NodeMCU (ESP8266-12E) - 1
- Пунктирна дошка Perf - ½
- З'єднувальний провід - 10
Схема ланцюга запуску ракет Arduino
Повна схема схеми керування ракетами Alexa Controlled наведена нижче. Я використовував теги для з'єднання одного штифта з іншим. Якщо ви придивляєтесь досить уважно, інтерпретувати схему не повинно бути складно.
Конструкція ланцюга є досить простою, тому я не буду вдаватися в подробиці дуже багато.
По-перше, ми маємо IC1, який є регулятором напруги LM7805, з його конденсаторами роз'єднання 100 мкФ, позначеними C1 і C2. Після цього у нас є серце нашого проекту - плата NodeMCU, на якій розміщений модуль ESP-12E. Оскільки ми використовуємо 12В свинцево-кислотну батарею для живлення всієї схеми, саме тому нам потрібно використовувати LM7805, щоб спочатку перетворити її на 12В в 5В для живлення плати NodeMCU. Ми робимо це, оскільки вбудованого регулятора напруги AMS1117 недостатньо для перетворення 12В безпосередньо в 3,3В, саме тому необхідний 7805.
Продовжуючи, ми маємо три реле на 12 В, для цієї демонстрації ми використовуємо три реле, але, як ми вже згадували раніше, пускова площадка має заповнювач для 7 ракет. Ви можете трохи підправити код і помістити всі сім ракет для запуску. Три реле приводяться в дію T1, T2 і T3, які є трьома транзисторами NPN, і їх достатньо для керування навантаженням реального. Нарешті, у нас є три діоди вільного ходу, які захищають ланцюг від стрибків високої напруги, що генеруються реле.
Побудова схеми на PerfBoard
Як видно з основного зображення, ідея полягала в тому, щоб створити просту схему, яка може нетривалий час обробляти величезну кількість струму, за даними нашого тестування, достатньо 800 мілісекунд, щоб засвітити аркуш паперу. Отже, ми будуємо схему на шматку перфборда і з'єднуємо всі основні з'єднання мідним дротом товщиною 1 кв. Після закінчення пайки дошки. Коли ми закінчили, це виглядало як щось, що показано нижче.
Програмування NodeMCU для керованого ракетою запуску Alexa
Тепер, коли апаратне забезпечення готове, настав час розпочати кодування нашого голосового управління ракетною установкою на базі Alexa. Повний код можна знайти в кінці цієї сторінки, але перед тим, як ми почнемо, важливо додати необхідні бібліотеки до своєї Arduino IDE. Переконайтеся, що ви додали правильні бібліотеки за посиланням, наведеним нижче, інакше код буде видавати помилки при компіляції.
- Завантажте бібліотеку Espalexa
Після додавання необхідних бібліотек ви можете безпосередньо завантажити код, наведений внизу цієї сторінки, щоб перевірити, чи працює схема. Якщо ви хочете знати, як працює код, продовжуйте читати.
Як завжди, ми починаємо програму, додаючи необхідні файли заголовків та визначаючи імена контактів та облікові дані для нашої точки доступу.
#включати
Переходячи до нашого коду, ми маємо прототипи функцій та визначення функцій зворотного виклику.
Функція connectToWiFi () використовується для підключення до мережі Wi-Fi, і ця функція повертає значення true, коли Wi-Fi успішно підключається.
Далі, у нас є наші функції зворотного виклику , ці функції будуть викликані, коли ми дамо команду Alexa, espalexa API обробляє ці функції
void allrockets (яскравість uint8_t); void firstrocket (яскравість uint8_t); порожня друга секунда (яскравість uint8_t); порожня третя ракета (яскравість uint8_t);
Далі визначаємо імена пристроїв. Ці визначені імена пристроїв відображатимуться в додатку Alexa, і коли ми вимовимо команду, Alexa розпізнає пристрої за цими іменами. Тож ці імена дуже важливі.
// Імена пристроїв String First_Device_Name = "Усі ракети"; String Secound_Device_Name = "Ракета перша"; String Third_Device_Name = "Ракета друга"; String Forth_Device_Name = "Ракета три";
Далі ми визначаємо логічну змінну wifiStatus, яка зберігатиме статус підключення Wi-Fi. Нарешті, ми створюємо об'єкт Espalexa espalexa. Ми будемо використовувати цей об’єкт для налаштування NodeMCU.
// перевірка статусу wifi логічний 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 (ім’я третього_пристрою, друга ракета); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } else {while (1) {Серійний. println ("Не вдається підключитися до WiFi. Перевірте дані та скиньте ESP."); затримка (2500); }}}
У розділі циклу ми викликаємо метод loop () об’єкта espalexa, який завжди буде перевіряти наявність будь-якої вхідної команди та викликатиме функцію зворотного виклику, якщо виявить, що це істина.
порожня петля () {espalexa.loop (); затримка (1); }
Далі ми визначаємо всі наші функції зворотного виклику; у цьому розділі ми визначимо, що відбувається, коли ця функція зворотного виклику викликається. Коли буде викликана функція allrockets () , всі ракети будуть запущені разом. Для цього ми увімкнемо реле на 00 мс, а після цього реле вимкнемо. В ході своїх тестів я виявив, що для вказаної довжини ніхромового дроту мені потрібно 800 мс затримки, щоб повністю нагріти провід, це може бути і не для вас. Тож відповідно вибирайте затримку.
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, щоб запустити першу ракету. Процес дуже схожий, ми вмикаємо реле на 800 мс і вимикаємо.
void firstrocket (uint8_t brightness) {if (brightness == 255) {digitalWrite (ROCKET_1_PIN, HIGH); затримка (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Перша ракета запущена"); }}
Нарешті, у нас є наша функція connectToWiFi () . Ця функція є досить загальною та зрозумілою, тому я не буду вдаватися до деталей щодо цієї функції. Ця функція підключає ESP до Wi-Fi та повертає стан з'єднання.
boolean connectToWiFi () {логічне стан = істина; int i = 0; Режим Wi-Fi. (WIFI_STA); WiFi.begin (ssid, пароль); Serial.println (""); Serial.println ("Підключення до WiFi"); // Чекаємо з'єднання Serial.print ("Підключення…"); while (WiFi.status ()! = WL_CONNECTED) {затримка (500); Serial.print ("."); if (i> 15) {state = false; перерву; } i ++; } Serial.println (""); if (state) {Serial.print ("Підключено до"); Serial.println (ssid); Serial.print ("IP-адреса:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Помилка підключення."); } стан повернення; }
Ця функція визначає кінець частини кодування.
Налаштування Alexa за допомогою програми Android для Android
Alexa прийматиме команди лише тоді і лише тоді, коли вона розпізнає пристрій esp8866. Для цього нам потрібно налаштувати Alexa за допомогою програми Alexa на Android. Одне важливе, що потрібно зробити, перш ніж продовжувати далі, - це те, що нам потрібно переконатися, що Alexa налаштована на наш додаток для Android.
Для цього перейдіть у додатковий розділ програми Alexa та натисніть опцію Додати пристрій, натисніть Світло, а потім прокрутіть униз сторінки та натисніть Інше.
Потім натисніть кнопку ВІДКРИТИ ПРИСТРОЙ і почекайте хвилину, після чого Alexa знайде нові пристрої. Як тільки Alexa знайде пристрої, вам потрібно натиснути на них і додати їх до відповідних місць / категорій, і все готово.
Контрольована ракетна установка Alexa - тестування
Для тестування я пішов до свого саду, витягнув усі запобіжники з ракети, поставив їх на відповідні місця, і я кричав Алекса…! Увімкніть усі Ракети, схрестивши пальці. І всі ракети полетіли, позначивши мої зусилля величезним успіхом. Це виглядало приблизно так.
Нарешті, ще раз я сказав Alexa…! Увімкніть всі ракети, щоб отримати епічну картину ниток розжарювання, яку ви можете побачити нижче.
Для більш епічного досвіду настійно рекомендую переглянути відео.