Innholdsfortegnelse:
Video: Tre Bluetooth -fjernkontroll for Lego Duplo Train: 3 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Barna mine elsket dette lille Lego Duplo -toget, spesielt min yngste som sliter med å kommunisere seg selv med ord, så jeg ville bygge henne noe som ville hjelpe henne å leke med toget uavhengig av voksne eller telefoner/nettbrett. Noe som ville tilføre toget en ekstra dimensjon og gi den ekstra spillverdi
Lego -settet har allerede få måter å kontrollere toget på, du kan skyve det fremover for å starte og holde det for å stoppe det, du kan kontrollere det ved hjelp av fargemerker som går på sporet, så når toget passerer det over det utløser forskjellige handlinger dvs. forover, bakover, spillelyder slår på lysene. Du kan også laste ned en app for telefonen eller nettbrettet som kan kobles til toget via bluetooth.
Her en fullstendig gjennomgang av toget
Etter å ha jaktet rundt på internett fant jeg ut at det var ganske få forskjellige mennesker som hadde klar kode for å kontrollere toget. 'Poweredup'-noden skrevet av nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) så ut som en perfekt start. Den ble skrevet ved hjelp av Javascript som jeg ikke var delvis kjent med, men tenkte om jeg kunne finne java -basert mikrochip, ville dette være en god start.
Igjen etter å ha jaktet rundt på internett igjen fant jeg espruino -systemet, dette ligner på ardiuno, men basen rundt javascript. Espriuno -koden kan lastes på en MDBT42Q mircochip som har innebygd bluetooth. Jeg trodde at hvis jeg kunne laste den "oppstartede" modulen til den, ville jeg være halvveis der, men dette enkle var ikke tilfellet, og modulen inneholdt for mange store biblioteker for å laste på MDBT42Q, så det ser ut til at jeg må finn en enklere løsning ….
Trinn 1: Koden
Esprinuo
For de som ikke kjenner Espruino -plattformen https://www.espruino.com (og det gjorde jeg ikke) er den veldig lik Arduinoen. Det er noen få hovedforskjeller den skrev for javascript heller c, Det føles litt nyere så det er eksempler, men støtten via forumene er stor og veldig nyttig.
Javascript møter toget
Den første hindringen var å koble til toget via bluetooth. Dette kan gjøres ved hjelp av NRF -klassen som leveres med i espruino -koden.
NRF.connect kan brukes til å koble til toget, men ditt første behov for å finne adressen til selve toget, du kan bruke NRF.findDevices for å få denne informasjonen
Når du har gjort dette må du sende toget to verdi for håndtrykk med toget, for toget mitt var dette "00001623-1212-efde-1623-785feabcd123" etterfulgt av "00001624-1212-efde-1623-785feabcd123" tror jeg dette vil være det samme for alle damptogene, men de andre versjonene, dvs. lastesettet, kan være annerledes
Når du har dette kan du koble til toget ved hjelp av funksjonen som følgende. Kan du fortelle når toget har forbindelse, da det vil blinke, lyktene blå
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Deretter (funksjon (g) {
console.log ("Starter tilkobling2"); gatt = g; retur gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). deretter (funksjon (service) {retur service.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}). deretter (funksjon (karakter) {Characteristic_store = karakteristisk; returkarakteristikk.readValue ();}).then (verdi => {console.log (verdi);}). deretter (function () {console.log ("Train Connected"); tilkoblet = 1;
De morsomme greiene
Nå som du koblet til toget, er det på tide med alt det morsomme som å flytte det fremover, lage lyd og slå lyset av og på. Det er en enkel jobb å sende toget en prep -verdi, etterfulgt av den faktiske kommandoen dvs.
funksjon play_horn () {
console.log ("melding =", 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 må kanskje grave litt rundt for å finne en annen kommando enn de jeg brukte
Knapper og spaker
Den fysiske siden av fjernkontrollen er veldig rett frem fire knapper (for å spille lyder, slå lysene på og av) og ett potensiometer som er koblet til spaken, slik at du kan kontrollere hastigheten og retningen på toget
Knappen trenger ikke trekke opp motstand i stedet kan du gjøre dette i kode, dvs.
pinMode (D15, 'input_pulldown');
Du kan koble potensiometeret til en av inngangene og deretter lese det analoge signalet ved å bruke følgende kommando
var lesing = analogRead (D31);
Den andre forskjellen til arduinoen er at esprunio ikke har et oppsett og loop. Så i stedet plasserer jeg alle separate kommandoer/utløsere i funksjoner og setter deretter opp setInterval som sløyfer hvert 100 millisekund, lytter til knappen og kjører deretter den nødvendige funksjonen når knappen har blitt trykket.
if (digitalRead (D15) == 1) {play_horn (); }
Handlingen av spaken var litt mer komplisert da jeg ønsket å kunne justere hastigheten trinnvis, så først måtte jeg sende den analoge verdien for å fungere
var lesing = analogRead (D31);
train_direction (lesing * 1024);
Så i train_direction -funksjonen brøt jeg ned kommandoen til 6 forskjellige trinn basert på pot -verdien
Helt opp, forteller toget å gå full fart fremover
Halvveis opp, forteller toget å gå fremover med 50% hastighet
Midt, forteller toget å stoppe
Halvveis ned, forteller toget å gå bakover med 50% hastighet
Helt ned, forteller toget å gå full fart i revers
dvs
funksjon 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]); 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);}); }
Hele koden kan være nede for lenken nedenfor
Trinn 2: Kabling
Ledningen var den enkleste delen
Den besto bare av 4 trykknapper som er koblet til D15, D16, D17 og D18 uten noen trekkmotstand, siden dette ble gjort i koden og 1 10k motstand koblet til D31
Jeg jobber fortsatt med strømforsyningen, men for øyeblikket kommer all strøm fra et mikro -usb -utbrudd, og dette kan kobles direkte til en strømbank eller en USB -port
Trinn 3: Bygget
Fjernkontrollen er stort sett av 3 mm, 6 mm eller 9 mm A4 -ark med kryssfiner. De ble kuttet på CNC -maskinen min, men ved å bruke malen forutsatt at jeg ville tro om det ikke ville være umulig å gjøre for hånd
Jeg håper at malen og bildene gir deg alt du trenger for å lage på nytt, men det er få notater som kan hjelpe
3 mm trykknappfeste er for å holde trykknappen på, gapet plasserer knappen på riktig sted, men vi gir deg tilgang til beinet på baksiden slik at du kan lodde til mikrochippen, på baksiden kan du også montere MDBT42Q bruker litt lim. På forsiden må du legge til så skum, slik at det gir knappene et lite sprett når du trykker dem ned, du kan også bruke fjærer
9 mm knapper trenger logoen enten maling, gravering eller noe annet som viser hvilken knapp som gjør hva
Spaken/håndtaket må legges i lag, jeg brukte en 6 mm plugg for å hjelpe dem med å justere dem i alle riktige posisjoner
Anbefalt:
Switch-Adapt Toys: a Steam Train Toy Made Accessible !: 7 trinn (med bilder)
Switch-Adapt Toys: a Steam Train Toy Made Accessible !: Leketilpasning åpner for nye veier og tilpassede løsninger for å la barn med begrensede motoriske evner eller utviklingshemming samhandle med leker uavhengig av hverandre. I mange tilfeller klarer ikke barna som trenger de tilpassede lekene
Steampunk Train: 5 trinn (med bilder)
Steampunk Train: Jeg var så heldig å motta en brukt rullestolbase fra en venn. Jeg trengte å bytte begge batteriene for å få det til å fungere, men det var en liten pris å betale for en så allsidig propellbyggingsplattform. Jeg bestemte meg for
DIY tre Bluetooth -høyttaler: 8 trinn (med bilder)
DIY Bluetooth -høyttaler av tre: Det er tusenvis av versjoner av dette prosjektet på internett allerede. Hvorfor lager jeg en? Fordi jeg vil :) Jeg har min egen visjon om en perfekt Bluetooth -høyttaler (perfekt for meg), og jeg vil gjerne vise deg design- og byggeprosessen min! Også
Tre-, Bluetooth- og RGB -lysdioder !: 6 trinn (med bilder)
Wood, Bluetooth og RGB LED !: Min svoger er stort sett den største fanen av Game of Thrones som har vandret på planeten. Han kjøpte sitt første hus under Thanksgiving i fjor. Mens han hjalp ham med å flytte inn, fortalte han meg at han kalte boet sitt 'Winterfell' etter familiens
USB -drevet brenner! Dette prosjektet kan brenne gjennom plast / tre / papir (morsomt prosjekt må også være veldig fint tre): 3 trinn
USB -drevet brenner! Dette prosjektet kan brenne gjennom plast / tre / papir (morsomt prosjekt må også være veldig fint tre): IKKE GJØR DETTE MED USBEN !!!! Jeg fant ut at det kan skade datamaskinen din fra alle kommentarene. datamaskinen min har det bra. Bruk en 600ma 5v telefonlader. jeg brukte dette, og det fungerer fint, og ingenting kan bli skadet hvis du bruker en sikkerhetsplugg for å stoppe strømmen