Daftar Isi:

Mikro:bit Detektor Tingkat Kebisingan: 3 Langkah
Mikro:bit Detektor Tingkat Kebisingan: 3 Langkah

Video: Mikro:bit Detektor Tingkat Kebisingan: 3 Langkah

Video: Mikro:bit Detektor Tingkat Kebisingan: 3 Langkah
Video: How to test for Microwave Leakage (Using a Microwave Leakage Detector) 2024, November
Anonim
Mikro: Detektor Tingkat Kebisingan bit
Mikro: Detektor Tingkat Kebisingan bit
Mikro: Detektor Tingkat Kebisingan bit
Mikro: Detektor Tingkat Kebisingan bit
Mikro: Detektor Tingkat Kebisingan bit
Mikro: Detektor Tingkat Kebisingan bit

Ini hanyalah contoh singkat untuk pendeteksi tingkat kebisingan berdasarkan mikro:bit dan enviro:bit Pimoroni.

Mikrofon pada enviro:bit mendeteksi tingkat suara, dan dari nilai yang dihasilkan, posisi pada matriks LED 5x5 dihitung dan LED yang sesuai diaktifkan. Nilai maksimum yang diukur disimpan dan tetap ditampilkan pada matriks LED.

Nilai juga dapat ditampilkan dalam angka.

Jadi pada dasarnya ini adalah alat pendeteksi tingkat kebisingan yang sangat sederhana, mis. untuk eksperimen ruang kelas.

Metode yang dijelaskan untuk menampilkan nilai aktual dan maksimum yang terdeteksi oleh sensor pada matriks LED mikro:bit 5x5 juga dapat digunakan untuk parameter lain seperti suhu, kelembaban, atau tekanan.

Langkah 1: Bagian dan Perangkat Lunak yang Digunakan

Perangkat keras:

  • Sebuah mikro: bit
  • A Pimoroni enviro:bit - dilengkapi dengan tiga sensor untuk suara, cahaya dan warna, dan tekanan/suhu/kelembaban (20 GBP di Pimoroni)
  • Daya Pimoroni:bit - untuk memberi daya pada perangkat dari baterai (opsional, atau cara lain apa pun untuk memberi daya pada mikrobit, 6 GBP di Pimoroni)

Perangkat lunak:

  • Microsoft MakeCode
  • Enviro Pimoroni: bit ekstensi MakeCode

Untuk memuat skrip ke mikro:bit Anda, cukup salin file hex yang disediakan ke mikro:bit Anda dengan enviro:bit terlampir.

Langkah 2: Kode

Kode telah ditulis menggunakan Microsoft MakeCode dalam mode blok, menggunakan ekstensi Enviro:Bit. Di bawah ini Anda menemukan Kode JavaScript yang sesuai.

Fungsi envirobit.getSoundLevel() membaca tingkat suara dari sensor, mengembalikan nilai dari 0 hingga 443.

Signal_max konstan mendefinisikan nilai maksimum rentang dinamis yang akan ditampilkan pada matriks LED, nilai di atas akan diperlakukan sebagai signal_max. Ini memungkinkan Anda untuk mengoptimalkan sensitivitas perangkat untuk aplikasi Anda.

Nilai maksimum yang terdeteksi dalam lingkaran pengukuran disimpan dalam varian noise_max dan tetap ditampilkan pada matriks LED.

Menekan tombol "A" mengatur ulang noise_max dan membersihkan layar, menekan tombol "B" menampilkan nilai kebisingan yang diukur sebagai angka sebenarnya.

Untuk menampilkan nilai, nilai di bawah signal_max ditempatkan di 25 "bins" yang diwakili oleh satu LED, mulai dari 0 (kiri atas) hingga 24 (kanan bawah). Kemudian posisi x/y dihitung dan LED yang sesuai dinyalakan. Nilai di atas signal_max ditempatkan di bin 24. Jika nilainya di bawah noise_max, LED akan dinyalakan kembali.

biarkan noise_x = 0biarkan signal_max = 0 biarkan noise_5 = 0 biarkan noise_25 = 0 biarkan 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 } })

Langkah 3: Kode untuk Sensor Suhu (Kelembaban, Tekanan) Dengan Pengenal Min/Maks

Kode untuk Sensor Suhu (Kelembaban, Tekanan) Dengan Pengenal Min/Maks
Kode untuk Sensor Suhu (Kelembaban, Tekanan) Dengan Pengenal Min/Maks

Di sini Anda menemukan kode untuk fungsi enviro:bit temperature.

Parameter signal_min dan signal_max mengatur suhu minimum dan maksimum (*C) yang ditampilkan pada matriks LED. Di sini pengaturan signal_main=5 dan signal_max=30 menghasilkan 5 dan 6*C yang diwakili oleh LED kiri atas (0, 0) dan 28/29*C oleh LED kanan bawah (4, 4).

Ada ruang untuk pengoptimalan: dengan kode saat ini naik dan turun, suhu meninggalkan jejak LED yang dihidupkan atau dimatikan. Di sisi lain ini memungkinkan untuk membaca kecenderungan suhu saat ini (turun/naik), karena nilai arus ditunjukkan oleh LED yang berkedip.

Mengganti getTemperature() dengan getHumidity() atau getPressure() dan menyesuaikan nilai signal_min dan signal_max yang sesuai (misalnya 0/100 % masing-masing 950/1150 hPA) akan memungkinkan untuk menampilkan parameter ini pada matriks LED.

biarkan Temp_x = 0 biarkan Temp_5 = 0 biarkan signal_delta = 0 biarkan Temp_25 = 0 biarkan Temp_Min = 0 biarkan signal_min = 0 biarkan Temp_Max = 0 biarkan 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 } })

Direkomendasikan: