Përmbajtje:
Video: Telekomandë prej druri Bluetooth për Lego Duplo Train: 3 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:14
Fëmijët e mi e pëlqyen këtë tren të vogël Lego Duplo veçanërisht më të voglin tim i cili lufton të komunikojë me fjalët, kështu që unë doja t’i ndërtoja asaj diçka që do ta ndihmonte të luante me trenin pavarësisht nga të rriturit ose telefonat/tabletët. Diçka që do t'i shtonte një dimension shtesë trenit dhe do t'i jepte vlerë shtesë të lojës
Kompleti Lego tashmë ka pak mënyra për të kontrolluar trenin, ju mund ta shtyni përpara për ta nisur dhe mbajtur atë për ta ndaluar atë, mund ta kontrolloni duke përdorur etiketat e ngjyrave që shkojnë në binarë, kështu që kur treni ta kalojë mbi të shkakton veprime të ndryshme dmth. përpara, prapa, luani tinguj ndizni dritat. Ju gjithashtu mund të shkarkoni një aplikacion për telefonin ose tabletin tuaj që mund të lidhet me trenin përmes bluetooth.
Këtu është një përmbledhje e plotë e trenit
Pas gjuetisë në internet, gjeta se kishte shumë pak njerëz të ndryshëm që kishin të gjithë kodin gati të shkruar për të kontrolluar trenin. Nyja "Poweredup" e shkruar nga nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) dukej si një fillim i përsosur, u shkrua duke përdorur Javascript të cilin nuk e njihja pjesërisht, por mendova nëse mund të gjeni mikroçip me bazë java, ky do të ishte një fillim i mirë.
Përsëri pas gjuetisë në internet përsëri gjeta sistemin espruino, ky është i ngjashëm me ardiuno, por baza rreth javascript. Kodi espriuno mund të ngarkohet në një mircochip MDBT42Q që kishte integruar bluetooth. Mendova se nëse do të mund ta ngarkoja modulin "të ndezur" në të, do të isha në gjysmë të rrugës atje, megjithatë kjo nuk ishte e thjeshtë, një modul që përmbante shumë biblioteka për të ngarkuar në MDBT42Q, kështu që duket se më duhet gjeni një zgjidhje më të thjeshtë…
Hapi 1: Kodi
Esprinuo
Për ata që nuk e njohin platformën Espruino https://www.espruino.com (dhe nuk e dija) a është shumë e ngjashme me Arduino -n, Ka disa ndryshime kryesore, të cilat i ka shkruar për javascript në vend të c, Ndihet pak më e re kështu që të mos ketë shembuj sidoqoftë mbështetja përmes forumeve është e madhe dhe shumë e dobishme.
Javascript takoni trenin
Pengesa e parë ishte lidhja me trenin nëpërmjet bluetooth -it, kjo mund të bëhet duke përdorur klasën NRF që dërgohet me kodin espruino.
NRF.connect mund të përdoret për t'u lidhur me trenin megjithatë nevoja juaj e parë për të gjetur adresën e trenit në vetvete, mund të përdorni NRF.findDevices për të marrë këtë informacion
Pasi ta keni bërë këtë, atëherë duhet të dërgoni trenin me dy vlera për shtrëngimin e dorës me trenin, për trenin tim kjo ishte "00001623-1212-efde-1623-785feabcd123" e ndjekur nga "00001624-1212-efde-1623-785feabcd123" besoj kjo do të jetë e njëjtë për të gjithë trenat me avull të vendosur, por versionet e tjera, domethënë komplete ngarkesash, ndoshta të ndryshme
Pasi ta keni këtë ju mund të lidhni trenin duke përdorur funksionin si më poshtë, a mund të thoni kur treni të lidhet pasi do të ndezë fenerët blu
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Pastaj (funksioni (g) {
console.log ("Fillimi i lidhjes2"); gatt = g; kthehu gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). atëherë (funksioni (shërbimi) {kthimi i shërbimit.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}). pastaj (funksioni (karakteristik) {Characteristic_store = karakteristike; kthehu karakteristikën.readValue ();}) atëherë (vlera => {console.log (vlera);}). pastaj (funksioni () {console.log ("Treni i lidhur"); i lidhur = 1;
Gjërat argëtuese
Tani ju jeni lidhur me trenin është koha për të gjitha gjërat zbavitëse si lëvizja e tij përpara, bërja e zërit dhe ndezja dhe fikja e dritës. Jobshtë punë e thjeshtë t'i dërgosh trenit një vlerë përgatitore, e ndjekur nga komanda aktuale dmth
funksioni play_horn () {
console.log ("mesazh =", Dyqan Karakteristik); const prepval = i ri Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = re Uint8Array ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Characteristic_store.writeValue (prepval).pastaj (_ => {Characteristic_store.writeValue (vlera e dërgimit);}); }
Ju mund të keni nevojë të gërmoni pak për të gjetur komanda të tjera nga ato që kam përdorur
Butonat dhe levat
Ana fizike e telekomandës është shumë e drejtë përpara katër butona (për të luajtur tingujt, ndizni dhe fikni dritat) dhe një potenciometër që lidhet me levën në mënyrë që të kontrolloni shpejtësinë dhe drejtimin e trenit
Butoni nuk ka nevojë për rezistencë tërheqëse, por mund ta bëni këtë në kod, dmth
pinMode (D15, 'input_pulldown');
Ju mund ta lidhni potenciometrin me një nga hyrjet dhe pastaj ta lexoni sinjalin analog duke përdorur komandën e mëposhtme
var leximi = analogRead (D31);
Dallimi tjetër me arduino është se esprunio nuk ka një konfigurim dhe lak. Kështu që në vend të kësaj unë vendos të gjitha komandat/ndezësit e veçantë në funksione dhe pastaj vendos setInterval që lakohet çdo 100 milisekonda, duke dëgjuar butonin dhe më pas ekzekutoj funksionin e kërkuar kur butoni të jetë shtypur.
nëse (digitalRead (D15) == 1) {play_horn (); }
Veprimi i levës ishte pak më i komplikuar pasi doja të isha në gjendje të rregulloja gradualisht shpejtësinë, kështu që së pari më duhej të dërgoja vlerën analoge në funksion
var leximi = analogRead (D31);
drejtimi i trenit (leximi * 1024);
Pastaj në funksionin train_direction e zbërtheva komandën në 6 rritje të ndryshme bazuar në vlerën e tenxhere
Gjatë gjithë rrugës lart, i thotë trenit të ecë përpara me shpejtësi të plotë
Në gjysmë të rrugës lart, i thotë trenit të ecë përpara me 50% shpejtësi
Mesi, i thotë trenit të ndalet
Në gjysmë të rrugës poshtë, i thotë trenit të kthehet mbrapsht me 50% shpejtësi
Gjatë gjithë rrugës poshtë, i thotë trenit të ecë me shpejtësi të plotë në të kundërt
dmth
funksioni train_direction (dir_val) {
//console.log("message = ", Dyqan Karakteristik); const prepval = i ri Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = re 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 (vlera e dërgimit);}); }
Kodi i plotë mund të jetë poshtë për lidhjen më poshtë
Hapi 2: Instalimet
Instalimet elektrike ishin pjesa më e thjeshtë
Ai vetëm përbëhej nga 4 butona shtypi të lidhur me D15, D16, D17 dhe D18 pa ndonjë rezistencë tërheqëse pasi kjo ishte bërë në kod dhe 1 rezistencë 10k e lidhur me D31
Unë jam ende duke punuar në furnizimin me energji, por aktualisht e gjithë fuqia vjen nga një prishje mikro usb dhe kjo mund të lidhet drejtpërdrejt me një bankë energjie ose një port USB
Hapi 3: Ndërtimi
Telekomanda është kryesisht jashtë fletëve të kompensatës 3mm, 6mm ose 9mm A4, ato janë prerë në makinën time CNC megjithatë duke përdorur shabllonin e dhënë, edhe pse nuk do të ishte e pamundur ta bëja me dorë
Unë shpresoj që shablloni dhe fotot do t'ju japin gjithçka që ju nevojitet për të ribërë megjithatë ka disa shënime që mund të ndihmojnë
Montimi i butonit me buton 3mm është për fiksimin e butonit, hendeku do ta pozicionojë butonin në vendin e duhur, por ne ju lejojmë të hyni në këmbën në anën e pasme, në mënyrë që të ngjiteni në mikroçip, në anën e pasme gjithashtu mund të montoni MDBT42Q duke përdorur një zam. Në pjesën e përparme ju do të duhet të shtoni aq shkumë që të japë butonat një kërcim të vogël kur i shtypni poshtë, gjithashtu mund të përdorni burime
Butonat 9mm do të kenë nevojë për ngjyrën e logos, gdhendjen ose diçka tjetër që të tregojnë se çfarë butoni bën çfarë
Leva/Doreza do të duhet të shtresohet, kam përdorur një kunj 6 mm për t'i ndihmuar në rreshtimin e tyre në të gjitha pozicionet e sakta
Recommended:
Pjatë satelitore e kompensuar prej druri e gërvishtur: 11 hapa (me fotografi)
Pjatë satelitore e kompensuar prej druri e gërvishtur: Kisha hasur në disa faqe në internet ku disa njerëz ndërtuan pjatat e tyre kryesore satelitore, një australian madje ndërtoi një pjatë të madhe të kompensuar 13 metra. Qfare eshte dallimi? Fokusi kryesor është ajo për të cilën mendoni kur dikush thotë 'disell satelitor
Altoparlant Bluetooth prej druri DIY: 8 hapa (me fotografi)
Altoparlant druri DIY prej druri: Ka mijëra versione të këtij projekti në internet tashmë. Pse po bëj një? Sepse dua :) Unë kam vizionin tim për një altoparlant të përsosur Bluetooth (i përsosur për mua) dhe do të doja t'ju tregoja procesin e dizajnit dhe ndërtimit tim! Gjithashtu,
Llambë druri Edison prej druri e kontrolluar - (Video): 5 hapa
Llambë druri Edison prej druri e kontrolluar - (Video): Çmimi i pyetjes 5 dollarë. Kjo është sa kushton Wifi Relay SONOFF (Nga kompania ITEAD), e cila është zemra e kësaj pajisjeje. &Quot; Unë nuk kam dështuar. Sapo kam gjetur 10'000 mënyra që nuk do të funksionojnë. &Quot; - Thomas A. Edison Kjo është e pabesueshme, por kohët e fundit,
Altoparlanti druri i bërë në shtëpi prej druri: 6 hapa
Altoparlanti druri i bërë në shtëpi prej druri: Ky është një tjetër altoparlant i amplifikuar Bluetooth i bërë nga unë. Këtë herë ideja është që të prerë me lazer MDF e mbuluar më parë nga një fletë druri për të treguar modelin e bukur të grilës për skajet e lakuara të kutisë së zërit. Kam përdorur një fletë të lehtë imbuia për të
Si të përdorni disa copa druri për t'u mbledhur në një krah robot prej druri të lezetshëm dhe të fuqishëm: 10 hapa
Si të përdorni disa copa druri për t'u mbledhur në një krah robotik prej druri të lezetshëm dhe të fuqishëm: Emri i krahut robot është WoodenArm. Duket shumë bukur! Nëse doni më shumë detaje rreth WoodenArm, ju lutemi referojuni www.lewansoul.com Tani ne mund të bëjmë një hyrje në lidhje me WoodenArm, le të vazhdojmë më tej