Mundarija:

Mikro: bit shovqin darajasini aniqlash: 3 qadam
Mikro: bit shovqin darajasini aniqlash: 3 qadam

Video: Mikro: bit shovqin darajasini aniqlash: 3 qadam

Video: Mikro: bit shovqin darajasini aniqlash: 3 qadam
Video: Загадка Титаника : Как они могли не заметить айсберг?! Самая подробная история! 2024, Iyul
Anonim
Mikro: bitli shovqin darajasini aniqlash moslamasi
Mikro: bitli shovqin darajasini aniqlash moslamasi
Mikro: bitli shovqin darajasini aniqlash moslamasi
Mikro: bitli shovqin darajasini aniqlash moslamasi
Mikro: bitli shovqin darajasini aniqlash moslamasi
Mikro: bitli shovqin darajasini aniqlash moslamasi

Bu mikro: bit va Pimoroni muhit: bitiga asoslangan shovqin darajasini aniqlash moslamasi uchun qisqa misol.

Atrofdagi mikrofon: bit tovush darajasini aniqlaydi va natijada 5x5 LED matritsasidagi pozitsiya hisoblab chiqariladi va unga mos keladigan LED yoqiladi. O'lchangan maksimal qiymatlar LED matritsasida saqlanadi va ko'rsatiladi.

Qiymatlar raqamlar bilan ham ko'rsatilishi mumkin.

Shunday qilib, bu asosan juda oddiy shovqin darajasini aniqlash vositasi, masalan. sinf xonasida tajribalar uchun.

Sensor tomonidan aniqlangan maksimal va maksimal qiymatlarni ko'rsatish uchun tasvirlangan usul 5x5 o'lchamli LED matritsasi harorat, namlik yoki bosim kabi boshqa parametrlar uchun ham ishlatilishi mumkin.

1 -qadam: Ishlatilgan qismlar va dasturiy ta'minot

Uskuna:

  • Mikro: bit
  • Pimoroni muhiti: bit - tovush, yorug'lik va rang, bosim/harorat/namlik uchun uchta datchik bilan birga keladi (Pimoronida 20 GBP)
  • Pimoroni quvvati: bit - qurilmani batareyalardan quvvatlantirish (ixtiyoriy yoki mikrobitni quvvatlantirishning boshqa usuli, Pimoroni -da 6 GBP)

Dasturiy ta'minot:

  • Microsoft MakeCode
  • Pimoroni muhiti: bit MakeCode kengaytmasi

Skriptni micro: bit-ga yuklash uchun, berilgan hex-faylni micro: bit-ga enviro: bit biriktirilgan holda nusxalash kifoya.

2 -qadam: Kod

Kod Microsoft MakeCode yordamida blokirovka rejimida, Enviro: Bit kengaytmasi yordamida yozilgan, siz tegishli JavaScript kodini topasiz.

Envirobit.getSoundLevel () funktsiyasi sensordan tovush darajasini o'qiydi va 0 dan 443 gacha qiymatni qaytaradi.

Ruxsat etilgan signal_max LED matritsasida ko'rsatiladigan dinamik diapazonning maksimal qiymatini belgilaydi, yuqoridagi qiymatlar signal_max sifatida qabul qilinadi. Bu sizning ilovangiz uchun qurilmaning sezgirligini optimallashtirish imkonini beradi.

O'lchov doirasida aniqlangan maksimal qiymat noise_max variantida saqlanadi va LED matritsasida qoladi.

"A" tugmachasi shovqin_maxini tiklaydi va ekranni tozalaydi, "B" tugmachasini bosish shovqinning haqiqiy qiymatini ko'rsatadi.

Qiymatni ko'rsatish uchun signal_max ostidagi qiymatlar bitta LED bilan ifodalangan 25 "axlat qutisiga" joylashtiriladi, 0 dan (yuqori chapdan) 24gacha (pastki o'ng). Keyin x/y pozitsiyasi hisoblab chiqiladi va mos keladigan LED yonadi. Signal_maxdan yuqori bo'lgan qiymatlar 24 -qutiga joylashtiriladi. Agar bu signal_maxdan past bo'lsa, LEDlar yana o'chadi.

shovqin_x = 0 signal signal_max = 0 bo'lsin shovqin_5 = 0 bo'lsin shovqin_25 = 0 bo'lsin shovqin_max = 0 asosiy.showString ("Shovqin") shovqin_max = 0 shovqin_25 = 0 shovqin_5 = 0 signal_max = 250 asosiy..buttonIsPressed (Button. B)) {basic.showNumber (envirobit.getSoundLevel ()) basic.showString ("-")} if (input.buttonIsPressed (Button. A)) {noise_max = 0 basic.clearScreen ()} shovqin_25 = Math.floor (envirobit.getSoundLevel () / signal_max * 25) agar (shovqin_25> 24) {shovqin_25 = 24} shovqin_5 = Math.floor (shovqin_25 / 5) shovqin_x = shovqin_25 - shovqin_5 * 5 led.plot (shovqin_x, shovqin_5) asosiy.pauza (200) agar (shovqin_25 shovqin_max) {shovqin_max = shovqin_25}})

3 -qadam: Min/Maks indikatorlari bo'lgan harorat (namlik, bosim) sensori kodi

Min/Maks indikatorlari bo'lgan harorat (namlik, bosim) sensori uchun kod
Min/Maks indikatorlari bo'lgan harorat (namlik, bosim) sensori uchun kod

Bu erda siz enviro: bit temperaturasi funktsiyasi uchun kodni topasiz.

Signal_min va signal_max parametrlari LED matritsasida ko'rsatilgan minimal va maksimal haroratni (*C) o'rnatadi. Bu erda signal_main = 5 va signal_max = 30 ni sozlash natijasida 5 va 6*S yuqori chap LED (0, 0) va 28/29 S o'ng pastki LED (4, 4) bilan ifodalanadi.

Optimallashtirish uchun joy bor: joriy kod bilan haroratning ko'tarilishi va pasayishi LEDlarning izini qoldiradi yoki o'chadi yoki o'chadi. Boshqa tomondan, bu joriy harorat tendentsiyasini o'qishga imkon beradi (tushish/ko'tarilish), chunki joriy qiymat miltillovchi LED bilan ko'rsatiladi.

GetTumperature () ni getHumidity () yoki getPressure () bilan almashtirish va signal_min va signal_max qiymatlarini mos ravishda sozlash (masalan, mos ravishda 0/100 % 950/1150 hPA) bu ko'rsatkichlarni LED matritsasida ko'rsatishga imkon beradi.

let Temp_x = 0let Temp_5 = 0 signal_delta = 0 bo'lsin Temp_25 = 0 bo'lsin Temp_Min = 0 bo'lsin signal_min = 0 bo'lsin Temp_Max = 0 bo'lsin signal_max = 0 asosiy.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}})

Tavsiya: