Sisällysluettelo:

Micro: bit melutason ilmaisin: 3 vaihetta
Micro: bit melutason ilmaisin: 3 vaihetta

Video: Micro: bit melutason ilmaisin: 3 vaihetta

Video: Micro: bit melutason ilmaisin: 3 vaihetta
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Marraskuu
Anonim
Mikro: bittinen melutason ilmaisin
Mikro: bittinen melutason ilmaisin
Mikro: bittinen melutason ilmaisin
Mikro: bittinen melutason ilmaisin
Mikro: bittinen melutason ilmaisin
Mikro: bittinen melutason ilmaisin

Tämä on vain lyhyt esimerkki melutasotunnistimelle, joka perustuu micro: bit ja Pimoroni enviro: bit.

Ympäristö: bitin mikrofoni tunnistaa äänitason, ja tuloksena olevasta arvosta lasketaan sijainti 5x5 LED -matriisissa ja vastaava LED aktivoituu. Suurimmat mitatut arvot tallennetaan ja näytetään LED -matriisissa.

Arvot voidaan näyttää myös numeroina.

Joten se on pohjimmiltaan hyvin yksinkertainen melutason tunnistustyökalu, esim. luokkahuoneessa tehtäviä kokeita varten.

Kuvattua tapaa näyttää todelliset ja anturin havaitsemat maksimiarvot micro: bitit 5x5 LED -matriisissa voidaan käyttää myös muihin parametreihin, kuten lämpötila, kosteus tai paine.

Vaihe 1: Käytetyt osat ja ohjelmistot

Laitteisto:

  • Mikro: bitti
  • Pimoroni -ympäristö: bitti - mukana tulee kolme anturia äänelle, valolle ja väreille sekä paineelle/lämpötilalle/kosteudelle (20 GBP Pimoronissa)
  • A Pimoroni -teho: bitti - laitteen virta paristoista (valinnainen tai mikä tahansa muu tapa käyttää mikrobittiä, 6 GBP Pimoronissa)

Ohjelmisto:

  • Microsoft MakeCode
  • Pimoroni -ympäristö: bitti MakeCode -laajennus

Jos haluat ladata komentosarjan micro: bit-tiedostoosi, kopioi mukana toimitettu heksatiedosto micro: bit-tiedostoosi ja liitä siihen enviro: bit.

Vaihe 2: Koodi

Koodi on kirjoitettu käyttämällä Microsoft MakeCode -toimintoa lohkotilassa käyttäen Enviro: Bit -laajennusta. Alla on vastaava JavaScript -koodi.

Toiminto envirobit.getSoundLevel () lukee äänitason anturista ja palauttaa arvon 0-443.

Vakio signaali_max määrittää diodialueen maksimiarvon, joka näytetään LED -matriisissa, yllä olevia arvoja käsitellään olevan signaalin_max. Näin voit optimoida laitteen herkkyyden sovellukseesi.

Mittausympyrässä havaittu enimmäisarvo tallennetaan varianttiin noise_max ja pysyy näkyvissä LED -matriisissa.

Painikkeen "A" painaminen nollaa melun_max ja tyhjentää näytön, painikkeen "B" painaminen näyttää mitatun kohina -arvon todellisena numerona.

Arvon näyttämiseksi signaalin_max alla olevat arvot sijoitetaan 25 "lokeroon", joita edustaa yksi LED, alkaen 0 (vasen yläkulma) - 24 (oikea alareuna). Sitten x/y -asento lasketaan ja vastaava LED -valo syttyy. Signaalin_max yläpuolella olevat arvot sijoitetaan lokeroon 24. Jos arvo on kohina -maksimiarvon alapuolella, LEDit kytkeytyvät uudelleen pois päältä.

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

Vaihe 3: Koodi lämpötila- (kosteus-, paine-) anturille, jossa on min/max -tunnisteet

Koodi lämpötila- (kosteus-, paine-) anturille, jossa on min/max -tunnisteet
Koodi lämpötila- (kosteus-, paine-) anturille, jossa on min/max -tunnisteet

Täältä löydät koodin enviro: bit lämpötila -toiminnolle.

Parametrit signal_min ja signal_max asettavat LED -matriisissa näkyvän minimi- ja maksimilämpötilan (*C). Tässä signaalin_pää = 5 ja signaalin_max = 30 tuloksena 5 ja 6*C esitetään vasemmassa yläkulmassa (0, 0) ja 28/29*C oikeassa alakulmassa (4, 4).

Optimointitilaa on: nykyisen koodin noustessa ja laskiessa lämpötila jättää jälkiä LED -valoista joko päälle tai pois päältä. Toisaalta tämä mahdollistaa nykyisen lämpötilan suuntauksen (laskun/nousun) lukemisen, koska nykyinen arvo ilmaistaan vilkkuvalla LED -valolla.

Jos getTemperature () korvataan getHumidity () - tai getPressure () -arvolla ja säädetään signaalin_min- ja signaali_max -arvot vastaavasti (esim. 0/100 % vastaavasti 950/1150 hPA), nämä parametrit voidaan näyttää LED -matriisissa.

anna Temp_x = 0let Temp_5 = 0 let sign_delta = 0 anna Temp_25 = 0 anna Temp_Min = 0 let sign_min = 0 anna Temp_Max = 0 let sign_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}})

Suositeltava: