Sisukord:
Video: Puidust Bluetooth -kaugjuhtimispult Lego Duplo rongile: 3 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Minu lastele meeldis see väike Lego Duplo rong, eriti minu noorim, kellel on raske end sõnadega suhelda, nii et ma tahtsin talle ehitada midagi, mis aitaks tal rongiga mängida, sõltumata täiskasvanutest või telefonidest/tahvelarvutitest. Midagi, mis annaks rongile lisamõõtme ja annaks sellele täiendavat mänguväärtust
Legokomplektil on rongi juhtimiseks juba vähe võimalusi, saate selle käivitamiseks ettepoole lükata ja peatamiseks hoida, saate seda juhtida rajal olevate värviliste siltide abil, nii et kui rong sellest üle sõidab, käivitab see erinevaid toiminguid, st edasi, tagasi, esitushelid lülitavad tuled sisse. Samuti saate oma telefoni või tahvelarvutisse alla laadida rakenduse, millega saab rongiga Bluetoothi kaudu ühenduse luua.
Siin on täielik ülevaade rongist
Pärast internetis jahtimist leidsin, et seal oli üsna vähe erinevaid inimesi, kellel oli rongi juhtimiseks valmis kood. Nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) kirjutatud sõlm „Poweredup” nägi välja nagu täiuslik algus, see oli kirjutatud Javascripti abil, millega ma polnud osaliselt tuttav, kuid arvasin, et võiks leida java -põhise mikrokiibi, see oleks hea algus.
Jälle pärast internetis jahtimist leidsin uuesti espruino süsteemi, see on sarnane ardiunoga, kuid põhineb javascriptil. Espriuno koodi saab laadida MDBT42Q mircochipile, millel oli Bluetooth -manustamine. Ma arvasin, et kui saaksin sinna sisse laadida "sisselülitatud" mooduli, oleksin poolel teel, kuid see ei olnud nii lihtne, kui see moodul sisaldas MDBT42Q laadimiseks palju raamatukogusid, nii et tundub, et pean leidke lihtsam lahendus …
Samm: kood
Esprinuo
Neile, kes ei tea Espruino platvormi https://www.espruino.com (ja ma ei teadnud), kas see on Arduinoga väga sarnane, seal on mõned peamised erinevused, mille ta kirjutas pigem JavaScripti jaoks, vaid tundub pisut uuem nii et pole näiteid, kuid foorumite kaudu saadav tugi on suurepärane ja väga kasulik.
Javascript kohtub rongiga
Esimene takistus oli ühendada rongiga Bluetoothi kaudu. Seda saab teha kasutades NRF -klassi, mis saadetakse espruino koodiga.
NRF.connecti saab kasutada rongiga ühenduse loomiseks, kuid kui teil on esmalt vaja leida rongi aadress, saate selle teabe hankimiseks kasutada NRF.findDevices
Kui olete seda teinud, peate saatma rongile kaks väärtust rongiga käepigistusele, minu rongi jaoks oli see "00001623-1212-efde-1623-785feabcd123", millele järgnes "00001624-1212-efde-1623-785feabcd123" see on kõigi aururongide komplekti puhul sama, kuid teised versioonid, st kaubakomplekt, võivad olla erinevad
Kui see on olemas, saate rongi ühendada järgmise funktsiooni abil, kas saate öelda, millal rong on ühendatud, kuna see vilgutab esituled siniselt
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Siis (funktsioon (g) {
console.log ("Ühendamise alustamine2"); gatt = g; return gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). then (function (service) {return service.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}). then (function (iseloomustus) {Characteristic_store = iseloomustus; return iseloomustus.readValue ();}). then (value => {console.log (value);}). then (function () {console.log ("Train Connected"); connected = 1;
Lõbusad asjad
Nüüd, kui olete rongiga ühenduses, on aeg tegeleda kõigi lõbusate asjadega, nagu selle edasiliikumine, heli tegemine ning tule sisse- ja väljalülitamine. See on lihtne ülesanne saata rongile ettevalmistav väärtus, millele järgneb tegelik käsk st
funktsioon play_horn () {
console.log ("message =", Characteristic_store); const prepval = uus Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = uus Uint8Array ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Characteristic_store.writeValue (prepval). Then (_ => {Characteristic_store.writeValue (sendvalue);}); }
Teil võib tekkida vajadus natuke kaevata, et leida muid käske kui need, mida ma kasutasin
Nupud ja kangid
Kaugjuhtimispuldi füüsiline külg on väga sirgelt neli nuppu (helide esitamiseks lülitage tuled sisse ja välja) ja üks potentsiomeeter, mis on ühendatud hoovaga, et saaksite rongi kiirust ja suunda juhtida
Nupp ei vaja tõmbetakistust, selle asemel saate seda teha koodis, st
pinMode (D15, 'input_pulldown');
Saate ühendada potentsiomeetri ühe sisendiga ja seejärel lugeda seda analoogsignaali kasutades järgmist käsku
var lugemine = analogRead (D31);
Teine erinevus arduinoga on see, et esprunio'l pole seadistust ja tsüklit. Selle asemel paigutan kõik eraldi käsud/käivitajad funktsioonidesse ja seadistan seejärel setInterval, mis kordub iga 100 millisekundi järel, kuulan nuppu ja käivitan seejärel nupu vajutamisel vajaliku funktsiooni.
if (digitalRead (D15) == 1) {play_horn (); }
Kangi kasutamine oli pisut keerulisem, kuna tahtsin kiirust järk -järgult reguleerida, nii et kõigepealt pidin analoogväärtuse tööle saatma
var lugemine = analogRead (D31);
train_direction (näit * 1024);
Siis funktsioonis train_direction jagasin käsu 6 erinevaks sammuks, lähtudes potti väärtusest
Kogu tee üles ütleb rongile täie kiirusega edasi
Poolel teel ütleb rong 50% kiirusega edasi
Keskel, käsib rongil peatuda
Poolel teel käsib rong 50% kiirusega tagurpidi sõita
Kogu tee alla ütleb rongile tagurpidi täie kiiruse
st
funktsioon train_direction (dir_val) {
//console.log("message = ", Characteristic_store); const prepval = uus Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = uus 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 {Characteristic_store.writeValue (sendvalue);}); }
Alloleva lingi täielik kood on saadaval
Samm: juhtmestik
Juhtmestik oli lihtsaim osa
See koosnes lihtsalt 4 -st nupust, mis olid ühendatud D15, D16, D17 ja D18 -ga ilma tõmmatava takistuseta, nagu seda tehti koodis ja 1 10k takisti, mis oli ühendatud D31 -ga
Töötan endiselt toiteallika kallal, kuid praegu saab kogu toite mikro -usb -katkestuse ja see võib olla ühendatud otse toitepanga või USB -pordiga
3. samm: ehitamine
Kaugjuhtimispult on enamasti valmistatud 3 mm, 6 mm või 9 mm A4 vineerist, need lõigati minu CNC -masinal, kuid kasutades selleks ettenähtud malli, kuigi seda poleks võimatu käsitsi teha
Loodan, et mall ja fotod annavad teile kõik, mida peate uuesti tegema, kuid mõned märkused, mis võivad aidata
3 mm vajutusnupu kinnitus on nupule kinnitamiseks, tühimik paigutab nupu õigesse kohta, kuid võimaldame teil pääseda tagaküljel olevale jalale, et saaksite mikrokiibile jootma panna, tagurpidi saate paigaldada ka MDBT42Q kasutades mõnda liimi. Esiküljel peate lisama nii palju vahtu, et see annaks nuppudele veidi põrkuda, kui neid alla vajutate, võite kasutada ka vedrusid
9 mm nupud vajavad logo värvi, graveeringut või midagi muud, mis näitab, milline nupp mida teeb
Hoob/käepide tuleb kihiti üles panna, ma kasutasin 6 mm tüüblit, et aidata neid kõik õiges asendis joondada
Soovitan:
Puidust LED -mängude ekraan, mida toetab Raspberry Pi Zero: 11 sammu (koos piltidega)
Puidust LED -mängukuva Powered by Raspberry Pi Zero: See projekt realiseerib 20x10 pikslise WS2812 -põhise LED -ekraani suurusega 78x35 cm, mida saab hõlpsasti elutuppa paigaldada, et mängida retromänge. Selle maatriksi esimene versioon ehitati 2016. aastal ja selle ehitasid ümber paljud teised inimesed. See näide
Kriimustatud puidust nihkega satelliitantenn: 11 sammu (piltidega)
Kriimustatud puidust nihkega satelliiditaldrik: olin kohanud mõnda veebisaiti, kus mitu inimest ehitasid oma esmatähtsad satelliitantennid, üks Austraalia mees ehitas isegi tohutu 13 -meetrise nihke tassi. Mis vahe on? Põhitähelepanu on see, millele mõtlete, kui keegi ütleb: „satelliididisain
Puidust plaadimängija: 20 sammu (piltidega)
Puidust plaadimängija: Tahtsin demonstreerida, kuidas teabe salvestusseadmed töötavad, ehitades suuremahulise plaadimängimismasina. Selle asemel, et tugineda kergetele häiretele nagu CD-mängijad, mängib minu ehitatud seade puust aukudega ja " aukudeta " (nagu
DIY puidust Bluetooth -kõlar: 8 sammu (piltidega)
DIY puidust Bluetooth -kõlar: Internetis on selle projekti tuhandeid versioone. Miks ma ühe teen? Sest ma tahan :) Mul on oma nägemus täiuslikust Bluetooth -kõlarist (minu jaoks ideaalne) ja tahaksin teile näidata oma disaini- ja ehitusprotsessi! Samuti
Pisike puidust arvutikott: 3 sammu (piltidega)
Pisike puidust arvutikott: selles juhendis näitan teile, kuidas ma ehitasin oma väga väikese puidust arvutikorpuse väga lihtsalt. Ainus asi, mida vajate:-käsisae pliiats ja joonlauaga vaba aeg-dremel ja puur-ATX toiteplokk (kasutatakse metallist pa