Turinys:

Mikro: bitų triukšmo lygio jutiklis: 3 žingsniai
Mikro: bitų triukšmo lygio jutiklis: 3 žingsniai

Video: Mikro: bitų triukšmo lygio jutiklis: 3 žingsniai

Video: Mikro: bitų triukšmo lygio jutiklis: 3 žingsniai
Video: Место, ГДЕ случилась КРУПНЕЙШАЯ техногеннная КАТАСТРОФА ☢️ БЩУ-4 на ЧЕРНОБЫЛЬСКОЙ АЭС ☢️ 2024, Liepa
Anonim
Mikro: bitų triukšmo jutiklis
Mikro: bitų triukšmo jutiklis
Mikro: bitų triukšmo jutiklis
Mikro: bitų triukšmo jutiklis
Mikro: bitų triukšmo jutiklis
Mikro: bitų triukšmo jutiklis

Tai tik trumpas triukšmo lygio detektoriaus, pagrįsto „micro: bit“ir „Pimoroni enviro: bit“, pavyzdys.

„Enviro: bit“mikrofonas nustato garso lygį, o iš gautos vertės apskaičiuojama padėtis 5x5 LED matricoje ir įjungiamas atitinkamas šviesos diodas. Didžiausios išmatuotos vertės yra išsaugomos ir lieka rodomos LED matricoje.

Reikšmės taip pat gali būti rodomos skaičiais.

Taigi iš esmės tai labai paprastas triukšmo lygio aptikimo įrankis, pvz. klasės kambario eksperimentams.

Aprašytas metodas, skirtas rodyti faktines ir didžiausias jutiklio aptiktas vertes mikro: bitų 5x5 LED matricoje, taip pat galėtų būti naudojamas kitiems parametrams, pvz., Temperatūrai, drėgmei ar slėgiui.

1 žingsnis: naudojamos dalys ir programinė įranga

Techninė įranga:

  • Mikro: bit
  • „Pimoroni enviro: bit“- yra trys garso, šviesos ir spalvų bei slėgio/temperatūros/drėgmės jutikliai (20 GBP „Pimoroni“)
  • „Pimoroni“maitinimas: bitas - prietaiso maitinimas iš baterijų (pasirinktinai arba bet kuriuo kitu būdu, kaip maitinti mikrobitą, 6 GBP „Pimoroni“)

Programinė įranga:

  • „Microsoft MakeCode“
  • Pimoroni aplinka: bitų „MakeCode“plėtinys

Norėdami įkelti scenarijų į „micro: bit“, tiesiog nukopijuokite pateiktą šešioliktainį failą į „micro: bit“ir pridėkite aplinką: bitą.

2 žingsnis: kodas

Kodas buvo parašytas naudojant „Microsoft MakeCode“blokavimo režimu, naudojant plėtinį „Enviro: Bit“. Žemiau rasite atitinkamą „JavaScript“kodą.

Funkcija envirobit.getSoundLevel () nuskaito jutiklio garso lygį ir grąžina vertę nuo 0 iki 443.

Pastovus signalas_max apibrėžia maksimalią dinaminio diapazono vertę, kuri turi būti rodoma LED matricoje, aukščiau pateiktos vertės bus traktuojamos kaip signalo_max. Tai leidžia optimizuoti įrenginio jautrumą jūsų programai.

Didžiausia matavimo apskritime aptikta vertė išsaugoma variante noise_max ir lieka rodoma LED matricoje.

Paspaudus mygtuką „A“iš naujo nustatomas „noise_max“ir išvalomas ekranas, paspaudus mygtuką „B“, išmatuota triukšmo vertė rodoma kaip tikrasis skaičius.

Norint parodyti vertę, žemiau signalo_max esančios vertės dedamos į 25 „dėžes“, kurias vaizduoja vienas šviesos diodas, pradedant nuo 0 (viršuje kairėje) iki 24 (apatinėje dešinėje). Tada apskaičiuojama x/y padėtis ir įjungiamas atitinkamas šviesos diodas. Reikšmės virš signalo_max dedamos į 24 dėžę. Jei vertė yra mažesnė už triukšmo_max, šviesos diodai vėl išsijungs.

tegul noise_x = 0let signal_max = 0 tegul noise_5 = 0 tegul noise_25 = 0 tegul noise_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}})

3 žingsnis: Temperatūros (drėgmės, slėgio) jutiklio kodas su minimaliais/maksimaliais rodikliais

Temperatūros (drėgmės, slėgio) jutiklio kodas su minimaliais/maksimaliais rodikliais
Temperatūros (drėgmės, slėgio) jutiklio kodas su minimaliais/maksimaliais rodikliais

Čia rasite „enviro: bit“temperatūros funkcijos kodą.

Parametrai signal_min ir signal_max nustato minimalią ir maksimalią temperatūrą (*C), rodomą LED matricoje. Čia nustatant signal_main = 5 ir signal_max = 30 gaunama 5 ir 6*C, kurią vaizduoja viršutinis kairysis šviesos diodas (0, 0), o 28/29*C - apatinis dešinysis šviesos diodas (4, 4).

Yra vietos optimizavimui: didėjant dabartiniam kodui ir mažėjant temperatūrai, šviesos diodų pėdsakai lieka įjungti arba išjungti. Kita vertus, tai leidžia perskaityti dabartinę temperatūros tendenciją (kristi/kilti), nes srovės vertę rodo mirksintis šviesos diodas.

Pakeitus „getTemperature“() į „getHumidity“() arba „getPressure“() ir atitinkamai pakoregavus „signal_min“ir „signal_max“reikšmes (pvz., Atitinkamai 0/100 % 950/1150 hPA), šie parametrai būtų rodomi LED matricoje.

leiskite Temp_x = 0let Temp_5 = 0 tegul signal_delta = 0 tegul Temp_25 = 0 tegul Temp_Min = 0 tegul signal_min = 0 tegul Temp_Max = 0 tegul 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), jei (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}})

Rekomenduojamas: