Obsah:

Mikro: bitový detektor úrovně šumu: 3 kroky
Mikro: bitový detektor úrovně šumu: 3 kroky

Video: Mikro: bitový detektor úrovně šumu: 3 kroky

Video: Mikro: bitový detektor úrovně šumu: 3 kroky
Video: BTT Octopus V1.1 - Basics 2024, Červenec
Anonim
Mikro: bitový detektor úrovně hluku
Mikro: bitový detektor úrovně hluku
Mikro: bitový detektor úrovně hluku
Mikro: bitový detektor úrovně hluku
Mikro: bitový detektor úrovně hluku
Mikro: bitový detektor úrovně hluku

Toto je jen krátký příklad pro detektor hladiny hluku založený na micro: bit a Pimoroni enviro: bit.

Mikrofon na enviro: bit detekuje úroveň zvuku a z výsledné hodnoty se vypočítá poloha na matici LED 5x5 a aktivuje se odpovídající LED. Maximální naměřené hodnoty jsou uloženy a zůstávají zobrazeny na LED matici.

Hodnoty lze také zobrazit v číslech.

Jedná se tedy v podstatě o velmi jednoduchý nástroj pro detekci hladiny hluku, např. pro experimenty ve třídách.

Metodu popsanou pro zobrazení skutečných a maximálních hodnot detekovaných senzorem na mikro: bitech 5x5 LED matice lze použít také pro jiné parametry, jako je teplota, vlhkost nebo tlak.

Krok 1: Použité součásti a software

Hardware:

  • Micro: bit
  • Pimoroni enviro: bit - je dodáván se třemi senzory pro zvuk, světlo a barvy a tlak/teplotu/vlhkost (20 GBP u Pimoroni)
  • Napájení Pimoroni: bit - k napájení zařízení z baterií (volitelně nebo jiným způsobem k napájení mikrobitu, 6 GBP u Pimoroni)

Software:

  • Microsoft MakeCode
  • Rozšíření Pimoroni enviro: bit MakeCode

Chcete-li načíst skript do souboru micro: bit, zkopírujte poskytnutý hex soubor do souboru micro: bit s připojeným souborem enviro: bit.

Krok 2: Kód

Kód byl napsán pomocí Microsoft MakeCode v blokovém režimu pomocí rozšíření Enviro: Bit. Níže najdete odpovídající kód JavaScript.

Funkce envirobit.getSoundLevel () čte hladinu zvuku ze senzoru a vrací hodnotu od 0 do 443.

Konstanta signal_max definuje maximální hodnotu dynamického rozsahu, která má být zobrazena na matici LED, výše uvedené hodnoty budou považovány za bytost signal_max. To vám umožní optimalizovat citlivost zařízení pro vaši aplikaci.

Maximální hodnota detekovaná v měřicím kruhu je uložena ve variantě noise_max a zůstává zobrazena na LED matici.

Stisknutím tlačítka „A“resetujete noise_max a vymažete obrazovku, stisknutím tlačítka „B“zobrazíte naměřenou hodnotu hluku jako skutečné číslo.

Pro zobrazení hodnoty jsou hodnoty pod signal_max umístěny do 25 "přihrádek" reprezentovaných jednou LED, počínaje od 0 (vlevo nahoře) do 24 (vpravo dole). Poté se vypočítá poloha x/y a rozsvítí se odpovídající LED. Hodnoty nad signal_max jsou umístěny do přihrádky 24. Pokud je hodnota nižší než noise_max, LED diody se opět vypnou.

nechte noise_x = 0 nechte signal_max = 0 nechte noise_5 = 0 nechte noise_25 = 0 nechte noise_max = 0 basic.showString („Noise“).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}})

Krok 3: Kód pro snímač teploty (vlhkosti, tlaku) s identifikátory min/max

Kód pro snímač teploty (vlhkosti, tlaku) s identifikátory min/max
Kód pro snímač teploty (vlhkosti, tlaku) s identifikátory min/max

Zde najdete kód pro funkci enviro: bitová teplota.

Parametry signal_min a signal_max nastavují minimální a maximální teploty (*C) zobrazené na LED matici. Zde nastavení signal_main = 5 a signal_max = 30 má za následek, že 5 a 6*C budou reprezentovány levou horní LED (0, 0) a 28/29*C spodní pravou LED (4, 4).

Je zde prostor pro optimalizaci: při současném kódu stoupající a klesající teploty zanechávají stopu LED buď zapnutých, nebo vypnutých. Na druhé straně to umožňuje odečítat aktuální teplotní tendenci (klesající/stoupající), protože aktuální hodnota je indikována blikající LED.

Nahrazení getTemperature () getHumidity () nebo getPressure () a příslušná úprava hodnot signal_min a signal_max (např. 0/100 % respektive 950/1150 hPA) by umožnilo zobrazit tyto parametry na LED matici.

nechte Temp_x = 0let Temp_5 = 0 nechte signal_delta = 0 nechte Temp_25 = 0 nechte Temp_Min = 0 nechte signal_min = 0 nechte Temp_Max = 0 nechte 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 (funkce () {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}})

Doporučuje: