INHOUDSOPGAWE:

Mikro: bis Geraasvlakdetektor: 3 stappe
Mikro: bis Geraasvlakdetektor: 3 stappe

Video: Mikro: bis Geraasvlakdetektor: 3 stappe

Video: Mikro: bis Geraasvlakdetektor: 3 stappe
Video: Мухоморный 🍄Трип Фиксирую на камеру. Очутился между двух миров🌍 Реальным и Мухоморным🙏 2024, Julie
Anonim
Mikro: bietjie geraasvlak detector
Mikro: bietjie geraasvlak detector
Mikro: bietjie geraasvlak detector
Mikro: bietjie geraasvlak detector
Mikro: bietjie geraasvlak detector
Mikro: bietjie geraasvlak detector

Dit is slegs 'n kort voorbeeld van 'n geraasvlak detector gebaseer op die micro: bit en die Pimoroni enviro: bit.

Die mikrofoon op die enviro: bit bespeur die klankvlak, en uit die gevolglike waarde word 'n posisie op die 5x5 LED -matriks bereken en die ooreenstemmende LED word geaktiveer. Die maksimum gemete waardes word gestoor en bly op die LED -matriks vertoon.

Die waardes kan ook in getalle vertoon word.

Dit is dus basies 'n baie eenvoudige instrument om geraasvlak op te spoor, bv. vir klaskamer eksperimente.

Die metode wat beskryf word om die werklike en maksimum waardes wat deur 'n sensor opgemerk word, op die mikro: bisse 5x5 LED -matriks weer te gee, kan ook vir ander parameters soos temperatuur, humiditeit of druk gebruik word.

Stap 1: Onderdele en sagteware wat gebruik word

Hardeware:

  • 'N Mikro: bietjie
  • 'N Pimoroni -omgewing: bit - kom met drie sensors vir klank, lig en kleur en druk/temperatuur/humiditeit (20 GBP by Pimoroni)
  • A Pimoroni -krag: bietjie - om die toestel van batterye aan te dryf (opsioneel of op enige ander manier om die mikrobit aan te dryf, 6 GBP by Pimoroni)

Sagteware:

  • Microsoft MakeCode
  • Die Pimoroni -omgewing: bit MakeCode -uitbreiding

Om die script na u micro: bit te laai, kopieer die meegeleverde hex-lêer na u micro: bit met 'n enviro: bit daarby.

Stap 2: Die kode

Die kode is geskryf met behulp van Microsoft MakeCode in blokmodus, met behulp van die Enviro: Bit -uitbreiding. Hieronder vind u die ooreenstemmende JavaScript -kode.

Die funksie envirobit.getSoundLevel () lees die klankvlak van die sensor en gee 'n waarde van 0 tot 443 terug.

Die konstante signal_max definieer 'n maksimum waarde van die dinamiese reeks wat op die LED -matriks vertoon moet word, waardes hierbo word as 'n synde_max beskou. Hiermee kan u die sensitiwiteit van die toestel vir u toepassing optimaliseer.

Die maksimum waarde wat in 'n metingsirkel opgespoor word, word in die variant noise_max gestoor en bly op die LED -matriks.

Deur op knoppie "A" te druk, word noise_max teruggestel en die skerm word skoongemaak; druk op knoppie "B" om die gemete geraaswaarde as werklike getal te wys.

Om die waarde te vertoon, word die waardes hieronder signal_max in 25 "bakke" geplaas, verteenwoordig deur een LED, begin van 0 (links bo) tot 24 (regs onder). Dan word die x/y -posisie bereken en die ooreenstemmende LED aangeskakel. Waardes bo signal_max word in houer 24. As die waarde onder noise_max is, word die LED's weer aangeskakel.

laat noise_x = 0let signal_max = 0 laat noise_5 = 0 laat noise_25 = 0 laat noise_max = 0 basic.showString ("Noise") noise_max = 0 noise_25 = 0 noise_5 = 0 signal_max = 250 basic.forever (funksie () {terwyl (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: 'n Kode vir 'n temperatuur (humiditeit, druk) sensor met min/maksimum identifiseerders

'N Kode vir 'n temperatuur- (humiditeits-, druk-) sensor met min/maksimum identifiseerders
'N Kode vir 'n temperatuur- (humiditeits-, druk-) sensor met min/maksimum identifiseerders

Hier vind u 'n kode vir die enviro: bit temperatuur funksie.

Parameters signal_min en signal_max stel die minimum en maksimum temperature (*C) op die LED -matriks in. Hier word die instelling van signal_main = 5 en signal_max = 30 daartoe gelei dat 5 en 6*C voorgestel word deur die boonste linker LED (0, 0) en 28/29*C deur die onderste regter -LED (4, 4).

Daar is ruimte vir optimalisering: met die huidige kode wat styg en daal, laat 'n spoor LED's aan of uit. Aan die ander kant kan u die huidige temperatuurneiging (daling/styging) aflees, aangesien die huidige waarde aangedui word deur die knipperende LED.

Deur getTemperature () deur getHumidity () of getPressure () te vervang en die sein_min en sein_max waardes dienooreenkomstig aan te pas (bv.

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

Aanbeveel: