Sadržaj:
Video: Drveni Bluetooth daljinski upravljač za Lego Duplo vlak: 3 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Moja djeca su voljela ovaj mali Lego Duplo voz, posebno moj najmlađi koji se bori da komunicira riječima pa sam joj želio izgraditi nešto što bi joj pomoglo 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 prema naprijed za pokretanje i držati ga za zaustavljanje, možete ga kontrolirati pomoću oznaka u boji koje idu na prugu, tako da kad vlak pređe preko njega pokreće različite radnje, tj. naprijed, natrag, reprodukcija zvukova uključuje 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čet mogao pronaći mikročip baziran na javi, ovo bi bio dobar početak.
Opet sam nakon lova po internetu ponovo pronašao sistem espruino, sličan ardiunu, ali baziran oko javascripta. Kod espriuno mogao se učitati na MDBT42Q mirkočip koji je imao ugrađen bluetooth. Mislio sam da ako mogu učitati "napajani" modul na njega, bio bih na pola puta, međutim ovo jednostavno nije bio slučaj jer je modul sadržavao mnoge biblioteke velike za učitavanje na MDBT42Q, pa izgleda da moram pronađite 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 da je nešto novija pa da ne postoje primjeri, međutim, podrška putem foruma je velika i od velike pomoći.
Javascript upoznaj voz
Prva prepreka bila je povezivanje s vlakom putem bluetootha. To se može učiniti pomoću klase NRF koja se isporučuje s espruino kodom.
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 informacija
Nakon što ste to učinili, morate vlaku poslati dvije vrijednosti u rukovanje s vlakom, jer je za moj vlak ovo bilo "00001623-1212-efde-1623-785feabcd123", a zatim "00001624-1212-efde-1623-785feabcd123" vjerujem to će biti isto za sve komplete parnih vlakova, ali druge verzije, tj. komplet tereta mogu se razlikovati
Nakon što to učinite, možete spojiti vlak pomoću sljedeće funkcije, možete li reći kada se vlak povezao, jer će treptati svijetli plavo
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Then (function (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 (funkcija (karakteristika) {Characteristic_store = karakteristika; return karakteristika.readValue ();}).then (value => {console.log (value);}). then (function () {console.log ("Train Connected"); 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
Dugmad i poluge
Fizička strana daljinskog upravljača su vrlo ravna četiri dugmeta (za reprodukciju zvukova, paljenje i gašenje svjetla) i jedan potenciometar koji je spojen na polugu tako da možete kontrolirati brzinu i smjer vlaka
Dugme ne mora da vuče 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. Umjesto toga, stavljam sve zasebne naredbe/okidače u funkcije, a zatim postavljam setInterval koji se ponavlja svakih 100 milisekundi, slušajući dugme, a zatim pokreće traženu funkciju kada je dugme pritisnuto.
if (digitalRead (D15) == 1) {play_horn (); }
Rad s polugom bio je malo složeniji jer sam htio imati mogućnost postupnog podešavanja brzine pa sam prvo morao poslati analognu vrijednost u funkciju
var čitanje = analogRead (D31);
train_direction (čitanje * 1024);
Zatim sam u funkciji train_direction razbio naredbu na 6 različitih koraka na osnovu vrijednosti pot
Skroz gore, govori vozu da ide punom brzinom
Na pola puta gore, govori vlaku da ide naprijed brzinom od 50%
Sredina, govori vozu da stane
Na pola puta dolje, govori vlaku da ide unatrag brzinom od 50%
Skroz dolje, 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 vezi
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 snaga dolazi iz mikro usb proboja, a to bi se moglo spojiti izravno na banku napajanja ili USB priključak
Korak 3: Izgradnja
Daljinski upravljač je uglavnom od 3 mm, 6 mm ili 9 mm A4 listova šperploče, rezani su na mojoj CNC mašini, međutim koristeći šablon pod uslovom da bih to učinio, iako to ne bi bilo nemoguće učiniti 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 vam dopuštamo pristup nozi sa stražnje strane kako biste mogli lemiti na mikročip, na poleđini možete montirati i MDBT42Q koristeći malo ljepila. S prednje strane morat ćete dodati toliko pjene kako bi tipke malo poskakivale kada ih pritisnete, a možete koristiti i opruge
Dugmad od 9 mm trebaju logotip ili boju, gravuru ili nešto drugo da pokažu šta dugme šta radi
Poluga/ručka će morati biti slojevita, upotrijebio sam tiplu od 6 mm kako bih im pomogao u poravnanju u svim ispravnim položajima
Preporučuje se:
Bluetooth daljinski upravljač za paljenje vatrometa: 6 koraka (sa slikama)
Daljinski Bluetooth upaljač za vatromet: Ne bi li bilo lijepo upaliti više vatrometa u isto vrijeme? Ili čak imati sigurnu udaljenost do opasnijih eksploziva. U ovom projektu ću vam pokazati kako izgraditi sklop koji to može učiniti uz pomoć Bluetooth funkcije
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 dugmeta na daljinskom upravljaču televizora. Hajde da počnemo
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 tipke 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 osjećaj " svijeta sutrašnjice " predstavljeni smo u proizvodima naučne fantastike i koncepta sredinom stoljeća. U redu, 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čunare Video player: 6 koraka
Video daljinski upravljač za malu djecu za PC Video player: Izrađujem daljinski upravljač koji se povezuje s računarom putem USB -a. Veliki daljinski upravljač omogućuje mom djetetu odabir i reprodukciju videozapisa na starom računaru. Ovo je relativno jednostavan projekt. Osnovna komponenta je ili USB tastatura ili bežična USB tastatura. Zatim