Indholdsfortegnelse:
Video: Træ Bluetooth -fjernbetjening til Lego Duplo Train: 3 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Mine børn elskede dette lille Lego Duplo -tog især min yngste, der kæmper for at kommunikere sig selv med ord, så jeg ville bygge hende noget, der ville hjælpe hende med at lege med toget uafhængigt af voksne eller telefoner/tablets. Noget, der ville tilføre toget en ekstra dimension og give den ekstra legeværdi
Lego -sættet har allerede få måder at styre toget på, du kan skubbe det fremad for at starte og holde det for at stoppe det, du kan styre det ved hjælp af farvekoder, der går på sporet, så når toget passerer det over det udløser forskellige handlinger dvs. frem, tilbage, afspilning lyde tænde lyset. Du kan også downloade en app til din telefon eller tablet, der kan oprette forbindelse til toget via bluetooth.
Her en fuld anmeldelse af toget
Efter jagt rundt på internettet fandt jeg ud af, at der var ganske få forskellige mennesker, der alle havde klar skrevet kode til at styre toget. 'Poweredup'-noden skrevet af nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) lignede en perfekt start, den blev skrevet ved hjælp af Javascript, som jeg ikke var delvist bekendt med, men tænkte, hvis jeg kunne finde java -baseret mikrochip, ville dette være en god start.
Igen efter at have jagtet rundt på internettet igen fandt jeg espruino -systemet, dette ligner ardiuno, men baserer sig omkring javascript. Espriuno -koden kunne indlæses på en MDBT42Q mircochip, der havde Bluetooth -indlejring. Jeg tænkte, at hvis jeg kunne indlæse det "tændte" modul til det, ville jeg være halvvejs der, men dette enkle var ikke tilfældet, og modulet indeholdt for mange store biblioteker at indlæse på MDBT42Q, så det ser ud til, at jeg er nødt til at finde en enklere løsning ….
Trin 1: Koden
Esprinuo
For dem, der ikke kender Espruino -platformen https://www.espruino.com (og det gjorde jeg ikke) er den meget lig Arduinoen. Der er et par hovedforskelle, den skrev til javascript snarere c, Det føles lidt nyere så der er eksempler, men understøttelsen via fora er stor og meget nyttig.
Javascript møder toget
Den første forhindring var at oprette forbindelse til toget via bluetooth, Dette kan gøres ved hjælp af NRF -klassen, der leveres med i espruino -koden.
NRF.connect kan bruges til at oprette forbindelse til toget, men dit første behov for at finde selve togets adresse, du kan bruge NRF.findDevices til at få disse oplysninger
Når du har gjort dette, skal du derefter sende toget to værdier til håndtryk med toget, for mit tog var dette "00001623-1212-efde-1623-785feabcd123" efterfulgt af "00001624-1212-efde-1623-785feabcd123" tror jeg dette vil være det samme for alle damptogene, men de andre versioner, dvs. lastsættet, kan være anderledes
Når du har dette, kan du forbinde toget ved hjælp af funktion som følgende, kan du fortælle, hvornår toget har forbindelse, da det vil blinke, forlygterne er blå
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Derefter (funktion (g) {
console.log ("Start af forbindelse2"); gatt = g; return gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). derefter (funktion (service) {return service.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}). derefter (funktion (karakter) {Characteristic_store = karakteristisk; returkarakteristik.readValue ();}).then (værdi => {console.log (værdi);}). derefter (funktion () {console.log ("Train Connected"); forbundet = 1;
De sjove ting
Nu du har forbindelse til toget, er det tid til alle de sjove ting som at flytte det fremad, lave lyd og tænde og slukke lyset. Det er enkelt at sende toget en prep -værdi, efterfulgt af den egentlige kommando dvs.
funktion play_horn () {
console.log ("message =", Characteristic_store); const prepval = ny Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = ny Uint8Array ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Characteristic_store.writeValue (prepval).then (_ => {Characteristic_store.writeValue (sendvalue);}); }
Du skal muligvis grave lidt rundt for at finde en anden kommando end dem, jeg brugte
Knapper og håndtag
Den fysiske side af fjernbetjeningen er meget lige fremad fire knapper (for at afspille lyde, tænde og slukke lyset) og et potentiometer, der er forbundet til håndtaget, så du kan styre hastigheden og retningen af toget
Knappen behøver ikke pull up -modstand i stedet for du kan gøre dette i kode, dvs.
pinMode (D15, 'input_pulldown');
Du kan slutte potentiometeret til en af indgangene og derefter læse det analoge signal ved hjælp af følgende kommando
var læsning = analogRead (D31);
Den anden forskel til arduino er, at esprunio ikke har en opsætning og loop. Så i stedet placerer jeg alle de separate kommandoer/udløsere i funktioner og konfigurerer derefter setInterval, der går i loop hver 100 millisekund, lytter til knappen og kører derefter den nødvendige funktion, når der er trykket på knappen.
hvis (digitalRead (D15) == 1) {play_horn (); }
Handlingen af håndtaget var lidt mere kompliceret, da jeg ønskede at kunne justere hastigheden trinvist, så først måtte jeg sende den analoge værdi for at fungere
var læsning = analogRead (D31);
train_direction (læsning * 1024);
Så i funktionen train_direction nedbrød jeg kommandoen til 6 forskellige trin baseret på potværdien
Helt op, fortæller toget at køre fuld fart frem
Halvvejs op, fortæller toget at køre fremad med 50% hastighed
Midt, fortæller toget at stoppe
Halvvejs ned fortæller toget at gå baglæns med 50% hastighed
Helt ned, fortæller toget at køre fuld fart i bakgear
dvs.
funktion train_direction (dir_val) {
//console.log("message = ", Characteristic_store); const prepval = ny Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = ny Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x00]); hvis (dir_val> 300 && dir_val 400 && dir_val 500) {const sendvalue = ny Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x64]); } hvis (dir_val 200) {const sendvalue = ny Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xe2]); } hvis (dir_val 100) {const sendvalue = ny Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xce]); } if (dir_val {Characteristic_store.writeValue (sendvalue);}); }
Den fulde kode kan være nede for nedenstående link
Trin 2: Ledningerne
Ledningerne var den enkleste del
Den bestod bare af 4 trykknapper tilsluttet D15, D16, D17 og D18 uden en eventuel pull -up -modstand, da dette blev gjort i koden og 1 10k -modstand tilsluttet D31
Jeg arbejder stadig på strømforsyningen, men i øjeblikket kommer al strømmen fra et mikro -usb -breakout, og dette kan være forbundet direkte til en powerbank eller en USB -port
Trin 3: Bygningen
Fjernbetjeningen er for det meste ud af 3 mm, 6 mm eller 9 mm A4 ark krydsfiner, de blev skåret på min CNC -maskine, men ved hjælp af den skabelon, jeg ville, selvom det ikke ville være umuligt at gøre i hånden
Jeg håber, at skabelonen og billederne vil give dig alt hvad du behøver for at lave om, men der er få noter, der kan hjælpe
3 mm trykknapfæstet er til at sætte trykknappen på, mellemrummet vil placere knappen på det rigtige sted, men vi giver dig adgang til benet på bagsiden, så du kan lodde til mikrochippen, på bagsiden kan du også montere MDBT42Q ved hjælp af lidt lim. På forsiden skal du tilføje så skum, så det giver knapperne et lille hopp, når du trykker dem ned, du kan også bruge fjedre
9 mm knapper skal bruge logoets enten maling, gravering eller noget andet, der viser, hvilken knap der gør hvad
Håndtaget/håndtaget skal lagres i lag, jeg brugte en 6 mm dybel til at hjælpe med at justere dem i alle de korrekte positioner
Anbefalede:
DIY træ Bluetooth -højttaler: 8 trin (med billeder)
DIY træ Bluetooth -højttaler: Der er allerede tusinder af versioner af dette projekt på internettet. Hvorfor laver jeg en? Fordi jeg vil :) Jeg har min egen vision om en perfekt Bluetooth -højttaler (perfekt til mig), og jeg vil gerne vise dig mit design og bygge proces! Også
Skærmramme til bærbar skærm i træ: 6 trin (med billeder)
Skærmsramme i træ til bærbar computer: Da min gamle bærbare computer endelig døde, ville jeg ikke have, at alle de perfekt funktionelle komponenter fyldte en losseplads. Derfor bjærgede jeg LCD-panelet og byggede en enkel træramme til at holde den til brug som en stand-alone skærm. Jeg har designet dette produkt
Sådan bruges et par stykker træ til at samle sig til en sød og kraftfuld trærobotarm: 10 trin
Sådan bruges et par stykker træ til at samles i en sød og kraftig trærobotarm: Robotarmen hedder WoodenArm. Det ser meget sødt ud! Hvis du vil have flere detaljer om WoodenArm, kan du se www.lewansoul.com Nu kan vi lave en introduktion om WoodenArm, lad os komme videre
Træ-, Bluetooth- og RGB -lysdioder !: 6 trin (med billeder)
Træ, Bluetooth og RGB LED'er !: Min svoger er stort set den største fan af Game of Thrones, der har vandret på planeten. Han købte sit første hus under Thanksgiving sidste år. Mens han hjalp ham med at flytte ind, fortalte han mig, at han kaldte sin ejendom 'Winterfell' efter familiens
USB -drevet brænder! Dette projekt kan brænde igennem plastik / træ / papir (sjovt projekt skal også være meget fint træ): 3 trin
USB -drevet brænder! Dette projekt kan brænde igennem plastik / træ / papir (sjovt projekt skal også være meget fint træ): GØR IKKE DETTE MED USB !!!! Jeg fandt ud af, at det kan beskadige din computer fra alle kommentarerne. min computer har det fint. Brug en 600ma 5v telefonoplader. jeg brugte dette, og det fungerer fint, og intet kan blive beskadiget, hvis du bruger et sikkerhedsstik til at stoppe strømmen