Spisu treści:
- Krok 1: Używane części i oprogramowanie
- Krok 2: Kodeks
- Krok 3: Kod czujnika temperatury (wilgotności, ciśnienia) ze wskaźnikami Min/Max
Wideo: Detektor poziomu hałasu Micro:bit: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
To tylko krótki przykład detektora poziomu hałasu opartego na micro:bit i Pimoroni enviro:bit.
Mikrofon na enviro:bit wykrywa poziom dźwięku iz otrzymanej wartości obliczana jest pozycja na matrycy LED 5x5 i aktywowana jest odpowiednia dioda LED. Maksymalne zmierzone wartości są zapisywane i wyświetlane na matrycy LED.
Wartości mogą być również wyświetlane w liczbach.
Jest to więc w zasadzie bardzo proste narzędzie do wykrywania poziomu hałasu, m.in. do eksperymentów w klasie.
Opisana metoda wyświetlania rzeczywistych i maksymalnych wartości wykrytych przez czujnik na matrycy LED micro:bits 5x5 może być również wykorzystana do innych parametrów, takich jak temperatura, wilgotność lub ciśnienie.
Krok 1: Używane części i oprogramowanie
Sprzęt komputerowy:
- Mikro:bit
- Enviro:bit od Pimoroni - jest wyposażony w trzy czujniki dźwięku, światła i koloru oraz ciśnienia/temperatury/wilgotności (20 GBP w Pimoroni)
- Pimoroni power:bit - do zasilania urządzenia z baterii (opcjonalnie lub w inny sposób do zasilania microbita, 6 GBP u Pimoroni)
Oprogramowanie:
- Microsoft MakeCode
- Rozszerzenie Pimoroni enviro:bit MakeCode
Aby załadować skrypt do swojego micro:bit, po prostu skopiuj dostarczony plik szesnastkowy do swojego micro:bit z załączonym enviro:bit.
Krok 2: Kodeks
Kod został napisany przy użyciu programu Microsoft MakeCode w trybie blokowym, przy użyciu rozszerzenia Enviro:Bit. Poniżej znajdziesz odpowiedni kod JavaScript.
Funkcja envirobit.getSoundLevel() odczytuje poziom dźwięku z czujnika, zwracając wartość od 0 do 443.
Stała signal_max określa maksymalną wartość zakresu dynamicznego, która ma być wyświetlana na matrycy LED, powyższe wartości będą traktowane jako signal_max. Pozwala to zoptymalizować czułość urządzenia pod kątem Twojej aplikacji.
Maksymalna wartość wykryta w okręgu pomiarowym jest przechowywana w wariancie noise_max i pozostaje wyświetlana na matrycy LED.
Naciśnięcie przycisku "A" resetuje noise_max i czyści ekran, naciśnięcie przycisku "B" wyświetla zmierzoną wartość szumu jako liczbę rzeczywistą.
Aby wyświetlić wartość, wartości poniżej signal_max są umieszczane w 25 "bin" reprezentowanych przez jedną diodę LED, zaczynając od 0 (lewy górny) do 24 (prawy dolny). Następnie obliczana jest pozycja x/y i zapala się odpowiednia dioda LED. Wartości powyżej signal_max są umieszczane w pojemniku 24. Jeśli wartość jest poniżej noise_max, diody LED zostaną ponownie wyłączone.
niech noise_x = 0 niech signal_max = 0 niech noise_5 = 0 niech noise_25 = 0 niech 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() } 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 } })
Krok 3: Kod czujnika temperatury (wilgotności, ciśnienia) ze wskaźnikami Min/Max
Tutaj znajdziesz kod dla funkcji temperatury enviro:bit.
Parametry signal_min i signal_max ustawiają minimalną i maksymalną temperaturę (*C) wyświetlaną na matrycy LED. Tutaj ustawienie signal_main=5 i signal_max=30 powoduje, że 5 i 6*C są reprezentowane przez górną lewą diodę LED (0, 0) a 28/29*C przez dolną prawą diodę (4, 4).
Jest miejsce na optymalizację: przy obecnym kodzie rosnące i opadające temperatury pozostawiają ślad po włączonych lub wyłączonych diodach LED. Z drugiej strony pozwala to na odczytanie aktualnej tendencji temperatury (spadek/wzrost), gdyż aktualna wartość jest sygnalizowana miganiem diody LED.
Zastąpienie getTemperature() przez getHumidity() lub getPressure() i odpowiednie dostosowanie wartości signal_min i signal_max (np. 0/100 % lub odpowiednio 950/1150 hPA) pozwoliłoby na wyświetlenie tych parametrów na matrycy LED.
let Temp_x = 0 let 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 = Matematyka.podłoga(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 } })
Zalecana:
Detektor poziomu wody: 7 kroków
Detektor poziomu wody: Czujnik ultradźwiękowy działa na tych samych zasadach, co system radarowy. Czujnik ultradźwiękowy może przekształcać energię elektryczną w fale akustyczne i odwrotnie. Słynny czujnik ultradźwiękowy HC SR04 generuje fale ultradźwiękowe o częstotliwości 40kHz.Typ
Niebezpieczny miernik lub znak poziomu hałasu: 4 kroki (ze zdjęciami)
Miernik lub znak niebezpiecznego poziomu hałasu: Uwielbiam patrzeć na kreatywne projekty ludzi. Nowoczesne narzędzia & technologia daje nam tak wiele kreatywnych możliwości. Uczę twardych materiałów uczniów szkół średnich w liceum w Nowej Zelandii, więc zawsze się rozwijam & próbowanie nowych rzeczy. Ta
Detektor poziomu światła LDR: otwieranie i zamykanie oczu: 6 kroków
Detektor poziomu światła LDR: Otwieranie i zamykanie oczu: Witam wszystkich, mam nadzieję, że ta instrukcja przypadnie wam do gustu. Wszelkie wątpliwości, uwagi lub poprawki zostaną dobrze odebrane. Układ ten został zrealizowany jako moduł sterujący dostarczający informacji o ilości światła w otoczeniu, w celu ko
Detektor poziomu koksownicy - teraz z mową!: 6 kroków (ze zdjęciami)
Coke Machine Level Detector - Now With Speech!: Ten projekt jest remiksem mojego detektora Coke Machine Level Can Level (https://www.instructables.com/id/Coke-Machine-Can-Level-Detector/) z nowymi czujnikami i dodanie dźwięku mówionego! Po wykonaniu detektora pierwszego poziomu dodałem brzęczyk piezo do g
Detektor poziomu puszek koksowniczych: 5 kroków (ze zdjęciami)
Detektor poziomu puszek koksowniczych: Rev 2.5 - uporządkował drukowane części 3D i zaktualizował złącze wtykowe do wspólnej jednostki PCB. Rev 2 - ultradźwiękowy „przycisk”; zastępuje przycisk ręczny. Naciskanie przycisku jest tak staromodne, zwłaszcza gdy już używam czujnika ultradźwiękowego