Съдържание:

Микро: битов детектор за ниво на шум: 3 стъпки
Микро: битов детектор за ниво на шум: 3 стъпки

Видео: Микро: битов детектор за ниво на шум: 3 стъпки

Видео: Микро: битов детектор за ниво на шум: 3 стъпки
Видео: Проверка китайца на безопасность #blondinkadrive 2024, Юли
Anonim
Микро: битов детектор за ниво на шум
Микро: битов детектор за ниво на шум
Микро: битов детектор за ниво на шум
Микро: битов детектор за ниво на шум
Микро: битов детектор за ниво на шум
Микро: битов детектор за ниво на шум

Това е само кратък пример за детектор за ниво на шум, базиран на micro: bit и Pimoroni enviro enviro: bit.

Микрофонът на околната среда: бит открива нивото на звука и от получената стойност се изчислява позиция на 5x5 LED матрицата и съответният светодиод се активира. Измерените максимални стойности се съхраняват и остават показани на LED матрицата.

Стойностите могат да се показват и в цифри.

Така че това е основно много прост инструмент за откриване на нивото на шума, напр. за експерименти в класната стая.

Описаният метод за показване на действителните и максималните стойности, открити от сензор на микро: бита 5x5 LED матрица, може да се използва и за други параметри като температура, влажност или налягане.

Стъпка 1: Използвани части и софтуер

Хардуер:

  • Микро: бит
  • Околна среда на Пиморони: бит - идва с три сензора за звук, светлина и цвят и налягане/температура/влажност (20 GBP в Pimoroni)
  • Захранване на Pimoroni: бит - за захранване на устройството от батерии (по избор или по друг начин за захранване на микробита, 6 GBP в Pimoroni)

Софтуер:

  • Microsoft MakeCode
  • Разширението Pimoroni enviro: bit MakeCode

За да заредите скрипта във вашия micro: bit, просто копирайте предоставения шестнадесетичен файл във вашия micro: bit с прикачен enviro: bit.

Стъпка 2: Кодът

Кодът е написан с помощта на Microsoft MakeCode в блоков режим, с помощта на разширението Enviro: Bit. Bellow намирате съответния JavaScript код.

Функцията envirobit.getSoundLevel () чете нивото на звука от сензора, връщайки стойност от 0 до 443.

Константата signal_max определя максимална стойност на динамичния диапазон, която да се показва на LED матрицата, стойностите по -горе ще се третират като същество signal_max. Това ви позволява да оптимизирате чувствителността на устройството за вашето приложение.

Максималната стойност, открита в измервателен кръг, се съхранява във варианта noise_max и остава показана на LED матрицата.

Натискането на бутон „A“нулира шума_макс и изчиства екрана, натискането на бутон „B“показва измерената стойност на шума като действително число.

За да се покаже стойността, стойностите под signal_max се поставят в 25 "контейнера", представени с един светодиод, започвайки от 0 (горе вляво) до 24 (долу вдясно). След това се изчислява позицията x/y и съответният светодиод се включва. Стойностите над signal_max се поставят в контейнер 24. Ако стойността е под noise_max, светодиодите ще бъдат изключени отново.

нека noise_x = 0 нека signal_max = 0 нека шум_5 = 0 нека шум_25 = 0 нека шум_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: Код за сензор за температура (влажност, налягане) с индикатори за мин/макс

Код за сензор за температура (влажност, налягане) с индикатори за минимални/максимални стойности
Код за сензор за температура (влажност, налягане) с индикатори за минимални/максимални стойности

Тук ще намерите код за функцията enviro: bit temperature.

Параметрите signal_min и signal_max задават минималните и максималните температури (*C), показани на LED матрицата. Тук настройката signal_main = 5 и signal_max = 30 води до 5 и 6*C, представени от горния ляв светодиод (0, 0) и 28/29*C от долния десен светодиод (4, 4).

Има място за оптимизация: с текущия код нарастващите и спадащите температури оставят следа от включени или изключени светодиоди. От друга страна, това позволява да се прочете текущата тенденция на температурата (спадане/покачване), тъй като текущата стойност се показва от мигащия светодиод.

Замяната на getTemperature () с getHumidity () или getPressure () и съответното регулиране на стойностите signal_min и signal_max (напр. 0/100 % съответно 950/1150 hPA) би позволило да се покажат тези параметри на LED матрицата.

нека 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 ()} 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}})

Препоръчано: