Სარჩევი:

მიკრო: ბიტი ხმაურის დონის დეტექტორი: 3 ნაბიჯი
მიკრო: ბიტი ხმაურის დონის დეტექტორი: 3 ნაბიჯი

ვიდეო: მიკრო: ბიტი ხმაურის დონის დეტექტორი: 3 ნაბიჯი

ვიდეო: მიკრო: ბიტი ხმაურის დონის დეტექტორი: 3 ნაბიჯი
ვიდეო: ყველას დავიჭერთ??? რადიო მიმღები Tecsun pl368. ყველა ჯგუფის რადიო მიღება 2024, ივლისი
Anonim
მიკრო: ბიტის ხმაურის დონის დეტექტორი
მიკრო: ბიტის ხმაურის დონის დეტექტორი
მიკრო: ბიტის ხმაურის დონის დეტექტორი
მიკრო: ბიტის ხმაურის დონის დეტექტორი
მიკრო: ბიტის ხმაურის დონის დეტექტორი
მიკრო: ბიტის ხმაურის დონის დეტექტორი

ეს მხოლოდ მოკლე მაგალითია ხმაურის დონის დეტექტორისთვის, რომელიც დაფუძნებულია მიკრო: ბიტზე და Pimoroni enviro: ბიტზე.

მიკროფონი გარემოზე: ბიტი ამოიცნობს ხმის დონეს და შედეგად მიღებული მნიშვნელობიდან გამოითვლება 5X5 LED მატრიცაზე პოზიცია და გააქტიურებულია შესაბამისი LED. გაზომილი მაქსიმალური მნიშვნელობები ინახება და რჩება ნაჩვენები LED მატრიცაზე.

ღირებულებები ასევე შეიძლება ნაჩვენები იყოს რიცხვებში.

ასე რომ, ეს არის ძირითადად ძალიან მარტივი ხმაურის დონის გამოვლენის ინსტრუმენტი, მაგ. საკლასო ოთახის ექსპერიმენტებისთვის.

აღწერილი მეთოდი სენსორის მიერ მიკროზე გამოვლენილი ფაქტობრივი და მაქსიმალური მნიშვნელობების გამოსახატავად: ბიტი 5x5 LED მატრიცა შეიძლება გამოყენებულ იქნას სხვა პარამეტრებისთვის, როგორიცაა ტემპერატურა, ტენიანობა ან წნევა.

ნაბიჯი 1: გამოყენებული ნაწილები და პროგრამული უზრუნველყოფა

აპარატურა:

  • მიკრო: ცოტა
  • Pimoroni enviro: bit - გააჩნია სამი სენსორი ხმის, შუქისა და ფერისთვის და წნევა/ტემპერატურა/ტენიანობა (20 GBP Pimoroni– ში)
  • პიმორონის სიმძლავრე: ბიტი - მოწყობილობის დასატენად ბატარეები (სურვილისამებრ, ან მიკრობიტის კვების ნებისმიერი სხვა გზა, 6 GBP Pimoroni– ში)

პროგრამული უზრუნველყოფა:

  • Microsoft MakeCode
  • Pimoroni enviro: bit MakeCode გაფართოება

სკრიპტის თქვენს მიკრო: ბიტში ჩასატვირთად, უბრალოდ დააკოპირეთ მოწოდებული ექვს ფაილი თქვენს მიკრო: ბიტში, მიმაგრებული გარემოთი: ბიტი.

ნაბიჯი 2: კოდი

კოდი დაიწერა Microsoft MakeCode– ის გამოყენებით ბლოკის რეჟიმში, Enviro: Bit გაფართოების გამოყენებით. ქვემოთ იპოვით შესაბამის JavaScript კოდს.

ფუნქცია envirobit.getSoundLevel () კითხულობს ხმის დონეს სენსორიდან, აბრუნებს მნიშვნელობას 0 -დან 443 -მდე.

მუდმივი სიგნალის_მაქსი განსაზღვრავს დინამიური დიაპაზონის მაქსიმალურ მნიშვნელობას, რომელიც გამოჩნდება LED მატრიცაზე, ზემოთ მოყვანილი მნიშვნელობები განიხილება როგორც სიგნალის_მაქსი. ეს საშუალებას გაძლევთ ოპტიმიზიროთ მოწყობილობის მგრძნობელობა თქვენი აპლიკაციის მიმართ.

საზომი წრეში გამოვლენილი მაქსიმალური მნიშვნელობა ინახება ხმაურის_მაქს ვარიანტში და რჩება ნაჩვენები LED მატრიცაზე.

ღილაკზე "A" დაჭერით აღდგება noise_max და იწმინდება ეკრანი, ღილაკზე "B" დაჭერით გამოჩნდება გაზომილი ხმაურის მნიშვნელობა, როგორც რეალური რიცხვი.

მნიშვნელობის საჩვენებლად სიგნალის ქვემოთ მითითებული მნიშვნელობები მოთავსებულია 25 "ბინში", რომელიც წარმოდგენილია ერთი LED- ით, 0 -დან (ზედა მარცხნივ) 24 -მდე (ქვედა მარჯვნივ). შემდეგ გამოითვლება x/y პოზიცია და შესაბამისი LED ჩართულია. სიგნალის_მაქსის ზემოთ მოთავსებულია 24 -ის ყუთში. თუ მნიშვნელობა არის ხმაურის_მაქსზე ქვემოთ, LED- ები კვლავ გადაირთვება.

ხმაური _ x = 0 ნება.buttonIsPressed (Button. B)) {basic.showNumber (envirobit.getSoundLevel ()) basic.showString ("-")} if (input.buttonIsPressed (Button. A)) {noise_max = 0 basic.clearScreen ()} ხმაური_25 = მათემატიკა.ს სართული (envirobit.getSoundLevel () / სიგნალი_მაქსი * 25) თუ (ხმაური_25> 24) {ხმაური_25 = 24} ხმაური_5 = მათემატიკა. სართული (ხმაური_25 / 5) ხმაური_ x = ხმაური_25 - ხმაური_5 * 5 led.plot (ხმაური_ x, ხმაური_5) ძირითადი. პაუზა (200) თუ (ხმაური_25 ხმაური_მაქსი) {ხმაური_მაქსი = ხმაური_25}})

ნაბიჯი 3: ტემპერატურის (ტენიანობის, წნევის) სენსორის კოდი მინიმალური/მაქსიმალური მაჩვენებლებით

ტემპერატურის (ტენიანობის, წნევის) სენსორის კოდი მინიმალური/მაქსიმალური მაჩვენებლებით
ტემპერატურის (ტენიანობის, წნევის) სენსორის კოდი მინიმალური/მაქსიმალური მაჩვენებლებით

აქ თქვენ ნახავთ კოდს enviro– სთვის: ბიტის ტემპერატურის ფუნქცია.

სიგნალის_მინი და სიგნალი_მაქსი განსაზღვრავს მინიმალურ და მაქსიმალურ ტემპერატურას (*C), რომელიც გამოჩნდება LED მატრიცაზე. აქ მითითებულია სიგნალის_მთავარი = 5 და სიგნალის_მაქსი = 30 შედეგად 5 და 6*C არის გამოსახული ზედა მარცხენა LED (0, 0) და 28/29*C ქვედა მარჯვენა LED (4, 4).

ოპტიმიზაციის ადგილი არსებობს: მიმდინარე კოდთან ერთად ტემპერატურის ზრდა და ვარდნა ტოვებს LED- ების კვალს ან ჩართულ ან გამორთულ. მეორეს მხრივ, ეს საშუალებას გაძლევთ წაიკითხოთ მიმდინარე ტემპერატურის ტენდენცია (დაცემა/მატება), რადგან მიმდინარე მნიშვნელობა მითითებულია მოციმციმე LED- ით.

GetTemperature () –ის getHumidity () ან getPressure () შეცვლა და სიგნალის_მინი და signal_max მნიშვნელობების შესაბამისად მორგება (მაგ. 0/100 % შესაბამისად 950/1150 hPA) საშუალებას მოგცემთ აჩვენოთ ეს პარამეტრები LED მატრიცაზე.

ნება Temp_x = 0letlet Temp_5 = 0 ნება signal_delta = 0 ნება Temp_25 = 0 ნება Temp_Min = 0 ნება სიგნალი_მინი = 0 ნება Temp_Max = 0 ნება სიგნალი_მაქსი = 0 ძირითადი. showString ("Temp") signal_max = 30 signal_min = 5 signal_delta = signal_max - signal_min Temp_Max = 0 Temp_Min = 24 ძირითადი. სამუდამოდ (ფუნქცია () {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) თუ (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) თუ (Temp_25 Temp_Min) {led.unplot (Temp_x, Temp_5)} თუ (Temp_25> Temp_Max) {Temp_Max = Temp_25} თუ (Temp_25 <Temp_Min) {Temp_Min = Temp_25}})

გირჩევთ: