Мазмуну:

Микро: кичине ызы -чуунун деңгээлин аныктоочу: 3 кадам
Микро: кичине ызы -чуунун деңгээлин аныктоочу: 3 кадам

Video: Микро: кичине ызы -чуунун деңгээлин аныктоочу: 3 кадам

Video: Микро: кичине ызы -чуунун деңгээлин аныктоочу: 3 кадам
Video: 拜登真的在总统大选辩论时作弊了吗?价格歧视无处不在大数据初始财产权属于你而不是幕后数据掌控者 Did Biden cheat in the presidential debate? 2024, Ноябрь
Anonim
Микро: аз ызы -чуу деңгээлин аныктоочу
Микро: аз ызы -чуу деңгээлин аныктоочу
Микро: аз ызы -чуу деңгээлин аныктоочу
Микро: аз ызы -чуу деңгээлин аныктоочу
Микро: аз ызы -чуу деңгээлин аныктоочу
Микро: аз ызы -чуу деңгээлин аныктоочу

Бул микро: битке жана Pimoroni enviro: bitке негизделген ызы -чуунун детекторунун кыска мисалы.

Айланадагы микрофон: бит үн деңгээлин аныктайт, натыйжада 5x5 LED матрицасындагы позиция эсептелет жана тиешелүү LED иштетилет. Өлчөнгөн максималдуу баалуулуктар LED матрицасында сакталып турат.

Маанилер да сандар менен көрсөтүлүшү мүмкүн.

Ошентип, бул негизинен ызы -чуунун деңгээлин аныктоочу өтө жөнөкөй курал, мис. класстык эксперименттер үчүн.

Микро: бит 5x5 LED матрицасында аныкталган чыныгы жана максималдуу маанилерди көрсөтүү үчүн сүрөттөлгөн ыкма температура, нымдуулук же басым сыяктуу башка параметрлер үчүн да колдонулушу мүмкүн.

1 -кадам: Колдонулган бөлүктөр жана программалык камсыздоо

Аппараттык:

  • Микро: бит
  • Pimoroni чөйрөсү: бит - үн, жарык жана түс, басым/температура/нымдуулук үчүн үч сенсор менен келет (20 GBP Pimoroni)
  • Pimoroni күчү: бит - түзмөктү батарейкадан иштетүү үчүн (милдеттүү эмес, же микробиттин башка жолун иштетүү үчүн, 6 GBP Pimoroni)

Программалык камсыздоо:

  • Microsoft MakeCode
  • Pimoroni чөйрөсү: бит MakeCode кеңейтүүсү

Сценарийди micro: bitке жүктөө үчүн, берилген hex-файлды micro: bitке enviro: bit тиркелип көчүрүңүз.

2 -кадам: Код

Код Microsoft MakeCode менен блокированный режимде жазылган, Enviro: Bit кеңейтүүсүн колдонуу менен. Сиз тиешелүү JavaScript кодун табасыз.

Envirobit.getSoundLevel () функциясы сенсордон үн деңгээлин окуйт, 0дөн 443кө чейинки маанини кайтарат.

Туруктуу signal_max LED матрицасында көрсөтүлүүчү динамикалык диапазондун максималдуу маанисин аныктайт, жогорудагы маанилер signal_max катары каралат. Бул сиздин колдонмоңуз үчүн түзмөктүн сезгичтигин оптималдаштырууга мүмкүндүк берет.

Өлчөө чөйрөсүндө аныкталган максималдуу мааниси Variant_Sum_Max сакталат жана LED матрицасында көрсөтүлөт.

"А" баскычын басуу ызы_макты баштапкы абалга келтирет жана экранды тазалайт, "В" баскычын басуу чуунун көлөмүн чыныгы сан катары көрсөтөт.

Бааны көрсөтүү үчүн signal_max астындагы маанилер 0 (жогорку сол) менен 24 (астыңкы оң) баштап, бир LED менен көрсөтүлгөн 25 "контейнерге" жайгаштырылган. Андан кийин x/y позициясы эсептелет жана тиешелүү LED күйгүзүлөт. Signal_maxтан жогору маанилер 24 -контейнерге жайгаштырылган. Эгерде мааниси ызы -чуудан төмөн болсо, анда диоддор кайра күйгүзүлөт.

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 ()} ызы_25 = Math.floor (envirobit.getSoundLevel () / signal_max * 25) if (ызы_25> 24) {ызы_25 = 24} ызы -чуу = 5 -математика (ызы_25 / 5) ызы -чуу = шуу_25 - ызы_5 * 5 led.plot (ызы_х, ызы -чуу_5) негизги.пауза (200) эгер (ызы -чуу_25 ызы_мак) {ызы_мак = ызы_25}})

3 -кадам: Мин/Макс индикаторлору бар температура (нымдуулук, басым) сенсорунун коду

Мин/Максимум индикаторлору бар температура (нымдуулук, басым) сенсорунун коду
Мин/Максимум индикаторлору бар температура (нымдуулук, басым) сенсорунун коду

Бул жерде сиз enviro: бит температурасы функциясынын кодун таба аласыз.

Signal_min жана signal_max параметрлери LED матрицасында көрсөтүлгөн минималдуу жана максималдуу температураларды (*C) орнотот. Бул жерде signal_main = 5 жана signal_max = 30 жыйынтыктары 5 жана 6*C жогорку сол LED (0, 0) жана 28/29*C төмөнкү оң LED (4, 4) менен көрсөтүлөт.

Оптималдаштырууга орун бар: учурдагы коддун жогорулашы жана төмөндөшү менен диоддордун изи калат же күйөт же өчөт. Экинчи жагынан, бул учурдагы температуранын тенденциясын (түшүү/көтөрүлүү) окууга мүмкүндүк берет, анткени учурдагы мааниси жарк эткен LED менен көрсөтүлөт.

GetHumidity () же getPressure () менен getTemperature () алмаштыруу жана ага ылайык signal_min жана signal_max баалуулуктарын тууралоо (мис. 0/100 % тиешелүүлүгүнө жараша 950/1150 hPA) бул параметрлерди LED матрицасында көрсөтүүгө мүмкүндүк берет.

Let 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}})

Сунушталууда: