Obsah:
Video: Dřevěný dálkový ovladač Bluetooth pro Lego Duplo Train: 3 kroky (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Moje děti milovaly tento malý vlak Lego Duplo, zvláště moje nejmladší, která se snaží komunikovat slovy, takže jsem jí chtěl postavit něco, co by jí pomohlo hrát s vlakem nezávisle na dospělých nebo telefonech/tabletech. Něco, co by vlaku dodalo další rozměr a dodalo mu další herní hodnotu
Souprava Lego již má několik způsobů, jak ovládat vlak, můžete jej zatlačit dopředu, abyste jej spustili, a podržet jej, abyste jej zastavili, můžete jej ovládat pomocí barevných značek, které jdou po trati, takže když ji vlak projede, spustí různé akce, tj. dopředu, dozadu, zvuky přehrávání zapněte světla. Můžete si také stáhnout aplikaci pro svůj telefon nebo tablet, kterou lze připojit k vlaku přes bluetooth.
Zde je kompletní přehled vlaku
Když jsem lovil na internetu, našel jsem tam docela dost různých lidí, kteří měli připravený psaný kód pro ovládání vlaku. Uzel 'Poweredup' napsaný nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) vypadal jako perfektní začátek, byl napsán pomocí Javascriptu, který jsem nebyl částečně obeznámen, ale myslel jsem, kdybych mohl najít mikročip na bázi javy, to by byl dobrý začátek.
Po opětovném hledání na internetu jsem znovu našel systém espruino, který je podobný ardiunu, ale je založen na javascriptu. Kód espriuno bylo možné načíst na mircochip MDBT42Q, který měl vestavěný bluetooth. Říkal jsem si, že kdybych do něj mohl načíst modul „napájený“, byl bych v polovině cesty, nicméně toto nebylo ten případ, kdy by modul obsazený mnoha knihovnami byl dostatečně velký pro načtení na MDBT42Q, takže se zdá, že musím najít jednodušší řešení …
Krok 1: Kód
Esprinuo
Pro ty, kteří neznají platformu Espruino https://www.espruino.com (a já jsem to nevěděl), je to velmi podobné Arduinu, Existuje několik hlavních rozdílů, které napsal pro javascript, spíše c, Cítí se mírně novější aby zde nebyly příklady, podpora prostřednictvím fór je skvělá a velmi užitečná.
Javascript potkat vlak
První překážkou bylo připojení k vlaku přes bluetooth. To lze provést pomocí třídy NRF, která je dodávána s kódem espruino.
NRF.connect lze použít k připojení k vlaku, ale vaše první potřeba najít adresu samotného vlaku, můžete použít NRF.findDevices získat tyto informace
Jakmile to uděláte, budete muset poslat vlaku dvě hodnoty k podání ruky s vlakem, u mého vlaku to bylo „00001623-1212-efde-1623-785feabcd123“a za ním „00001624-1212-efde-1623-785feabcd123“to bude stejné pro všechny soupravy parních vlaků, ale ostatní verze, tj. nákladní souprava, se mohou lišit
Jakmile to máte, můžete vlak připojit pomocí funkce jako následující, můžete zjistit, kdy se vlak připojil, protože bude blikat, svítí modře
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Poté (funkce (g) {
console.log ("Zahájení připojování2"); gatt = g; vrátit gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123");)). pak (hodnota => {console.log (hodnota);}). poté (funkce () {console.log ("Train Connected"); connected = 1;
Zábavné věci
Nyní, když jste připojeni k vlaku, je čas na všechny zábavné věci, jako je pohyb vpřed, vydávání zvuku a zapínání a vypínání světla. Je to jednoduché poslat vlaku hodnotu prep, následovanou skutečným příkazem, tj
funkce play_horn () {
console.log ("message =", Characteristic_store); const prepval = nový 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žná budete muset trochu kopat, abyste našli jiný příkaz než ten, který jsem použil
Tlačítka a páčky
Fyzická strana dálkového ovladače je velmi přímá vpřed, čtyři tlačítka (pro přehrávání zvuků, zapnutí a vypnutí světel) a jeden potenciometr, který je připojen k páce, takže můžete ovládat rychlost a směr vlaku
Tlačítko nepotřebuje vytahovací odpor, místo toho to můžete udělat v kódu, tzn
pinMode (D15, 'input_pulldown');
Potenciometr můžete připojit k jednomu ze vstupů a poté jej přečíst analogovým signálem pomocí následujícího příkazu
var reading = analogRead (D31);
Dalším rozdílem pro arduino je, že esprunio nemá nastavení a smyčku. Místo toho tedy umístím všechny oddělené příkazy/spouště do funkcí a poté nastavím setInterval, který se každých 100 milisekund opakuje, poslech tlačítka a spuštění požadované funkce po stisknutí tlačítka.
if (digitalRead (D15) == 1) {play_horn (); }
Ovládání páky bylo trochu komplikovanější, protože jsem chtěl, aby bylo možné postupně upravovat rychlost, takže nejprve jsem musel poslat analogovou hodnotu, aby fungovala
var reading = analogRead (D31);
vlak_směr (čtení * 1024);
Pak jsem ve funkci train_direction rozdělil příkaz na 6 různých přírůstků na základě hodnoty potu
Celou cestu nahoru říká vlaku, aby šel vpřed plnou rychlostí
V polovině cesty říká vlaku, aby šel vpřed rychlostí 50%
Middle, říká vlaku, aby zastavil
V polovině cesty řekne vlaku, aby se vrátil 50% rychlostí
Až dolů, říká vlaku, aby šel plnou rychlostí zpět
tj
funkce vlak_směr (dir_val) {
//console.log("message = ", Character_store); const prepval = nový 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);}); }
Úplný kód lze stáhnout z níže uvedeného odkazu
Krok 2: Zapojení
Zapojení bylo nejjednodušší částí
Skládalo se pouze na 4 tlačítcích připojených k D15, D16, D17 a D18 bez jakéhokoli vytahovacího odporu, jak bylo provedeno v kódu, a 1 10k odpor připojený k D31
Stále pracuji na napájecím zdroji, ale v současné době veškerá energie pochází z mikro USB rozbití a to by mohlo být připojeno přímo k powerbance nebo USB portu
Krok 3: Sestavení
Dálkový ovladač je většinou z překližky formátu A4, 3 mm, 6 mm nebo 9 mm, které byly řezány na mém CNC stroji, ale pomocí šablony, kterou jsem poskytl, ačkoli bych to nemohl udělat ručně
Doufám, že šablona a fotografie vám poskytnou vše, co potřebujete k předělání, ale několik poznámek, které by mohly pomoci
3mm držák na tlačítko slouží k nalepení tlačítka, mezera umístí tlačítko na správné místo, ale my vám umožní přístup k noze na zadní straně, takže můžete pájet na mikročip, na zadní straně můžete také namontovat MDBT42Q pomocí nějakého lepidla. Na přední stranu budete muset přidat pěnu, aby tlačítka trochu poskakovala, když je stisknete dolů, můžete také použít pružiny
9mm tlačítka budou potřebovat buď logo, barvu, gravírování nebo něco jiného, aby bylo vidět, jaké tlačítko co dělá
Páka/rukojeť bude muset být navrstvena, použil jsem 6 mm hmoždinku, která jim pomohla zarovnat ve všech správných polohách
Doporučuje:
Jak přidat IR dálkový ovladač k reproduktorovému systému: 5 kroků (s obrázky)
Jak přidat IR dálkový ovladač do reproduktorového systému: V tomto projektu vám ukážu, jak jsem vytvořil další obvod pro svůj reproduktorový systém, abych jej mohl bezdrátově ovládat pomocí domácího IR dálkového ovladače. Začněme
ESP8266 RGB LED STRIP WIFI ovládání - NODEMCU jako IR dálkový ovladač pro LED pásek ovládaný přes Wifi - RGB LED STRIP Smartphone Ovládání: 4 kroky
ESP8266 RGB LED STRIP WIFI ovládání | NODEMCU jako IR dálkový ovladač pro LED pásek ovládaný přes Wifi | Ovládání smartphonu RGB LED STRIP: Ahoj kluci, v tomto tutoriálu se naučíme, jak používat nodemcu nebo esp8266 jako IR dálkové ovládání k RGB LED pásku a Nodemcu bude ovládat pomocí smartphonu přes wifi. V zásadě tedy můžete RGB LED STRIP ovládat pomocí svého smartphonu
Převeďte svůj IR dálkový ovladač na RF: 9 kroků (s obrázky)
Převeďte svůj IR dálkový ovladač na RF: V dnešním Instructable vám ukážu, jak můžete použít obecný RF modul bez mikrokontroléru, což nás nakonec přivede k vybudování projektu, kde můžete převést IR dálkové ovládání jakéhokoli zařízení na RF Dálkový. Hlavní výhodou převodu
Univerzální dálkový ovladač MQTT: 5 kroků (s obrázky)
Univerzální dálkový ovladač MQTT: Ahoj všichni, za prvé, jsem Francouz, takže je možné, že některé věty nedávají smysl, omlouvám se, usilovně pracuji na vylepšení. V současné době pracuji na domácí automatizaci ve svém bytě. Jako software jsem použil OpenHab2 a mosquitto. Nejsem na to odborník
Digitální kabelový dálkový ovladač Canon Rebel pro závěrku a zaostření: 4 kroky
Dálkový ovladač Canon Digital Rebel pro dálkové ovládání závěrky a zaostření: Hej! Toto je další verze kabelového dálkového ovladače Canon. Myslím, že je flexibilnější než ostatní designy. Odtud jsem získal inspiraci, což vám v zásadě umožňuje fotografovat pomocí tohoto dálkového ovladače místo tlačení zadku