Mục lục:

Máy dò mức ồn vi mô: bit: 3 bước
Máy dò mức ồn vi mô: bit: 3 bước

Video: Máy dò mức ồn vi mô: bit: 3 bước

Video: Máy dò mức ồn vi mô: bit: 3 bước
Video: Don't Côi - RPT Orijinn x Ronboogz (Visualizer) 2024, Tháng mười một
Anonim
Máy dò mức ồn vi mô: bit
Máy dò mức ồn vi mô: bit
Máy dò mức ồn vi mô: bit
Máy dò mức ồn vi mô: bit
Máy dò mức ồn vi mô: bit
Máy dò mức ồn vi mô: bit

Đây chỉ là một ví dụ ngắn gọn cho máy dò mức ồn dựa trên micro: bit và enviro Pimoroni: bit.

Micrô trên enviro: bit phát hiện mức âm thanh và từ giá trị kết quả, một vị trí trên ma trận LED 5x5 được tính toán và đèn LED tương ứng được kích hoạt. Các giá trị lớn nhất đo được được lưu trữ và vẫn hiển thị trên ma trận LED.

Các giá trị cũng có thể được hiển thị bằng số.

Vì vậy, về cơ bản nó là một công cụ phát hiện mức ồn rất đơn giản, ví dụ: cho các thí nghiệm trong phòng học.

Phương pháp được mô tả để hiển thị các giá trị thực tế và giá trị tối đa được phát hiện bởi cảm biến trên ma trận LED 5x5 micro: bits cũng có thể được sử dụng cho các thông số khác như nhiệt độ, độ ẩm hoặc áp suất.

Bước 1: Các bộ phận và phần mềm được sử dụng

Phần cứng:

  • A micro: bit
  • Một enviro Pimoroni: bit - đi kèm với ba cảm biến cho âm thanh, ánh sáng và màu sắc cũng như áp suất / nhiệt độ / độ ẩm (20 GBP tại Pimoroni)
  • Nguồn Pimoroni: bit - để cung cấp năng lượng cho pin dạng thiết bị (tùy chọn hoặc bất kỳ cách nào khác để cấp nguồn cho microbit, 6 GBP tại Pimoroni)

Phần mềm:

  • Microsoft MakeCode
  • Phần mở rộng Pimoroni enviro: bit MakeCode

Để tải tập lệnh vào micro: bit của bạn, chỉ cần sao chép tệp hex được cung cấp vào micro: bit của bạn có đính kèm enviro: bit.

Bước 2: Mã

Mã đã được viết bằng Microsoft MakeCode ở chế độ khối, sử dụng phần mở rộng Enviro: Bit. Sau đây, bạn tìm thấy Mã JavaScript tương ứng.

Hàm envirobit.getSoundLevel () đọc mức âm thanh từ cảm biến, trả về giá trị từ 0 đến 443.

Hằng số signal_max xác định giá trị lớn nhất của dải động được hiển thị trên ma trận LED, các giá trị trên sẽ được coi là signal_max. Điều này cho phép bạn tối ưu hóa độ nhạy của thiết bị cho ứng dụng của mình.

Giá trị lớn nhất được phát hiện trong một vòng đo được lưu trữ trong biến thể noise_max và vẫn được hiển thị trên ma trận LED.

Nhấn nút "A" đặt lại độ ồn_max và xóa màn hình, nhấn nút "B" hiển thị giá trị độ ồn đo được dưới dạng số thực.

Để hiển thị giá trị, các giá trị dưới signal_max được đặt trong 25 "thùng" được biểu thị bằng một đèn LED, bắt đầu từ 0 (phía trên bên trái) đến 24 (phía dưới bên phải). Sau đó, vị trí x / y được tính toán và đèn LED tương ứng được bật. Các giá trị trên signal_max được đặt trong bin 24. Nếu giá trị dưới mức noise_max, các đèn LED sẽ được chuyển lại.

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 (đầu vào.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}})

Bước 3: Mã cho cảm biến nhiệt độ (độ ẩm, áp suất) với bộ cảm biến tối thiểu / tối đa

Mã cho cảm biến nhiệt độ (độ ẩm, áp suất) với bộ cảm biến tối thiểu / tối đa
Mã cho cảm biến nhiệt độ (độ ẩm, áp suất) với bộ cảm biến tối thiểu / tối đa

Tại đây bạn tìm thấy mã cho hàm nhiệt độ bit: enviro.

Các thông số signal_min và signal_max đặt nhiệt độ tối thiểu và tối đa (* C) hiển thị trên ma trận LED. Ở đây thiết lập signal_main = 5 và signal_max = 30 dẫn đến kết quả là 5 và 6 * C được biểu thị bằng đèn LED phía trên bên trái (0, 0) và 28/29 * C bằng đèn LED phía dưới bên phải (4, 4).

Có chỗ để tối ưu hóa: với mã hiện tại nhiệt độ tăng và giảm đang để lại dấu vết của đèn LED hoặc bật hoặc tắt. Mặt khác, điều này cho phép đọc xu hướng nhiệt độ hiện tại (giảm / tăng), vì giá trị hiện tại được biểu thị bằng đèn LED nhấp nháy.

Thay thế getTempe Heat () bằng getHumidity () hoặc getPressure () và điều chỉnh các giá trị signal_min và signal_max cho phù hợp (ví dụ: 0/100% tương ứng 950/1150 hPA) sẽ cho phép hiển thị các thông số này trên ma trận 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.getTempentic ())) basic.showString ("C")} Temp_25 = Math.floor ((envirobit.getTempe Heat () - 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}})

Đề xuất: