Obsah:

Mikro: bitový detektor úrovne šumu: 3 kroky
Mikro: bitový detektor úrovne šumu: 3 kroky

Video: Mikro: bitový detektor úrovne šumu: 3 kroky

Video: Mikro: bitový detektor úrovne šumu: 3 kroky
Video: ОПАСНОСТЬ витамина D №1, которую вы обязательно должны знать! 2024, November
Anonim
Mikro: bitový detektor úrovne hluku
Mikro: bitový detektor úrovne hluku
Mikro: bitový detektor úrovne hluku
Mikro: bitový detektor úrovne hluku
Mikro: bitový detektor úrovne hluku
Mikro: bitový detektor úrovne hluku

Toto je len krátky príklad pre detektor hladiny hluku založený na mikro: bite a Pimoroni enviro: bite.

Mikrofón na zariadení enviro: bit detekuje hladinu zvuku a z výslednej hodnoty sa vypočíta poloha na matici LED 5x5 a aktivuje sa zodpovedajúca dióda LED. Maximálne namerané hodnoty sa uložia a zostanú zobrazené na matici LED.

Hodnoty je možné zobraziť aj v číslach.

Ide teda v podstate o veľmi jednoduchý nástroj na zisťovanie hladiny hluku, napr. na experimenty v triede.

Metóda opísaná na zobrazenie skutočných a maximálnych hodnôt detegovaných snímačom na mikro: bitovej matici 5x5 LED môže byť použitá aj pre iné parametre, ako je teplota, vlhkosť alebo tlak.

Krok 1: Použité diely a softvér

Hardvér:

  • Mikro: bit
  • Pimoroni enviro: bit - dodáva sa s tromi snímačmi zvuku, svetla a farieb a tlaku/teploty/vlhkosti (20 GBP v Pimoroni)
  • Napájanie Pimoroni: bit - na napájanie zariadenia z batérií (voliteľné alebo akýmkoľvek iným spôsobom na napájanie mikrobitu, 6 GBP v Pimoroni)

Softvér:

  • Microsoft MakeCode
  • Rozšírenie Pimoroni enviro: bit MakeCode

Ak chcete skript načítať do svojho súboru micro: bit, skopírujte poskytnutý hex súbor do súboru micro: bit s pripojeným súborom enviro: bit.

Krok 2: Kód

Kód bol napísaný pomocou kódu Microsoft MakeCode v blokovom režime pomocou rozšírenia Enviro: Bit. Nižšie nájdete príslušný kód JavaScript.

Funkcia envirobit.getSoundLevel () číta hladinu zvuku zo snímača a vracia hodnotu od 0 do 443.

Konštanta signal_max definuje maximálnu hodnotu dynamického rozsahu, ktorá sa má zobraziť na matici LED, vyššie uvedené hodnoty sa budú považovať za hodnoty signal_max. To vám umožní optimalizovať citlivosť zariadenia pre vašu aplikáciu.

Maximálna hodnota zistená v meracom kruhu je uložená vo variante noise_max a zostáva zobrazená na matici LED.

Stlačením tlačidla „A“sa vynuluje hluk_max a vymaže sa obrazovka. Stlačením tlačidla „B“sa nameraná hodnota hluku zobrazí ako skutočné číslo.

Na zobrazenie hodnoty sú hodnoty nižšie signal_max umiestnené do 25 „zásobníkov“reprezentovaných jednou diódou LED, začínajúc od 0 (vľavo hore) do 24 (vpravo dole). Potom sa vypočíta poloha x/y a rozsvieti sa príslušná dióda LED. Hodnoty nad signal_max sú umiestnené do priehradky 24. Ak je hodnota nižšia ako noise_max, LED diódy sa opäť vypnú.

nechajte noise_x = 0 nechajte signal_max = 0 nechajte.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 pre snímač teploty (vlhkosti, tlaku) s identifikátormi min/max

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

Tu nájdete kód pre funkciu enviro: bitová teplota.

Parametre signal_min a signal_max nastavujú minimálne a maximálne teploty (*C) zobrazené na matici LED. Tu nastavenie signal_main = 5 a signal_max = 30 má za následok, že 5 a 6*C budú reprezentované ľavou hornou diódou LED (0, 0) a 28/29*C dolnou pravou diódou LED (4, 4).

Existuje priestor na optimalizáciu: so súčasným kódom stúpajúce a klesajúce teploty zanechávajú stopu LED diód buď zapnutých alebo vypnutých. Na druhej strane to umožňuje odčítať aktuálnu tendenciu teploty (klesajúca/stúpajúca), pretože aktuálna hodnota je indikovaná blikajúcou diódou LED.

Nahradenie getTemperature () hodnotou getHumidity () alebo getPressure () a príslušným nastavením hodnôt signal_min a signal_max (napr. 0/100 % respektíve 950/1150 hPA) by umožnilo zobraziť tieto parametre na matici LED.

nechajte Temp_x = 0 nechajte Temp_5 = 0 nechajte signal_delta = 0 nechajte Temp_25 = 0 nechajte Temp_Min = 0 nechajte signal_min = 0 nechajte Temp_Max = 0 nechajte 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}})

Odporúča: