Съдържание:
Видео: Дървено Bluetooth дистанционно за Lego Duplo Train: 3 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Децата ми обичаха този малък влак Lego Duplo, особено най -малкият ми, който се бори да общува с думи, затова исках да й изградя нещо, което да й помогне да играе с влака независимо от възрастни или телефони/таблети. Нещо, което би добавило допълнително измерение на влака и би му придало допълнителна игрална стойност
Комплектът Lego вече има малко начини за управление на влака, можете да го натиснете напред, за да го стартирате, и да го задържите, за да го спрете, можете да го контролирате с помощта на цветни тагове, които вървят по пистата, така че когато влакът го премине, задейства различни действия, т.е. напред, назад, при възпроизвеждане звуците включват светлините. Можете също да изтеглите приложение за вашия телефон или таблет, което може да се свърже с влака чрез Bluetooth.
Ето пълен преглед на влака
След като потърсих из интернет, открих, че има доста малко различни хора, които имат всички готови писмени кодове за контрол на влака. Възелът „Poweredup“, написан от nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/), изглеждаше като перфектен старт, написан е с помощта на Javascript, с който не бях частично запознат, но мислех, че ако бих могъл да намеря java базиран микрочип, това би било добро начало.
Отново след като обиколих из интернет отново намерих системата espruino, това е подобно на ardiuno, но база около javascript. Кодът espriuno може да бъде зареден на миркочип MDBT42Q, който има вграден bluetooth. Мислех, че ако мога да заредя модула с "захранване", ще бъда на половината път, но това просто не беше така, ако модулът съдържаше много библиотеки, за да се зареди на MDBT42Q, така че изглежда трябва намери по -просто решение …
Стъпка 1: Кодът
Esprinuo
За тези, които не познават платформата Espruino https://www.espruino.com (а аз не знаех) много ли прилича на Arduino, има няколко основни разлики, една написана за javascript по -скоро c, усеща се леко по -ново така че да няма примери обаче поддръжката чрез форумите е страхотна и много полезна.
Javascript срещам влака
Първото препятствие беше да се свържете с влака чрез bluetooth, Това може да стане с помощта на NRF клас, който се доставя с кода espruino.
NRF.connect може да се използва за свързване с влака, но първо трябва да намерите адреса на самия влак, можете да използвате NRF.findDevices, за да получите тази информация
След като направите това, тогава трябва да изпратите на влака две стойност за ръкостискане с влака, за моя влак това беше "00001623-1212-efde-1623-785feabcd123", последвано от "00001624-1212-efde-1623-785feabcd123" Вярвам това ще бъде еднакво за всички комплекти парни влакове, но другите версии, т.е. товарният комплект може да е различен
След като имате това, можете да свържете влака, като използвате следната функция, можете ли да кажете кога влакът е свързан, тъй като той ще мига, той светва в синьо
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Then (function (g) {
console.log ("Стартиране на свързване2"); gatt = g; return gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). then (function (service) {return service.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}). then (function (character) {Characteristic_store = character; return character.readValue ();}). then (value => {console.log (value);}). then (function () {console.log ("Train Connected"); connected = 1;
Забавните неща
Сега, когато сте се свързали с влака, е време за всички забавни неща, като преместване напред, издаване на звук и включване и изключване на светлината. Това е проста работа да изпратите на влака предварителна стойност, последвана от действителната команда, т.е.
функция play_horn () {
console.log ("message =", Characteristic_store); const prepval = нов Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = нов Uint8Array ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Characteristic_store.writeValue (prepval).then (_ => {Characteristic_store.writeValue (sendvalue);}); }
Може да се наложи да се поразровите, за да намерите друга команда, освен тези, които използвах
Бутони и лостове
Физическата страна на дистанционното е много право напред с четири бутона (за възпроизвеждане на звуци, включване и изключване на светлините) и един потенциометър, който е свързан към лоста, за да можете да контролирате скоростта и посоката на влака
Бутонът не се нуждае от издърпващ се резистор, вместо това можете да направите това в код, т.е.
pinMode (D15, 'input_pulldown');
Можете да свържете потенциометъра към един от входовете и след това да го прочетете аналоговия сигнал, като използвате следната команда
var read = analogRead (D31);
Другата разлика за arduino е, че esprunio няма настройка и цикъл. Така че вместо това поставям всички отделни команди/тригери във функции и след това настройвам setInterval, който се завърта на всеки 100 милисекунди, слушайки бутона и след това изпълнява необходимата функция, когато бутонът е натиснат.
if (digitalRead (D15) == 1) {play_horn (); }
Действието на лоста беше малко по -сложно, тъй като исках да мога да регулирам постепенно скоростта, така че първо трябваше да изпратя аналоговата стойност на функция
var read = analogRead (D31);
train_direction (четене * 1024);
След това във функцията train_direction разбих командата на 6 различни стъпки въз основа на стойността на пота
През целия път нагоре казва на влака да върви с пълна скорост
На половината път нагоре, казва на влака да продължи напред с 50% скорост
По средата, казва на влака да спре
На половината път надолу, казва на влака да се движи назад с 50% скорост
Докрай надолу, казва на влака да върви с пълна скорост на заден ход
т.е.
функция train_direction (dir_val) {
//console.log("message = ", Characteristic_store); const prepval = нов Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = нов Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x00]); if (dir_val> 300 && dir_val 400 && dir_val 500) {const sendvalue = нов Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x64]); } if (dir_val 200) {const sendvalue = нов Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xe2]); } if (dir_val 100) {const sendvalue = нов Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xce]); } if (dir_val {Characteristic_store.writeValue (sendvalue);}); }
Пълният код може да бъде свален за връзката по -долу
Стъпка 2: Окабеляване
Окабеляването беше най -простата част
То просто се състои от 4 бутона, свързани към D15, D16, D17 и D18 без издърпващ се резистор, както беше направено в кода и 1 10k резистор, свързан към D31
Все още работя върху захранването, но в момента цялата мощност идва от пробив на micro usb и това може да ги свърже директно към банка за захранване или USB порт
Стъпка 3: Изграждането
Дистанционното е най -вече от 3 мм, 6 мм или 9 мм листове шперплат А4, те се режат на моята машина с ЦПУ, но използвайки шаблона, при условие, че бих направил, макар че няма да е невъзможно да се направи на ръка
Надявам се, че шаблонът и снимките ще ви дадат всичко необходимо за преработване, но има няколко бележки, които биха могли да ви помогнат
Монтажът на 3 -милиметровия бутон е за залепване на бутона, пролуката ще постави бутона на правилното място, но ви позволяваме достъп до крака на гърба, така че да можете да запоявате към микрочипа, на обратната страна можете да монтирате и MDBT42Q използвайки малко лепило. Отпред ще трябва да добавите толкова пяна, така че да придаде на бутоните малко подскачане, когато ги натиснете надолу, можете да използвате и пружини
9 -милиметровите бутони ще се нуждаят от боя, гравиране или нещо друго, което да показва какво прави бутонът
Лостът/дръжката ще трябва да бъдат наслоени, използвах 6 мм дюбел, за да ги подравня във всички правилни позиции
Препоръчано:
Vintage Hipster Upcycled Bluetooth високоговорители от дървено чекмедже: 5 стъпки
Винтидж Hipster Upcycled Bluetooth високоговорители от дървено чекмедже: Защо не преработите като очила от тесни дънки, облечени с хипстър, заварявайки полуобезмаслено карамелено лате на фиксиран мотор! Не обичате ли думата upcycle! О да. Нека оставим всички тези глупости на една страна и да направим нещо забавно, лесно и полезно. Всичко, от което се нуждаете
Дървено радио: 5 стъпки (със снимки)
Дървено радио: Радио, което може да се позиционира и използва по два начина. От едната страна като скулптура, а от другата като радио. Откриването и разбирането са две типични човешки действия, които принадлежат към развитието и образованието в живота. Мъжете са любопитни
Дървено шаси за автомобил Arduino Rc .: 4 стъпки
Дървено шаси за Arduino Rc Car .: Така че това е първата ми инструкция и се надявам да ви хареса. Направих това дървено шаси за моята кола arduino RC и се надявам това да вдъхнови свежи калайджии. Дървото всъщност е малко лесно за обработка без специални инструменти, а малки парчета са лесно достъпни
Конвертирайте вашето IR дистанционно в RF дистанционно: 9 стъпки (със снимки)
Преобразувайте вашето IR дистанционно в RF дистанционно: В днешния Instructable ще ви покажа как можете да използвате общ RF модул без микроконтролер, което в крайна сметка ще ни доведе до изграждането на проект, в който можете да конвертирате IR дистанционно на всяко устройство в RF Дистанционно. Основното предимство на преобразуването на
Дистанционно дистанционно управление: 11 стъпки (със снимки)
Дистанционно дистанционно управление: Имам новородено бебе и той не смята, че трябва да спи толкова дълго, колкото съпругата ми и аз може да му пожелаем. Едно нещо, което го прави щастлив в креватчето му, е мобилният телефон, който виси над него. Така че, когато се събуди, ако ни трябват още около 25 минути