Sadržaj:

Micro: bitni detektor razine buke: 3 koraka
Micro: bitni detektor razine buke: 3 koraka

Video: Micro: bitni detektor razine buke: 3 koraka

Video: Micro: bitni detektor razine buke: 3 koraka
Video: Микробит (micro:bit) - одноплатный учебный микрокомпьютер 2024, Srpanj
Anonim
Micro: bitni detektor razine buke
Micro: bitni detektor razine buke
Micro: bitni detektor razine buke
Micro: bitni detektor razine buke
Micro: bitni detektor razine buke
Micro: bitni detektor razine buke

Ovo je samo kratki primjer za detektor razine buke temeljen na micro: bit -u i Pimoroni enviro: bit -u.

Mikrofon na enviro: bit detektira razinu zvuka, a iz dobivene vrijednosti izračunava se položaj na 5x5 LED matrici i aktivira se odgovarajuća LED. Maksimalne izmjerene vrijednosti pohranjuju se i ostaju prikazane na LED matrici.

Vrijednosti se mogu prikazati i u brojkama.

Dakle, to je u osnovi vrlo jednostavan alat za otkrivanje razine buke, npr. za eksperimente u učionici.

Opisana metoda za prikaz stvarnih i maksimalnih vrijednosti koje detektira senzor na mikro: bitovima 5x5 LED matrica također se može koristiti za druge parametre kao što su temperatura, vlaga ili tlak.

Korak 1: Korišteni dijelovi i softver

Hardver:

  • Mikro: bit
  • Okolina Pimoronija: bit - dolazi s tri senzora za zvuk, svjetlo i boju te pritisak/temperaturu/vlagu (20 GBP u Pimoroniju)
  • Snaga Pimoronija: bit - za napajanje uređaja iz baterija (izborno ili na bilo koji drugi način za napajanje mikrobita, 6 GBP u Pimoroniju)

Softver:

  • Microsoft MakeCode
  • Proširenje Pimoroni enviro: bit MakeCode

Da biste učitali skriptu na svoj micro: bit, samo kopirajte priloženu hex datoteku u svoj micro: bit s priloženim enviro: bit.

Korak 2: Kôd

Kôd je napisan pomoću Microsoft MakeCode -a u blok načinu rada, s proširenjem Enviro: Bit. Bellow dobivate odgovarajući JavaScript kod.

Funkcija envirobit.getSoundLevel () čita razinu zvuka sa senzora, vraćajući vrijednost od 0 do 443.

Konstanta signal_max definira maksimalnu vrijednost dinamičkog raspona koja će se prikazati na LED matrici, gornje će se vrijednosti tretirati kao bit signal_max. To vam omogućuje optimiziranje osjetljivosti uređaja za vašu aplikaciju.

Maksimalna vrijednost otkrivena u mjernom krugu pohranjena je u varijanti noise_max i ostaje prikazana na LED matrici.

Pritiskom na gumb "A" resetira se noise_max i briše zaslon, pritiskom na gumb "B" prikazuje se izmjerena vrijednost šuma kao stvarni broj.

Za prikaz vrijednosti, vrijednosti ispod signal_max smještene su u 25 "kanti" predstavljene jednom LED diodom, počevši od 0 (gore lijevo) do 24 (dolje desno). Zatim se izračunava položaj x/y i uključuje se odgovarajuća LED dioda. Vrijednosti iznad signal_max stavljaju se u pretinac 24. Ako je vrijednost ispod šuma_maksa, LED diode će se ponovno isključiti.

neka noise_x = 0let signal_max = 0 neka buka_5 = 0 neka buka_25 = 0 neka buka_max = 0 basic.showString ("Noise") noise_max = 0 noise_25 = 0 noise_5 = 0 signal_max = 250 basic.forever (function () {while (input.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}})

Korak 3: Kôd senzora temperature (vlažnosti, tlaka) s indikatorima min/maks

Kôd za osjetnik temperature (vlažnosti, tlaka) s indikatorima min/maks
Kôd za osjetnik temperature (vlažnosti, tlaka) s indikatorima min/maks

Ovdje ćete pronaći kôd za funkciju enviro: bit temperature.

Parametri signal_min i signal_max postavljaju minimalne i maksimalne temperature (*C) prikazane na LED matrici. Ovdje postavljanje signal_main = 5 i signal_max = 30 rezultira time da 5 i 6*C predstavljaju gornji lijevi LED (0, 0), a 28/29*C donji desni LED (4, 4).

Ima prostora za optimizaciju: s trenutnim kodom rastuće i padajuće temperature ostavljaju trag LED -a uključenih ili isključenih. S druge strane, to omogućuje očitavanje trenutne tendencije temperature (pad/rast), jer je trenutna vrijednost označena treperećom LED.

Zamjena getTemperature () s getHumidity () ili getPressure () i odgovarajuća prilagodba vrijednosti signal_min i signal_max (npr. 0/100 % odnosno 950/1150 hPA) omogućili bi prikaz ovih parametara na LED matrici.

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

Preporučeni: