Inhoudsopgave:
- Stap 1: Gebruikte onderdelen en software
- Stap 2: De code
- Stap 3: Een code voor een temperatuursensor (vochtigheid, druk) met min/max-identifiers
Video: Micro:bit geluidsniveaudetector - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Dit is slechts een kort voorbeeld van een geluidsniveaudetector op basis van de micro:bit en de Pimoroni enviro:bit.
De microfoon op de enviro:bit detecteert het geluidsniveau, en uit de resulterende waarde wordt een positie op de 5x5 LED-matrix berekend en wordt de bijbehorende LED geactiveerd. De maximaal gemeten waarden worden opgeslagen en blijven op de LED-matrix weergegeven.
De waarden kunnen ook in cijfers worden weergegeven.
Het is dus eigenlijk een heel eenvoudig hulpmiddel voor het detecteren van geluidsniveaus, b.v. voor experimenten in de klas.
De beschreven methode om de werkelijke en maximale waarden weer te geven die door een sensor op de micro:bits 5x5 LED-matrix worden gedetecteerd, kan ook worden gebruikt voor andere parameters zoals temperatuur, vochtigheid of druk.
Stap 1: Gebruikte onderdelen en software
Hardware:
- Een micro:bit
- Een Pimoroni enviro:bit - wordt geleverd met drie sensoren voor geluid, licht en kleur, en druk/temperatuur/vochtigheid (20 GBP bij Pimoroni)
- Een Pimoroni power:bit - om het apparaat van stroom te voorzien van batterijen (optioneel, of een andere manier om de microbit van stroom te voorzien, 6 GBP bij Pimoroni)
Software:
- Microsoft MakeCode
- De Pimoroni enviro:bit MakeCode-extensie
Om het script naar uw micro:bit te laden, kopieert u gewoon het meegeleverde hex-bestand naar uw micro:bit met een enviro:bit bijgevoegd.
Stap 2: De code
De code is geschreven met Microsoft MakeCode in blokmodus, met behulp van de Enviro:Bit-extensie. Hieronder vindt u de bijbehorende JavaScript-code.
De functie envirobit.getSoundLevel() leest het geluidsniveau van de sensor en retourneert een waarde van 0 tot 443.
De constante signal_max definieert een maximale waarde van het dynamische bereik dat moet worden weergegeven op de LED-matrix, de bovenstaande waarden worden behandeld als zijnde signal_max. Hiermee kunt u de gevoeligheid van het apparaat optimaliseren voor uw toepassing.
De maximaal gedetecteerde waarde in een meetcirkel wordt opgeslagen in de variant noise_max en blijft weergegeven op de LED-matrix.
Door op knop "A" te drukken wordt noise_max gereset en wordt het scherm gewist, door op knop "B" te drukken wordt de gemeten ruiswaarde weergegeven als het werkelijke getal.
Om de waarde weer te geven, worden de waarden onder signal_max in 25 "bakken" geplaatst, weergegeven door één LED, beginnend van 0 (linksboven) tot 24 (rechtsonder). Vervolgens wordt de x/y-positie berekend en wordt de bijbehorende LED ingeschakeld. Waarden boven signal_max worden in bak 24 geplaatst. Als de waarde onder noise_max ligt, gaan de LED's weer uit.
let noise_x = 0let signal_max = 0 let noise_5 = 0 let noise_25 = 0 let noise_max = 0 basic.showString("Noise") noise_max = 0 noise_25 = 0 noise_5 = 0 signal_max = 250 basic.forever(function () { while (invoer.buttonIsPressed(Button. B)) { basic.showNumber(envirobit.getSoundLevel()) basic.showString("--") } if (input.buttonIsPressed(Button. A)) { noise_max = 0 basic.clearScreen() } noise_25 = Math.floor(envirobit.getSoundLevel() / signal_max * 25) if (noise_25 > 24) { noise_25 = 24} noise_5 = Math.floor(noise_25 / 5) noise_x = noise_25 - noise_5 * 5 led.plot(noise_x, noise_5) basic.pause(200) if (noise_25 noise_max) { noise_max = noise_25 } })
Stap 3: Een code voor een temperatuursensor (vochtigheid, druk) met min/max-identifiers
Hier vind je een code voor de enviro:bit temperatuurfunctie.
Parameters signal_min en signal_max stellen de minimum- en maximumtemperaturen (*C) in die op de LED-matrix worden weergegeven. Bij het instellen van signal_main=5 en signal_max=30 worden 5 en 6*C weergegeven door de LED linksboven (0, 0) en 28/29*C door de LED rechtsonder (4, 4).
Er is ruimte voor optimalisatie: met de huidige code laten stijgende en dalende temperaturen een spoor achter van LED's die aan of uit zijn. Aan de andere kant maakt dit het mogelijk om de huidige temperatuurtendens (dalend/stijgend) af te lezen, aangezien de huidige waarde wordt aangegeven door de knipperende LED.
Door getTemperature() te vervangen door getHumidity() of getPressure() en de waarden voor signal_min en signal_max dienovereenkomstig aan te passen (bijv. 0/100 % respectievelijk 950/1150 hPA) zouden deze parameters op de LED-matrix kunnen worden weergegeven.
let Temp_x = 0let Temp_5 = 0 let signal_delta = 0 let Temp_25 = 0 let Temp_Min = 0 let signal_min = 0 let Temp_Max = 0 let signal_max = 0 basic.showString("Temp") signal_max = 30 signal_min = 5 signal_delta = signal_max - signal_min Temp_Max = 0 Temp_Min = 24 basic.forever(function () { if (input.buttonIsPressed(Button. A)) { Temp_Max = 0 Temp_Min = 24 basic.clearScreen()} while (input.buttonIsPressed(Button. B)) { basic.showNumber(Math.round(envirobit.getTemperature())) basic.showString("C") } Temp_25 = Math.floor((envirobit.getTemperature() - signal_min) / signal_delta * 25) if (Temp_25 > 24) { Temp_25 = 24 } if (Temp_25 < 0) { Temp_25 = 0 } Temp_5 = Math.floor(Temp_25 / 5) Temp_x = Temp_25 - Temp_5 * 5 led.plot(Temp_x, Temp_5) basic.pause(100) if (Temp_25 Temp_Min) { led.unplot (Temp_x, Temp_5) } if (Temp_25 > Temp_Max) { Temp_Max = Temp_25 } if (Temp_25 < Temp_Min) { Temp_Min = Temp_25 } })
Aanbevolen:
[2020] IPhone of IPad en Micro:bit Game Pad-app gebruiken om een RC-auto te besturen: 23 stappen
[2020] IPhone of IPad en Micro:bit Game Pad-app gebruiken om een RC-auto te besturen: heb je erover nagedacht om je iPhone of iPad te gebruiken voor het besturen van je micro:bit? Weet je dat Micro:bit Educational Foundation de iOS-app in de App Winkel? Zoek "micro:bit" in de App store en je kunt de app gratis downloaden. De
LEGO WALL-E met Micro:bit: 8 stappen (met afbeeldingen)
LEGO WALL-E Met Micro:bit: we gebruiken een micro:bit samen met een LEGO-vriendelijk bitbord om de twee servomotoren te besturen waarmee WALL-E het gevaarlijke terrein van uw woonkamervloer kan doorkruisen .Voor de code gebruiken we Microsoft MakeCode, een blo
Micro:Bit Compass DIY: 6 stappen
Micro:Bit Compass DIY: Hoe een Micro:Bit Compass te coderen
Micro:Bot - Micro:Bit: 20 stappen
Micro:Bot - Micro:Bit: Bouw een Micro:Bot voor jezelf! Het is een Micro:Bit-gestuurde robot met ingebouwde sonar voor autonoom rijden, of, als je twee Micro:Bits hebt, radiogestuurd rijden
Licht- en kleurmetingen met de Pimoroni Enviro:bit voor de Micro:bit: 5 stappen
Licht- en kleurmetingen Met de Pimoroni Enviro:bit voor de Micro:bit: ik had eerder aan een aantal apparaten gewerkt waarmee licht- en kleurmetingen mogelijk waren en je kunt hier en hier veel vinden over de theorie achter dergelijke metingen. heeft onlangs de enviro:bit uitgebracht, een add-on voor de m