Obsah:
Video: Drevené diaľkové ovládanie Bluetooth pre vlak Lego Duplo: 3 kroky (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Moje deti milovali tento malý vláčik Lego Duplo, obzvlášť moja najmladšia, ktorá sa snaží komunikovať slovami, a tak som jej chcel postaviť niečo, čo by jej pomohlo hrať s vlakom nezávisle od dospelých alebo telefónov/tabletov. Niečo, čo by vlaku dodalo ďalší rozmer a dodalo mu extra hernú hodnotu
Súprava Lego už má niekoľko spôsobov, ako ovládať vlak, môžete ho posunúť dopredu, aby ste ho začali, a podržať ho, aby ste ho zastavili, môžete ho ovládať pomocou farebných značiek, ktoré idú po trati, takže keď po nej vlak prejde, spustí rôzne akcie, tj. zvuky vpred, vzad, prehrávanie rozsvietia svetlá. Môžete si tiež stiahnuť aplikáciu pre svoj telefón alebo tablet, ktorá sa dá pripojiť k vlaku prostredníctvom bluetooth.
Tu je kompletný prehľad vlaku
Potom, čo som lovil na internete, zistil som, že je tam dosť málo rôznych ľudí, ktorí mali pripravený písaný kód na ovládanie vlaku. Uzol „Poweredup“napísaný nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) vyzeral ako perfektný začiatok. Bol napísaný pomocou jazyka Javascript, s ktorým som nebol čiastočne oboznámený, ale myslel som si, že ak mohol nájsť mikročip založený na jave, to by bol dobrý začiatok.
Potom, čo som znova lovil na internete, som našiel systém espruino, ktorý je podobný ardiunu, ale je založený na javascripte. Kód espriuno je možné načítať do mircochipu MDBT42Q s integrovaným rozhraním bluetooth. Myslel som si, že keby som doň mohol načítať „zapnutý“modul, bol by som v polovici cesty, ale toto nebolo jednoduché a modul obsiahnutý v mnohých knižniciach bol veľký na načítanie do MDBT42Q, takže sa zdá, že musím nájsť jednoduchšie riešenie …
Krok 1: Kód
Esprinuo
Pre tých, ktorí nepoznajú platformu Espruino https://www.espruino.com (a ja som to nevedel), je to veľmi podobné Arduinu, Existuje niekoľko hlavných rozdielov, ktoré boli napísané pre javascript, skôr c, Je to mierne novšie aby teda neexistovali príklady, podpora prostredníctvom fór je skvelá a veľmi nápomocná.
Javascript stretnúť vlak
Prvou prekážkou bolo pripojenie k vlaku cez bluetooth. To je možné vykonať pomocou triedy NRF, ktorá sa dodáva s kódom espruino.
NRF.connect je možné použiť na spojenie s vlakom, avšak na to, aby ste najskôr zistili adresu samotného vlaku, môžete tieto informácie získať pomocou NRF.findDevices
Akonáhle to urobíte, potom pošlete vlaku dve hodnoty na podanie ruky s vlakom, pre môj vlak to bolo „00001623-1212-efde-1623-785feabcd123“a za ním „00001624-1212-efde-1623-785feabcd123“to bude rovnaké pre všetky súpravy parných vlakov, ale ostatné verzie, tj. nákladná súprava, sa môžu líšiť
Akonáhle to máte, môžete vlak pripojiť pomocou nasledujúcej funkcie. Môžete povedať, kedy sa vlak spojí, ako bude blikať, svetlomety budú modré
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Potom (funkcia (g) {
console.log ("Začínam s pripájaním2"); gatt = g; vrátiť gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). potom (funkcia (služba) {vrátiť službu.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");})). potom (funkcia (charakteristika) {Character_store = charakteristika; vrátiť charakteristiku.readValue ();}).potom (hodnota => {console.log (hodnota);}). potom (funkcia () {console.log ("Train Connected"); connected = 1;
Zábavné veci
Teraz, keď ste pripojení k vlaku, je čas na všetky zábavné veci, ako napríklad jeho pohyb vpred, vydávanie zvukov a zapínanie a vypínanie svetla. Je to jednoduchá práca odoslať vlaku predbežnú hodnotu, po ktorej nasleduje skutočný príkaz, tj
funkcia 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]); Characteristic_store.writeValue (prepval).then (_ => {Characteristic_store.writeValue (sendvalue);}); }
Možno budete musieť trochu prekopať, aby ste našli iný príkaz, ako som použil
Gombíky a páčky
Fyzická stránka diaľkového ovládača je veľmi jednoduchá, štyri tlačidlá (na prehrávanie zvukov, zapínanie a vypínanie svetiel) a jeden potenciometer pripojený k páke, pomocou ktorého môžete ovládať rýchlosť a smer vlaku.
Tlačidlo nepotrebuje vyťahovací odpor, namiesto toho to môžete urobiť v kóde, tj
pinMode (D15, 'input_pulldown');
Potenciometer môžete pripojiť k jednému zo vstupov a potom ho prečítať pomocou analógového signálu pomocou nasledujúceho príkazu
var reading = analogRead (D31);
Ďalším rozdielom pre arduino je, že esprunio nemá nastavenie a slučku. Namiesto toho umiestnim všetky oddelené príkazy/spúšťače do funkcií a potom nastavím setInterval, ktorý sa opakuje každých 100 milisekúnd, počúvaním tlačidla a spustením požadovanej funkcie po stlačení tlačidla.
if (digitalRead (D15) == 1) {play_horn (); }
Ovládanie páčky bolo trochu komplikovanejšie, pretože som chcel, aby bolo možné postupne upravovať rýchlosť, takže najskôr som musel poslať analógovú hodnotu, aby fungovala
var reading = analogRead (D31);
vlak_smer (čítanie * 1024);
Potom som vo funkcii train_direction rozložil príkaz na 6 rôznych prírastkov na základe hodnoty potu
Celú cestu hore hovorí vlaku, aby išiel naplno
V polovici cesty hovorí vlaku, aby išiel dopredu 50% rýchlosťou
Uprostred, hovorí vlaku, aby zastavil
V polovici cesty povie vlaku, aby išiel späť 50% rýchlosťou
Celú cestu dole hovorí vlaku, aby išiel plnou rýchlosťou dozadu
tj
funkcia vlak_smer (dir_val) {
//console.log("message = ", Character_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 sendvalueue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x64]); } if (dir_val 200) {const sendvalueue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xe2]); } if (dir_val 100) {const sendvalueue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xce]); } if (dir_val {Characteristic_store.writeValue (sendvalue);}); }
Celý kód môžete stiahnuť z nižšie uvedeného odkazu
Krok 2: Zapojenie
Zapojenie bolo najjednoduchšou súčasťou
Skladal sa iba zo 4 tlačidiel pripojených k D15, D16, D17 a D18 bez akéhokoľvek pull up rezistora, ako sa to robilo v kóde, a 1 10k rezistora pripojeného k D31.
Stále pracujem na napájaní, ale v súčasnej dobe všetka energia pochádza z mikro USB zásuvky a môže byť pripojená priamo k power banke alebo USB portu.
Krok 3: Zostavenie
Diaľkové ovládanie je väčšinou z preglejky formátu 3 mm, 6 mm alebo 9 mm, ktoré boli narezané na mojom CNC stroji, ale s použitím poskytnutej šablóny, aj keď by to nebolo možné robiť ručne
Dúfam, že šablóna a fotografie vám poskytnú všetko, čo potrebujete na prerobenie, existuje však niekoľko poznámok, ktoré by mohli pomôcť
3 mm držiak na tlačidlo je na nalepenie tlačidla, medzera umiestni tlačidlo na správne miesto, ale umožňujeme vám prístup k nohe na zadnej strane, aby ste sa mohli spájkovať s mikročipom, a naopak môžete tiež namontovať MDBT42Q pomocou nejakého lepidla. Na prednú stranu budete musieť pridať takú penu, aby tlačidlá trochu poskakovali, keď ich stlačíte, mohli by ste použiť aj pružiny
9 mm tlačidlá budú potrebovať buď logo, gravírovanie, alebo niečo iné, aby sa ukázalo, aké tlačidlo robí čo
Páčku/držadlo bude potrebné navrstviť. Na vyrovnanie vo všetkých správnych polohách som použil 6 mm hmoždinku.
Odporúča:
Arduino: Časové programy a diaľkové ovládanie z aplikácie pre Android: 7 krokov (s obrázkami)
Arduino: Časové programy a diaľkové ovládanie z aplikácie pre Android: Vždy ma zaujímalo, čo sa stane so všetkými takými doskami Arduino, ktoré ľudia nepotrebujú, keď dokončia svoje skvelé projekty. Pravda je trochu znepokojujúca: nič. Pozoroval som to v dome svojej rodiny, kde sa môj otec pokúsil postaviť si vlastný dom
Profesionálne vyzerajúce diaľkové ovládanie pre váš projekt Arduino doma: 9 krokov (s obrázkami)
Vytvorenie profesionálne vyzerajúceho diaľkového ovládača pre váš projekt Arduino doma: Vytvoril som projekt, ktorý pomocou arduina a infračervenej knižnice IR ovládal niekoľko vecí. V tomto návode vám teda ukážem, ako môžete akýkoľvek diaľkový ovládač znova použiť. použil váš ďalší projekt. A na to, aby ste si urobili dobrú toaletu, nepotrebujete nič vymyslené
ESP8266 RGB LED STRIP WIFI ovládanie - NODEMCU Ako IR diaľkové ovládanie pre LED pás ovládané cez Wifi - Ovládanie smartfónu RGB LED STRIP: 4 kroky
ESP8266 RGB LED STRIP WIFI ovládanie | NODEMCU Ako IR diaľkové ovládanie pre LED pás ovládané cez Wifi | Ovládanie smartfónu RGB LED STRIP: Ahoj, v tomto návode sa naučíme, ako používať nodemcu alebo esp8266 ako IR diaľkové ovládanie na ovládanie RGB LED pásu a Nodemcu budete ovládať smartfónom cez wifi. V zásade teda môžete RGB LED STRIP ovládať pomocou svojho smartfónu
Bezdrôtové diaľkové ovládanie pomocou 2,4 GHz modulu NRF24L01 s Arduino - Nrf24l01 4 -kanálový / 6 -kanálový vysielač pre Quadcopter - RC helikoptéra - RC lietadlo využívajúce Arduino: 5 krokov (s obrázkami)
Bezdrôtové diaľkové ovládanie pomocou 2,4 GHz modulu NRF24L01 s Arduino | Nrf24l01 4 -kanálový / 6 -kanálový vysielač pre Quadcopter | RC helikoptéra | RC lietadlo využívajúce Arduino: Na ovládanie RC auta | Kvadrokoptéra | Dron | RC lietadlo | RC čln, vždy potrebujeme prijímač a vysielač, predpokladajme, že pre RC QUADCOPTER potrebujeme 6 -kanálový vysielač a prijímač a tento typ TX a RX je príliš nákladný, takže si ho vyrobíme na
Mechanické diaľkové ovládanie pre Ricoh GR II Digital: 5 krokov (s obrázkami)
Mechanické diaľkové ovládanie pre Ricoh GR II Digital: Objektív Ricoh GR 28 mm sa mi veľmi páči, pretože som pred 20 rokmi použil svoj prvý GR1. Teraz ma chytila moja minulosť a kúpil som si GR II digital. Na turistiku milujem jednoduchosť, malé a ľahké vybavenie - GR II je na moje účely perfektný, ale príslušenstvo