Talaan ng mga Nilalaman:

Micro: bit Detalye ng Antas ng Ingay: 3 Mga Hakbang
Micro: bit Detalye ng Antas ng Ingay: 3 Mga Hakbang

Video: Micro: bit Detalye ng Antas ng Ingay: 3 Mga Hakbang

Video: Micro: bit Detalye ng Antas ng Ingay: 3 Mga Hakbang
Video: Ang trabaho ko ay pagmamasid sa kagubatan at may kakaibang nangyayari dito. 2024, Nobyembre
Anonim
Micro: bit Detector ng Antas ng Ingay
Micro: bit Detector ng Antas ng Ingay
Micro: bit Detector ng Antas ng Ingay
Micro: bit Detector ng Antas ng Ingay
Micro: bit Detalye ng Antas ng Ingay
Micro: bit Detalye ng Antas ng Ingay

Ito ay isang maikling halimbawa lamang para sa isang antas ng ingay na detektor batay sa micro: bit at ang Pimoroni enviro: bit.

Ang mikropono sa enviro: medyo nakita ang antas ng tunog, at mula sa nagresultang halaga ang isang posisyon sa 5x5 LED matrix ay kinakalkula at ang kaukulang LED ay naaktibo. Ang maximum na mga halaga na sinusukat ay nakaimbak at mananatiling ipinapakita sa LED matrix.

Ang mga halaga ay maaari ding ipakita sa mga numero.

Kaya't isa lamang itong napakasimpleng tool sa pagtuklas sa antas ng ingay, hal. para sa mga eksperimento sa silid ng klase.

Ang pamamaraan na inilarawan upang maipakita ang aktwal at ang maximum na mga halaga na nakita ng isang sensor sa micro: ang mga bit 5x5 LED matrix ay maaari ding gamitin para sa iba pang mga parameter tulad ng temperatura, halumigmig o presyon.

Hakbang 1: Ginamit ang Mga Bahagi at Software

Hardware:

  • Isang micro: kaunti
  • Ang isang Pimoroni enviro: bit - ay mayroong tatlong mga sensor para sa tunog, ilaw at kulay, at presyon / temperatura / halumigmig (20 GBP sa Pimoroni)
  • Isang lakas na Pimoroni: kaunti - upang mapagana ang aparato na bumubuo ng mga baterya (opsyonal, o anumang iba pang paraan upang mapagana ang microbit, 6 GBP sa Pimoroni)

Software:

  • Microsoft MakeCode
  • Ang Pimoroni enviro: bit MakeCode extension

Upang mai-load ang script sa iyong micro: bit, kopyahin lamang ang ibinigay na hex-file sa iyong micro: bit na may kalakip na enviro: bit.

Hakbang 2: Ang Code

Ang code ay nakasulat gamit ang Microsoft MakeCode sa block mode, gamit ang Enviro: Bit extension. Sa ibaba makikita mo ang kaukulang JavaScript Code.

Ang function na envirobit.getSoundLevel () ay binabasa ang antas ng tunog mula sa sensor, na binabalik ang isang halaga mula 0 hanggang 443.

Ang pare-pareho signal_max tumutukoy sa isang maximum na halaga ng mga pabagu-bagong saklaw upang maipakita sa LED matrix, mga halaga sa itaas ay tratuhin bilang isang pagiging signal_max. Pinapayagan kang i-optimize ang pagiging sensitibo ng aparato para sa iyong aplikasyon.

Ang maximum na halagang napansin sa isang bilog ng pagsukat ay nakaimbak sa iba`t ibang ingay_max at nananatiling ipinakita sa LED matrix.

Ang pagpindot sa pindutan na "A" ay nag-reset ng noise_max at nililimas ang screen, ang pagpindot sa pindutan na "B" ay nagpapakita ng sinusukat na halaga ng ingay bilang aktwal na numero.

Upang maipakita ang halaga, ang mga halagang nasa ibaba signal_max ay inilalagay sa 25 "mga bin" na kinakatawan ng isang LED, simula sa 0 (itaas na kaliwa) hanggang 24 (ibabang kanan). Pagkatapos ang posisyon ng x / y ay kinakalkula at ang kaukulang LED ay nakabukas. Ang mga halaga sa itaas ng signal_max ay inilalagay sa basahan 24. Kung ang halaga ay nasa ibaba ng ingay_max, ang mga LED ay lilipat muli.

hayaan ang 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.verver (function () {habang (input.buttonIsPressed (Button. B)) {basic.showNumber (envirobit.getSoundLevel ()) basic.showString ("-")} kung (input.buttonIsPressed (Button. A)) {noise_max = 0 basic.clearScreen ()} noise_25 = Math.floor (envirobit.getSoundLevel () / signal_max * 25) kung (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) kung (noise_25 noise_max) {noise_max = noise_25}})

Hakbang 3: Isang Code para sa isang Temperatura (Humidity, Pressure) Sensor na May Min / Max Indentifier

Isang Code para sa isang Temperatura (Humidity, Pressure) Sensor na May Min / Max Indentifiers
Isang Code para sa isang Temperatura (Humidity, Pressure) Sensor na May Min / Max Indentifiers

Nahanap mo ang isang code para sa enviro: kaunting pag-andar ng temperatura.

Ang mga parameter ng signal_min at signal_max ay nagtakda ng minimum at maximum na temperatura (* C) na ipinapakita sa LED matrix. Dito nagtatakda signal_main = 5 at signal_max = 30 mga resulta sa 5 at 6 * C na kinakatawan ng itaas na kaliwang LED (0, 0) at 28/29 * C ng mas mababang kanang LED (4, 4).

Mayroong puwang para sa pag-optimize: sa kasalukuyang pagtaas ng code at pagbagsak ng temperatura ay nag-iiwan ng isang bakas ng mga LED na naka-on o naka-off. Sa kabilang banda pinapayagan nitong basahin ang kasalukuyang pagkahilig sa temperatura (pagbagsak / pagtaas), dahil ang kasalukuyang halaga ay ipinahiwatig ng kumikislap na LED.

Ang pagpapalit ng getTemperature () sa pamamagitan ng getHumidity () o getPressure () at pag-aayos ng signal_min at signal_max na halaga nang naaayon (hal. 0/100% ayon sa pagkakabanggit 950/1150 hPA) ay magpapahintulot na ipakita ang mga parameter na ito sa LED matrix.

hayaan ang Temp_x = 0let Temp_5 = 0 let signal_delta = 0 let Temp_25 = 0 let Temp_Min = 0 let signal_min = 0 let Temp_Max = 0 let 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 ()} habang (input.buttonIsPressed (Button. B)) { basic.showNumber (Math.round (envirobit.getTemperature ())) basic.showString ("C")} Temp_25 = Math.floor ((envirobit.getTemperature () - signal_min) / signal_delta * 25) kung (Temp_25> 24) {Temp_25 = 24} kung (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) kung (Temp_25 Temp_Min) {led.unplot (Temp_x, Temp_5)} kung (Temp_25> Temp_Max) {Temp_Max = Temp_25} kung (Temp_25 <Temp_Min) {Temp_Min = Temp_25}})

Inirerekumendang: