Sadržaj:
Video: Drveni Bluetooth daljinski upravljač za Lego Duplo vlak: 3 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Moja su djeca voljela ovaj mali Lego Duplo vlak, posebno moj najmlađi koji se bori da komunicira riječima pa sam joj želio izgraditi nešto što će joj pomoći da se igra s vlakom neovisno o odraslima ili telefonima/tabletima. Nešto što bi vlaku dodalo dodatnu dimenziju i dalo mu dodatnu igračku vrijednost
Lego set već ima nekoliko načina za upravljanje vlakom, možete ga gurnuti naprijed za pokretanje i držati za zaustavljanje, možete ga kontrolirati pomoću oznaka u boji koje idu na prugu, pa kad vlak prijeđe preko njega pokreće različite radnje, tj. naprijed, natrag, zvukovi reprodukcije uključuju svjetla. Također možete preuzeti aplikaciju za svoj telefon ili tablet koja se može povezati s vlakom putem Bluetootha.
Evo potpunog pregleda vlaka
Nakon lova po internetu, otkrio sam da je bilo dosta različitih ljudi koji su imali sve spremne pisane kodove za kontrolu vlaka. Čvor 'Poweredup' koji je napisao nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) izgledao je kao savršeno započeto, napisano je korištenjem Javascripta s kojim nisam bio djelomično upoznat, ali pomislio sam mogao pronaći mikročip temeljen na javi, ovo bi bio dobar početak.
Opet sam nakon lova po internetu ponovno pronašao sustav espruino, sličan ardiunu, ali baza oko javascripta. Kôd espriuno mogao se učitati na MDBT42Q mirkočip koji je imao ugrađen bluetooth. Mislio sam da bih, ako bih mu mogao učitati "napajani" modul, bio na pola puta, međutim ovo jednostavno nije bio slučaj jer je modul sadržavao mnoge biblioteke prevelike za učitavanje na MDBT42Q, pa se čini da moram pronaći jednostavnije rješenje …
Korak 1: Kôd
Esprinuo
Za one koji ne poznaju platformu Espruino https://www.espruino.com (a ja nisam) je li vrlo sličan Arduinu, postoji nekoliko glavnih razlika, jedna je napisana za javascript, radije c, čini se nešto novijim pa da ne postoje primjeri, međutim, podrška putem foruma je velika i od velike pomoći.
Javascript upoznajte vlak
Prva prepreka bila je povezivanje s vlakom putem Bluetootha. To se može učiniti pomoću klase NRF koja se isporučuje u kodu espruino.
NRF.connect se može koristiti za povezivanje s vlakom, međutim vaša prva potreba da pronađete adresu samog vlaka, možete koristiti NRF.findDevices za dobivanje ovih podataka
Nakon što ste to učinili, morate vlaku poslati dvije vrijednosti u rukovanje s vlakom, za moj vlak ovo je bilo "00001623-1212-efde-1623-785feabcd123", a zatim "00001624-1212-efde-1623-785feabcd123" vjerujem to će biti isto za sve postavljene parne vlakove, ali ostale verzije, tj. komplet tereta mogu biti različite
Nakon što to učinite, možete spojiti vlak pomoću sljedeće funkcije, možete li reći kada se vlak spojio jer će treptati svjetla će plavo
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Zatim (funkcija (g) {
console.log ("Pokretanje povezivanja2"); 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 = karakteristika; return karakteristika.readValue ();}).then (value => {console.log (value);}). then (function () {console.log ("Vlak je povezan"); connected = 1;
Zabavne stvari
Sada kada ste se povezali s vlakom, vrijeme je za sve zabavne stvari, poput kretanja naprijed, stvaranja zvuka i paljenja i gašenja svjetla. To je jednostavan posao slanja vlaku pripremne vrijednosti, nakon čega slijedi stvarna naredba, tj
funkcija play_horn () {
console.log ("message =", Characteristic_store); const prepval = novi Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = novi Uint8Array ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Characteristic_store.writeValue (prepval).then (_ => {Characteristic_store.writeValue (sendvalue);}); }
Možda ćete morati malo kopati okolo kako biste pronašli drugu naredbu osim onih koje sam koristio
Gumbi i poluge
Fizička strana daljinskog upravljača je vrlo ravna prema naprijed s četiri gumba (za reprodukciju zvukova, paljenje i gašenje svjetla) i jednim potenciometrom koji je spojen na polugu tako da možete kontrolirati brzinu i smjer vlaka
Gumb ne treba podizati otpornik, već to možete učiniti u kodu, tj
pinMode (D15, 'input_pulldown');
Potenciometar možete spojiti na jedan od ulaza i zatim pročitati analogni signal pomoću sljedeće naredbe
var čitanje = analogRead (D31);
Druga razlika u odnosu na arduino je ta što esprunio nema postavku i petlju. Stoga umjesto toga stavljam sve zasebne naredbe/okidače u funkcije, a zatim postavljam setInterval koji se ponavlja svakih 100 milisekundi, slušajući gumb, a zatim pokreće traženu funkciju kada je gumb pritisnut.
if (digitalRead (D15) == 1) {play_horn (); }
Rad s polugom bio je malo kompliciraniji jer sam htio imati mogućnost postupnog podešavanja brzine pa sam prvo morao poslati analognu vrijednost u funkciju
var čitanje = analogRead (D31);
smjer_smjera (čitanje * 1024);
Zatim sam u funkciji train_direction razbio naredbu na 6 različitih koraka na temelju vrijednosti pot
Skroz gore, govori vlaku da ide punom brzinom naprijed
Na pola puta govori vlaku da ide naprijed brzinom od 50%
Sredina, govori vlaku da stane
Na pola puta dolje, govori vlaku da ide unatrag brzinom od 50%
Do kraja, govori vlaku da ide punom brzinom unatrag
tj
funkcija train_direction (dir_val) {
//console.log("message = ", Characteristic_store); const prepval = novi Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = novi Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x00]); if (dir_val> 300 && dir_val 400 && dir_val 500) {const sendvalue = novi 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 {Characteristic_store.writeValue (sendvalue);}); }
Cijeli kôd možete pronaći na donjoj poveznici
Korak 2: Ožičenje
Ožičenje je bio najjednostavniji dio
Sastojao se samo od 4 tipke spojene na D15, D16, D17 i D18 bez ikakvog otpornika za podizanje, kao što je to učinjeno u kodu i 1 10k otpornika spojenog na D31
Još uvijek radim na napajanju, ali trenutno sva energija dolazi iz mikro usb proboja i to bi ih moglo spojiti izravno na banku napajanja ili USB priključak
Korak 3: Izgradnja
Daljinski upravljač uglavnom je izrađen od A4 listova šperploče A4 formata 3 mm, 6 mm ili 9 mm, koji su izrezani na CNC stroju, međutim koristeći predložak pod uvjetom da bih to učinio ručno
Nadam se da će vam predložak i fotografije dati sve što vam je potrebno za prepravljanje, međutim postoji nekoliko napomena koje bi mogle pomoći
Nosač s gumbom od 3 mm služi za lijepljenje gumba, otvor će postaviti gumb na pravo mjesto, ali dopuštamo vam pristup nozi sa stražnje strane tako da možete lemiti na mikročip, na poleđini možete montirati i MDBT42Q koristeći malo ljepila. S prednje strane morate dodati toliko pjene kako bi gumbi malo poskakivali kada ih pritisnete, također biste mogli upotrijebiti opruge
Gumbi od 9 mm trebaju logotip ili boju, gravuru ili nešto drugo da bi pokazali što gumb radi
Poluga/ručka morat će biti slojevita, upotrijebio sam mozgalicu od 6 mm kako bih ih poravnao u svim ispravnim položajima
Preporučeni:
Arduino daljinski upravljač temeljen na pregledniku (linux): 9 koraka (sa slikama)
Arduino daljinski upravljač temeljen na pregledniku (linux): Imamo djecu. Volim ih do komadića, ali stalno skrivaju daljinski upravljač za satelit i televiziju kad uključe dječje kanale. Nakon što se to svakodnevno događalo nekoliko godina, i nakon što mi je draga supruga dopustila
TV daljinski upravljač postaje RF daljinski -- NRF24L01+ Vodič: 5 koraka (sa slikama)
TV daljinski upravljač postaje RF daljinski || Vodič za NRF24L01+: U ovom projektu ću vam pokazati kako sam koristio popularni nRF24L01+ RF IC za bežično podešavanje svjetline LED trake putem tri beskorisna gumba na daljinskom upravljaču televizora. Započnimo
IRduino: Arduino daljinski upravljač - oponašajte izgubljeni daljinski upravljač: 6 koraka
IRduino: Arduino daljinski upravljač - oponašajte izgubljeni daljinski upravljač: Ako ste ikada izgubili daljinski upravljač za televizor ili DVD uređaj, znate koliko je frustrirajuće morati hodati do, pronaći i koristiti gumbe na samom uređaju. Ponekad ti gumbi čak ne nude istu funkcionalnost kao daljinski. Primiti
Bluetooth daljinski upravljač "Retro Future": 9 koraka (sa slikama)
Bluetooth daljinski upravljač "Retro Future": Oduvijek sam volio izgled i dojam " svijeta sutrašnjice " predstavljeni smo u proizvodima znanstvene fantastike i koncepta sredinom stoljeća. Dobro, to nije istina. Kad sam bio mlad mislio sam da su Trikoderi na Zvjezdanim stazama ružni i nespretni, ali
Daljinski video daljinski upravljač za računalo Video player: 6 koraka
Daljinski video daljinski upravljač za računalo Video player: Izrađujem daljinski upravljač koji se povezuje s računalom putem USB -a. Veliki daljinski upravljač omogućuje mom djetetu odabir i reprodukciju videozapisa na starom računalu. Ovo je relativno jednostavan projekt. Osnovna komponenta je ili USB tipkovnica ili bežična USB tipkovnica. Zatim