INHOUDSOPGAWE:
- Stap 1: Doelwitte
- Stap 2: materiaal
- Stap 3: Voorkodering: Koppel u mikro: bit
- Stap 4: Stap 0: Kodevloei
- Stap 5: Stap 1: Definieer veranderlikes
- Stap 6: Stap 2: Skakel kantelwaardes om na vlakke
- Stap 7: Stap 3: Stel die kantelvlakke op
- Stap 8: Stap 4: Skryf LEDPlotList -funksies
- Stap 9: Stap 5: Stel 'n LED -matriks vir elke geval op
- Stap 10: Stap 6: Skryf kalibrasiefunksies
- Stap 11: Stap 7: Skryf staatsfunksie
- Stap 12: Stap 8: Alles saamvoeg Deel 1
- Stap 13: Stap 9: Alles saamvoeg Deel 2
- Stap 14: Stap 10: Montering
- Stap 15: Bron
Video: Skep 'n elektriese waterpas: 15 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Gebruik hierdie waterpas om die kanteling van enige aangehegte voorwerp vinnig en maklik te wys!
Geskep deur Kaitlyn van Raffles Institution.
Stap 1: Doelwitte
Leer om kantel te lees met die ingeboude versnellingsmeter van micro: bit.
Leer om te werk met micro: bit se 5x5 LED -skerm!
Stap 2: materiaal
1 x BBC -mikro: bietjie
1 x mikro -USB -kabel
2 x AA -batterye
1 x dubbele AA -battery
Stap 3: Voorkodering: Koppel u mikro: bit
- Koppel die BBC micro: bit aan u rekenaar met 'n mikro -USB -kabel.
- Gaan na die javascript -redakteur vir die micro: bit by makecode.microbit.org.
Stap 4: Stap 0: Kodevloei
Voordat ons die kode begin skryf, moet ons besluit wat ons met die program wil bereik en in watter volgorde elke komponent moet werk.
Vir die elektriese waterpas is die stappe wat ons in die kode vir elke lus sal neem:
- Lees kantelmessings vanaf die versnellingsmeter.
- Skakel kantelmessies om na kantelvlakke wat op LED -matriks vertoon moet word.
- Kontroleer of die kantelvlakmetings van die vorige lus verander is.
- Skep 'n reeks LED -koördinate vir verskillende kantelgevalle en rigtings.
- Plot LED -koördinate op mikro: bit LED -matriks.
'N Paar ekstra funksies wat ons moet insluit, is:
- Kalibrasie vir aanvanklike kantelposisie.
- Keer terug na die standaard kantelkalibrasie.
Stap 5: Stap 1: Definieer veranderlikes
Ons begin deur die benodigde veranderlikes te definieer, soos getoon. 'N Verdeling van 'n paar veranderlikes is:
- tiltList: Array wat die mate van kanteling stoor vanaf waardes 0-4 in die volgorde [Links, Regs, vorentoe, agteruit]
- tiltBoundary: grens van die eerste kantelvlak tussen 0 (geen kanteling) en 1 (effense kanteling)
- prevState: Array wat die kantelwaardes van die mikro: bis stoor vanaf 'n vorige lus in dieselfde formaat as tiltList, wat gebruik word om te kyk of daar 'n verandering in kanteling tussen iterasies is
- ledPlotList: Plot geleide koördinaatskikkings in die vorm (x, y). Om 'n skikking te definieer, gebruik ons die tipe nommer om 'n geneste reeks veranderlikes van tipe: nommer aan te dui.
Stap 6: Stap 2: Skakel kantelwaardes om na vlakke
Aangesien die 5x5 LED -matriks net soveel inligting kan vertoon, sal die werklike kantelwaardes nie nuttig wees om te vertoon nie.
In plaas daarvan neem 'n funksie tiltExtent () die parameter num, wat verwys na die kantelwaarde van die versnellingsmeter, en skakel hierdie kantelwaardes (num) om na kantelvlakke van 0 na 4.
0 dui geen kanteling in die gegewe rigting aan nie en 4 dui op baie groot kanteling, terwyl -1 terugkom as daar 'n fout is.
Hier word tiltBoundary en tiltSensitivity gebruik as die grenswaardes tussen kantelvlakke.
Stap 7: Stap 3: Stel die kantelvlakke op
Die twee funksies checkRoll () en checkPitch () skryf die kantelvlakke wat verkry word vanaf tiltExtent () in tiltList vir die rol (links-regs) en die toonhoogte (vorentoe-agtertoe) onderskeidelik.
Voordat ons die kantelwaardes gebruik, kalibreer ons dit met 'n nulwaarde vir beide toonhoogte (zeroPitch) en rol (zeroRoll) verkry uit 'n kalibrasiefunksie wat later geskryf is.
Aangesien die versnellingsmeterlesings negatief is vir beide linker- en vorentoe -kanteling, moet ons die funksie Math.abs () gebruik om die modulus van die negatiewe waarde te kry wat die tiltExtent () -funksie as parameter vir hierdie twee rigtings moet gee.
Stap 8: Stap 4: Skryf LEDPlotList -funksies
Nadat ons die kantelvlakke in tiltList verkry het, kan ons nou die LED -plotfunksies skryf vir die verskillende gevalle wat kan ontstaan, naamlik
- plotSingle (): Kantel slegs in 'n enkele rigting, met die mate van kanteling in die gegewe rigting as parameter.
- plotDiagonal (): Kantel in twee rigtings van dieselfde grootte, en neem die mate van kanteling in beide rigtings as parameter.
- plotUnqual (): Kantel in twee rigtings van verskillende groottes, met die mate van kanteling in elke rigting as parameter. Gebruik eers plotDiagonal () en voeg daarna by tot die ledPlotList -skikking.
Hierdie plotfunksies skryf 'n verskeidenheid geleide koördinate na ledPlotList om later opgestel te word.
Stap 9: Stap 5: Stel 'n LED -matriks vir elke geval op
Deur die plotfunksies uit die drie gevalle in stap 4 te gebruik, kan ons nou die werklike LED -matriks teken vir die verskillende moontlike kombinasies van kantelvlakke. Aangesien die drie funksies in stap 4 nie met rigting onderskei nie, moet ons die koördinaatwaardes wat aan die LED -matriks oorgedra word, aanpas om die LED's in die regte rigtings te teken.
PlotResult () bevat veelvoudige as -toestande wat die tipe kanteling kontroleer en die LED -matriks dienooreenkomstig met led.plot (x, y) plot. Die moontlike kombinasies van kanteling is:
Enkele rigting: Slegs links of regs
Enkele rigting: slegs vorentoe of agteruit
Twee rigtings: vorentoe-links of agtertoe-links
Twee rigtings: vorentoe-regs of agtertoe-regs
Opmerking: vir kanteling in twee rigtings kan elke kombinasie dieselfde of verskillende grootte hê (gekontroleer deur die vergelyking van maxX en maxY) en gevolglik met behulp van plotDiagonal () of plotUnequal () geteken word.
Stap 10: Stap 6: Skryf kalibrasiefunksies
Nadat ons die grootste deel van die kode voltooi het, voeg ons nou die funksies calibTilt () en resetTilt () by.
Met calibTilt () kan gebruikers die kanteling op nul in die huidige posisie van die micro: bit stel
resetTilt () stel die kalibrasie van die bord terug in sy oorspronklike toestand.
Stap 11: Stap 7: Skryf staatsfunksie
Ons voeg 'n eenvoudige funksie checkState () by om te kyk of die kantelvlakke verander het van 'n vorige iterasie.
As daar geen verandering in kantelvlakke van 'n vorige iterasie is nie, dit wil sê stateChange == 0, kan ons direk na die volgende iterasie oorgaan en die plot van die LED -matriks oorslaan, wat die berekening wat nodig is, verminder.
Stap 12: Stap 8: Alles saamvoeg Deel 1
Nou kan ons uiteindelik al die nodige funksies in die oneindige lus van die micro: bit plaas om dit herhaaldelik uit te voer.
Eerstens stel ons knoppie A en B op die micro: bit op die funksies calibTilt () en resetTilt () onderskeidelik met behulp van input.onButtonPressed (), en teken 'n regmerkie op die LED -matriks wanneer die kalibrasie voltooi is.
Stap 13: Stap 9: Alles saamvoeg Deel 2
Voer dan die nodige funksies uit volgens ons kodevloei in stap 0 en kyk of daar 'n toestandverandering is (wat beteken dat die kanteling van micro: bit sedert die laaste iterasie verander het).
As daar 'n verandering in kantelvlakke is, dws stateChange == 1, sal die kode prevState opdateer na die nuwe kantelvlakke en stateChange terugstel na 0 vir die volgende iterasie, en die opgedateerde kantelvlakke op die LED -matriks met PlotResult () teken.
Stap 14: Stap 10: Montering
Flits die voltooide kode na u micro: bit.
Koppel u mikro: bit en die battery veilig aan enige voorwerp en dit is gereed vir gebruik!
Ontsagwekkende
Geniet u elektriese waterpas! En terwyl u besig is, waarom probeer u nie die funksies van die kantelsensor uitbrei of selfs in 'n speletjie verander nie?
Hierdie artikel is van TINKERCADEMY.
Stap 15: Bron
Hierdie artikel is afkomstig van:
As u enige vrae het, kan u kontak: [email protected].
Aanbeveel:
Ontdek trillings met behulp van 'n piëzo -elektriese skok -tik sensormodule: 6 stappe
Ontdek trillings met behulp van 'n piëzo -elektriese skok tik sensormodule: in hierdie tutoriaal leer ons hoe om skokvibrasies op te spoor met behulp van 'n eenvoudige piëzo -elektriese sensor vibrasie module en Visuino. Kyk na 'n demonstrasie video
Elektriese boot: 4 stappe
Elektriese boot: voorrade -klein plastiekboks 2x dc -motors drade 1x skakelaar 2x propellers 2x 9V batterye warm gomgeweer
Arduino en MPU6050 -gebaseerde digitale waterpas: 3 stappe
Arduino & MPU6050 Gebaseerde Digitale Waterpas: Welkom by my eerste instruksies ooit! Ek hoop dat u dit insiggewend vind. Laat gerus terugvoer, hetsy positief of negatief. Hierdie projek is om 'n arduino te maak & MPU6050 gebaseerde digitale waterpas. Terwyl die voltooide ontwerp en
DIY digitale waterpas: 5 stappe (met foto's)
DIY Digitale waterpas: In hierdie projek kyk ons na versnellingsmeter -IC's van naderby en kyk hoe ons dit met 'n Arduino kan gebruik. Daarna kombineer ons so 'n IC met 'n paar komplementêre komponente en 'n 3D -gedrukte omhulsel om 'n digitale
Hoe om 'n elektriese bromponie vir elektriese onderdele uitmekaar te haal: 6 stappe
Hoe om 'n elektriese bromponie vir elektriese onderdele uitmekaar te skei: dit is die manier waarop ek 'n tweedehandse elektriese bromponie uitmekaar haal vir onderdele wat nodig is vir die bou van 'n elektriese bergplank. (Idee kom van > > https: // www .instructables.com/id/Electric-Mountain-Board/) Die rede waarom ek 'n tweedehandse een gekoop het, is