Innholdsfortegnelse:
- Trinn 1: Mål
- Trinn 2: Materialer
- Trinn 3: Forkoding: Koble til Micro: Bit
- Trinn 4: Trinn 0: Kodeflyt
- Trinn 5: Trinn 1: Definere variabler
- Trinn 6: Trinn 2: Konverter Tilt -verdier til nivåer
- Trinn 7: Trinn 3: Kompiler tiltnivåer
- Trinn 8: Trinn 4: Skriv LEDPlotList -funksjoner
- Trinn 9: Trinn 5: Plott LED -matrise for hvert tilfelle
- Trinn 10: Trinn 6: Skriv kalibreringsfunksjoner
- Trinn 11: Trinn 7: Skriv tilstandsfunksjon
- Trinn 12: Trinn 8: Sett alt sammen Del 1
- Trinn 13: Trinn 9: Sette det hele sammen Del 2
- Trinn 14: Trinn 10: Montering
- Trinn 15: Kilde
Video: Lag et elektrisk vater: 15 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Bruk dette vannpasset for å raskt og enkelt vise vippen til ethvert objekt som er festet!
Laget av Kaitlyn fra Raffles Institution.
Trinn 1: Mål
Lær å lese tilt med micro: bits innebygde akselerometer.
Lær å jobbe med micro: bits 5x5 LED -skjerm!
Trinn 2: Materialer
1 x BBC micro: bit
1 x mikro -USB -kabel
2 x AA -batterier
1 x dobbelt AA -batteripakke
Trinn 3: Forkoding: Koble til Micro: Bit
- Koble BBC micro: bit til datamaskinen din med en mikro -USB -kabel.
- Få tilgang til javascript -editoren for micro: bit på makecode.microbit.org.
Trinn 4: Trinn 0: Kodeflyt
Før vi begynner å skrive koden, må vi bestemme hva vi vil oppnå med programmet og i hvilken rekkefølge hver komponent skal kjøres.
For det elektriske vateret er trinnene vi tar i koden for hver sløyfe:
- Les tiltavlesninger fra akselerometer.
- Konverter tiltavlesninger til tiltnivåer som skal vises på LED -matrisen.
- Se etter endring i tiltnivåavlesninger fra forrige sløyfe.
- Lag en rekke LED -koordinater for forskjellige vippesaker og retninger.
- Plott LED -koordinater på mikro: bit LED -matrise.
Noen få ekstra funksjoner vi må inkludere er:
- Kalibrering for første tiltposisjon.
- Tilbake til standard tiltkalibrering.
Trinn 5: Trinn 1: Definere variabler
Vi starter med å definere nødvendige variabler som vist. En oversikt over noen få variabler er:
- tiltList: Array som lagrer graden av tilt fra verdiene 0-4 i rekkefølgen [Venstre, Høyre, Forover, Bakover]
- tiltBoundary: Grensen for det første tiltnivået mellom 0 (ingen tilt) og 1 (svak tilt)
- prevState: Array som lagrer tiltverdiene til mikro: bit fra en tidligere sløyfe i samme format som tiltList, brukes til å se etter endring i tilt mellom iterasjoner
- ledPlotList: Plot led -koordinatarrayer i skjemaet (x, y). For å definere en matrise bruker vi typetallet for å indikere et nestet utvalg av variabler av type: number.
Trinn 6: Trinn 2: Konverter Tilt -verdier til nivåer
Siden 5x5 LED -matrisen bare kan vise så mye informasjon, vil de faktiske tiltverdiene ikke være nyttige for visning.
I stedet tar en funksjon tiltExtent () parameteren num, som refererer til tiltverdien fra akselerometeret, og konverterer disse tiltverdiene (num) til tiltnivåer fra 0 til 4.
0 indikerer ingen tilt i gitt retning og 4 indikerer veldig stor tilt, mens -1 returneres når det er en feil.
Her brukes tiltBoundary og tiltSensitivity som grenseverdier mellom tiltnivåer.
Trinn 7: Trinn 3: Kompiler tiltnivåer
De to funksjonene checkRoll () og checkPitch () skriver tiltnivåene som er oppnådd fra tiltExtent () til tiltList for henholdsvis rull (venstre-høyre) og pitch (fremover-bakover) aksene.
Før vi bruker tilt -verdiene, kalibrerer vi dem ved hjelp av en null -verdi for både pitch (zeroPitch) og roll (zeroRoll) hentet fra en kalibreringsfunksjon skrevet senere.
Ettersom akselerometeravlesningene er negative for både venstre og forover tilt, må vi bruke Math.abs () -funksjonen for å få modulen til den negative verdien som skal gis til tiltExtent () -funksjonen som en parameter for disse to retningene.
Trinn 8: Trinn 4: Skriv LEDPlotList -funksjoner
Etter å ha oppnådd tiltnivåene i tiltList kan vi nå skrive ledningsplottingsfunksjonene for de forskjellige tilfellene som kan oppstå, nemlig
- plotSingle (): Vipp bare i en enkelt retning, og ta omfanget av tilt i gitt retning som parameter.
- plotDiagonal (): Vipp i to retninger av samme størrelse, og ta omfanget av tilt i begge retninger som parameter.
- plotUnqual (): Vipp i to retninger av forskjellige størrelser, og ta omfanget av tilt i hver retning som parameter. Bruker plotDiagonal () først og legger til ledPlotList -arrayet etterpå.
Disse plottingsfunksjonene skriver en rekke ledede koordinater til ledPlotList som skal plottes senere.
Trinn 9: Trinn 5: Plott LED -matrise for hvert tilfelle
Ved å bruke plottefunksjonene fra de tre tilfellene i trinn 4, kan vi nå plotte den faktiske LED -matrisen for de forskjellige mulige kombinasjonene av tiltnivåer. Siden de tre funksjonene i trinn 4 ikke skiller retning, må vi justere koordinatverdiene som sendes til LED -matrisen for å plotte lysdiodene i riktig retning.
PlotResult () inneholder flere if -betingelser som kontrollerer typen tilt og plotter LED -matrisen tilsvarende ved hjelp av led.plot (x, y). De mulige kombinasjonene av tilt er:
Enkeltretning: Bare venstre eller høyre
Enkeltretning: Bare fremover eller bare bakover
To retninger: Forover-venstre eller Bakover-venstre
To retninger: Forover-høyre eller Bakover-høyre
Merk: For vipping i to retninger kan hver kombinasjon ha samme eller forskjellig størrelse (sjekket ved å sammenligne maxX og maxY), og dermed plottet med henholdsvis plotDiagonal () eller plotUnequal ().
Trinn 10: Trinn 6: Skriv kalibreringsfunksjoner
Etter å ha fullført hoveddelen av koden, legger vi nå til funksjonene calibTilt () og resetTilt ().
calibTilt () lar brukerne tare tilt til null ved mikro: bitens nåværende posisjon
resetTilt () tilbakestiller kalibreringen av kortet til sin opprinnelige tilstand.
Trinn 11: Trinn 7: Skriv tilstandsfunksjon
Vi legger til en enkel funksjon checkState () for å sjekke om tiltnivåene har endret seg fra en tidligere iterasjon.
Hvis det ikke er noen endring i tiltnivåer fra en tidligere iterasjon, dvs. stateChange == 0, kan vi gå direkte til neste iterasjon og hoppe over plottet av LED -matrisen, noe som reduserer beregningen som er nødvendig.
Trinn 12: Trinn 8: Sett alt sammen Del 1
Nå kan vi endelig plassere alle nødvendige funksjoner i micro: bits uendelige sløyfe for å kjøre den gjentatte ganger.
For det første setter vi knapp A og B på micro: bit til henholdsvis calibTilt () og resetTilt () funksjonene ved å bruke input.onButtonPressed (), og plotter et kryss på LED -matrisen når kalibreringen er fullført.
Trinn 13: Trinn 9: Sette det hele sammen Del 2
Kjør deretter de nødvendige funksjonene i henhold til vår kodeflyt i trinn 0 og se etter en tilstandsendring (noe som betyr at det har en endring i tilt av micro: bit siden den siste iterasjonen).
Hvis det er en endring i tiltnivåer, dvs. stateChange == 1, vil koden oppdatere prevState til de nye tiltnivåene og sette stateChange tilbake til 0 for neste iterasjon, og plotte de oppdaterte tiltnivåene på LED -matrisen ved hjelp av PlotResult ().
Trinn 14: Trinn 10: Montering
Flash den fullførte koden til din micro: bit.
Fest din micro: bit og batteripakken godt til ethvert objekt, og den er klar til bruk!
Rått
Ha det gøy med ditt elektriske vater! Og mens du er i gang, hvorfor ikke prøve å utvide mulighetene til tilt -sensoren eller til og med gjøre den til et spill?
Denne artikkelen er fra TINKERCADEMY.
Trinn 15: Kilde
Denne artikkelen er fra:
Hvis du har spørsmål, kan du kontakte : [email protected].
Anbefalt:
Arduino og MPU6050 basert digitalt vater: 3 trinn
Arduino og MPU6050 basert digitalt vater: Velkommen til min første instruerbare noensinne! Jeg håper du finner det informativt. Gi gjerne tilbakemelding om det er positivt eller negativt. Dette prosjektet er å lage en arduino & MPU6050 -basert digitalt vaterpas. Mens det ferdige designet og
Lag en mini-elektrisk motor Masco G36: 7 trinn
Lage en mini-elektrisk motor Masco G36: Instruksjoner for å lage en elektrisk motor
Lag ditt eget elektrisk motoriserte longboard: 8 trinn (med bilder)
Lag ditt eget elektrisk motoriserte longboard: I dette prosjektet vil jeg vise deg hvordan du bygger et elektrisk motorisert longboard fra bunnen av. Den kan nå hastigheter på opptil 34 km/t og reise opptil 20 km med en enkelt lading. De anslåtte kostnadene er rundt 300 dollar, noe som gjør det til et godt alternativ til kommersielle
DIY Digital vater: 5 trinn (med bilder)
DIY Digital vater: I dette prosjektet vil vi se nærmere på akselerometer -ICer og finne ut hvordan vi kan bruke dem med en Arduino. Etterpå vil vi kombinere en slik IC med et par komplementære komponenter og et 3D -trykt kabinett for å lage en digital
Lag din egen GPS -baserte digitale dashbord for EBIKE ELLER ELEKTRISK MOTORSYKLUS: 13 trinn
LAG DIN EGEN GPS -BASERT DIGITAL DASHBOARD FOR EBIKE ELLER ELEKTRISK MOTORSYKLUS: HI ALLE gangene kom jeg med en ny instruerbar med både frittstående display og logger ved bruk av arduino mega 2560 og Nextion Lcd -display Og for sporing kan du også logge NMEA -setningene til Gps i sdcardand selvfølgelig prosjekt