Turinys:
Video: Medinis „Bluetooth“nuotolinio valdymo pultas „Lego Duplo Train“: 3 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Mano vaikams patiko šis mažas „Lego Duplo“traukinys, ypač mano jauniausiam, kuris stengiasi bendrauti žodžiais, todėl norėjau jai sukurti kažką, kas padėtų jai žaisti su traukiniu nepriklausomai nuo suaugusiųjų ar telefonų/planšetinių kompiuterių. Kažkas, kas traukiniui suteiktų papildomos dimensijos ir suteiktų papildomos žaidimo vertės
„Lego“rinkinyje jau yra nedaug būdų valdyti traukinį, galite jį pastumti į priekį, kad paleistumėte, ir laikykite nuspaudę, kad jį sustabdytumėte, galite valdyti naudodami spalvotus ženklus, einančius ant bėgių kelio, todėl traukiniui jį pravažiavus, atliekami skirtingi veiksmai, t. į priekį, atgal, groti garsai įjungia šviesas. Taip pat galite atsisiųsti savo telefonui ar planšetiniam kompiuteriui skirtą programą, kuri gali prisijungti prie traukinio per „Bluetooth“.
Čia yra visa traukinio apžvalga
Po medžioklės internete radau, kad ten buvo gana mažai skirtingų žmonių, kurie turėjo parengtą kodą traukiniui valdyti. „Poweredup“mazgas, parašytas nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/), atrodė kaip tobula pradžia. Jis buvo parašytas naudojant „Javascript“, su kuriuo aš iš dalies nesu susipažinęs, bet pagalvojau, ar aš būtų galima rasti java pagrindu pagamintą mikroschemą, tai būtų gera pradžia.
Vėl po medžioklės internete vėl radau espruino sistemą, kuri yra panaši į ardiuno, bet pagrįsta javascript. Espriuno kodą galima įkelti į „MDBT42Q Mircochip“, įterptą į „Bluetooth“. Maniau, kad jei galėčiau į jį įkelti „įjungtą“modulį, būčiau pusiaukelėje, tačiau tai nebuvo taip paprasta, nes modulis buvo daugelyje bibliotekų, kad būtų galima įkelti į MDBT42Q, todėl atrodo, kad turiu rasti paprastesnį sprendimą …
1 žingsnis: Kodas
Esprinuo
Tiems, kurie nežino „Espruino“platformos https://www.espruino.com (o aš to nežinojau), ar ji labai panaši į „Arduino“, yra keletas pagrindinių skirtumų, vienas, kurį jis parašė „javascript“, o c, atrodo šiek tiek naujesnis Taigi, kad nebūtų pavyzdžių, tačiau palaikymas forumuose yra puikus ir labai naudingas.
„Javascript“susitinka su traukiniu
Pirmoji kliūtis buvo prisijungti prie traukinio per „Bluetooth“. Tai galima padaryti naudojant NRF klasę, kuri siunčiama su espruino kodu.
„NRF.connect“gali būti naudojamas prisijungti prie traukinio, tačiau pirmiausia reikia rasti paties traukinio adresą, norėdami gauti šią informaciją, galite naudoti „NRF.findDevices“.
Kai tai padarysite, turite nusiųsti traukiniui dvi vertes, kad paspaustumėte ranką su traukiniu, mano traukiniui tai buvo „00001623-1212-efde-1623-785feabcd123“, o po to-„00001624-1212-efde-1623-785feabcd123“. tai bus vienoda visiems garo traukiniams, tačiau kitos versijos, ty krovinių komplektas, gali skirtis
Kai tai padarysite, galėsite prijungti traukinį naudodami tokią funkciją, kaip nurodyta toliau, ar galite pasakyti, kada traukinys prisijungs, nes mirksės priekiniai žibintai
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Tada (funkcija (g) {
console.log ("Pradedant jungtis2"); gatt = g; return gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). tada (funkcija (paslauga) {grąžinimo paslauga.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}).). Tada (vertė => {console.log (vertė);}). tada (funkcija () {console.log („Traukinys prijungtas“); prijungtas = 1;
Linksmi dalykai
Dabar prisijungę prie traukinio atėjo laikas visiems linksmiems dalykams, pavyzdžiui, judėti į priekį, skleisti garsą ir įjungti bei išjungti šviesą. Paprastas darbas nusiųsti traukiniui parengiamąją vertę, po kurios seka faktinė komanda, t
funkcija play_horn () {
console.log ("message =", Characteristic_store); const prepval = new Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Charakteristika_store.writeValue (paruošiamasis).tada (_ => {Charakteristika_parduotuvė.rašo vertė (siuntimo vertė);}); }
Jums gali tekti šiek tiek pasigilinti, kad surastumėte kitą komandą, nei aš naudoju
Mygtukai ir svirtys
Fizinė nuotolinio valdymo pulto pusė yra labai tiesiai į priekį keturi mygtukai (norint atkurti garsus, įjungti ir išjungti šviesas) ir vienas potenciometras, prijungtas prie svirties, kad galėtumėte valdyti traukinio greitį ir kryptį
Mygtukui nereikia pakelti rezistoriaus, o tai galite padaryti kodu, ty
pinMode (D15, 'input_pulldown');
Galite prijungti potenciometrą prie vieno iš įėjimų ir nuskaityti analoginį signalą naudodami šią komandą
var skaitymas = analogRead (D31);
Kitas skirtumas nuo arduino yra tas, kad esprunio neturi sąrankos ir kilpos. Taigi vietoj to aš visas atskiras komandas/aktyviklius įdedu į funkcijas ir tada nustatau „setInterval“, kuris kartojasi kas 100 milisekundžių, klausydamasis mygtuko ir paleisdamas reikiamą funkciją, kai mygtukas bus paspaustas.
if (digitalRead (D15) == 1) {play_horn (); }
Valdymas svirtimi buvo šiek tiek sudėtingesnis, nes norėjosi palaipsniui reguliuoti greitį, todėl pirmiausia turėjau nusiųsti analoginę vertę
var skaitymas = analogRead (D31);
traukinio_direkcija (skaitymas * 1024);
Tada funkcijoje train_direction aš suskirstiau komandą į 6 skirtingus žingsnius, atsižvelgiant į puodo vertę
Iki galo liepia traukiniui važiuoti visu greičiu
Įpusėjus, liepia traukiniui važiuoti pirmyn 50% greičiu
Vidurys, liepia traukiniui sustoti
Pusiaukelėje nurodo traukiniui važiuoti atgal 50% greičiu
Iki galo liepia traukiniui važiuoti visu greičiu atbuline eiga
t.y
funkcija train_direction (dir_val) {
//console.log("message = ", Characteristic_store); const prepval = new Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x00]); if (dir_val> 300 && dir_val 400 && dir_val 500) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x64]); } if (dir_val 200) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xe2]); } if (dir_val 100) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xce]); } if (dir_val {Charakteristika_store.writeValue (siuntimo vertė);}); }
Visas kodas gali būti pateiktas žemiau esančioje nuorodoje
2 žingsnis: laidai
Elektros instaliacija buvo paprasčiausia dalis
Jį sudarė tik 4 mygtukai, prijungti prie D15, D16, D17 ir D18, be ištraukiamojo rezistoriaus, nes tai buvo padaryta kode ir 1 10 000 rezistorius, prijungtas prie D31.
Aš vis dar dirbu prie maitinimo šaltinio, tačiau šiuo metu visa energija gaunama iš „micro usb“pertraukos ir tai gali būti prijungta tiesiai prie maitinimo banko arba USB prievado
3 žingsnis: sukurkite
Nuotolinio valdymo pultas dažniausiai pagamintas iš 3 mm, 6 mm arba 9 mm A4 faneros lapų, jie buvo supjaustyti mano CNC mašinoje, tačiau naudojant pateiktą šabloną norėčiau, nors tai nebūtų neįmanoma padaryti ranka
Tikiuosi, kad šablonas ir nuotraukos suteiks jums viską, ko reikia perdaryti, tačiau yra keletas pastabų, kurios gali padėti
3 mm stūmoklio laikiklis skirtas mygtuko laikymui, tarpas nustatys mygtuką tinkamoje vietoje, tačiau mes leidžiame pasiekti koją ant nugaros, kad galėtumėte lituoti prie mikroschemos, o atgal - MDBT42Q naudojant šiek tiek klijų. Priekyje turėsite pridėti putų, kad mygtukai šiek tiek atšoktų, kai juos paspausite, taip pat galite naudoti spyruokles
9 mm mygtukams reikės logotipo dažų, graviūrų ar kažko kito, kad parodytų, koks mygtukas ką daro
Svirtį/rankeną reikės sluoksniuoti, aš panaudojau 6 mm kaištį, kad padėčiau juos sulyginti visose teisingose padėtyse
Rekomenduojamas:
Televizoriaus nuotolinio valdymo pultas tampa RF nuotolinio valdymo pultu -- NRF24L01+ pamoka: 5 žingsniai (su paveikslėliais)
Televizoriaus nuotolinio valdymo pultas tampa RF nuotolinio valdymo pultu || NRF24L01+ Pamoka: Šiame projekte parodysiu, kaip aš naudoju populiarųjį nRF24L01+ RF IC, norėdamas belaidžiu būdu sureguliuoti LED juostos ryškumą per tris nenaudingus televizoriaus nuotolinio valdymo pulto mygtukus. Pradėkime
„IRduino“: „Arduino“nuotolinio valdymo pultas - imituokite pamestą nuotolinio valdymo pultą: 6 žingsniai
„IRduino“: „Arduino“nuotolinio valdymo pultas - imituokite pamestą nuotolinio valdymo pultą: jei kada nors pametėte televizoriaus ar DVD grotuvo nuotolinio valdymo pultą, žinote, kaip apmaudu, kai tenka vaikščioti, ieškoti ir naudoti paties įrenginio mygtukus. Kartais šie mygtukai net nesuteikia tokių funkcijų kaip nuotolinio valdymo pultas. Gauti
Įprastas nuotolinio valdymo rinkinys transformuotas į keturių kanalų RC žaislinį nuotolinio valdymo pultą: 4 žingsniai
Įprastas nuotolinio valdymo rinkinys transformuotas į keturių kanalų RC žaislinį nuotolinio valdymo pultą: 62 将 通用 遥控 转换 转换 为 为 玩具 模型 中 使用 的 四方法 非常 简单。 只需 准备 一些 瓦楞纸 板 , 然后 按照 视频 教程 完成 这个 电子 项目 并 并 为 视频 教程 完成 这个 电子 项目 并 并 为
Konvertuokite savo IR nuotolinio valdymo pultą į RF nuotolinio valdymo pultą: 9 žingsniai (su paveikslėliais)
Konvertuokite savo IR nuotolinio valdymo pultą į RF nuotolinio valdymo pultą: Šiandienos instrukcijoje aš jums parodysiu, kaip galite naudoti bendrą RF modulį be mikrovaldiklio, kuris galiausiai paskatins mus sukurti projektą, kuriame bet kurio įrenginio IR nuotolinio valdymo pultą galima paversti RF Nuotolinis. Pagrindinis privalumas konvertuojant
„Alexa“balso valdymo televizoriaus nuotolinio valdymo pultas ESP8266: 9 žingsniai
„Alexa“balso valdymo televizoriaus nuotolinio valdymo pultas ESP8266: Ar kas nors jūsų namuose atleidžia nuotolinio valdymo pultą, ar einate į tuščią kambarį, kad pamatytumėte, kaip televizorius skleidžiasi. Baterijos pradeda gesti ir nekontroliuojamos iš kambario galo. Dabar galite valdyti savo televizorių, DVR, bet ką su IR valdikliu, kurį galite