Dự án 09: Bơm nước tự động - MakerEdu Inventor Kit for Micro:bit

From MakerLab Wiki
Jump to navigation Jump to search

Mức độ: Trung bình ★★★★★☆☆☆☆

Danh sách thiết bị

Sơ đồ kết nối

MakerEDU Shield Thiết bị
Port P0 [MKE-S13] - Độ ẩm đất
Port P1 [MKE-M04] - Biến trở
Motor_A Động cơ DC bơm nước

Mô tả dự án

Trong dự án này, bạn sẽ học cách làm một bình bơm nước tự động, bằng cách dùng chính cảm biến Độ ẩm đất đấy.

Bên cạnh bạn có thể dùng biến trở để điều chỉnh tốc độ bơm phù hợp theo mong muốn.

Mực độ nước trong bình được thể hiện qua Led Matrix.

Icon-Attention-White.png Chú ý:
Để sử dụng được tính năng Driver tích hợp trên MakerEDU Shield, bạn cần cài đặt thêm Extension "MakerEdu_Hardware" vào dự án của mình (nếu chưa có) theo bài hướng dẫn này.

Bên cạnh, để Motor hoạt động ổn định, các bạn cần cấp nguồn riêng 5V qua cổng microUSB trên Shield.

Các bước thực hiện

Tạo code

  1. Tạo biến có tên "value".
    → Biến này để bạn lưu trữ giá trị Analog đọc từ cảm biến.
  2. Tạo biến có tên "percent".
    → Biến này để bạn lưu trữ giá trị (%) tương ứng từ giá trị Analog.
  3. Tạo biến có tên "pot".
    → Biến này lưu giá trị Analog đọc từ Biến trở.
  4. Tạo biến có tên "speed".
    → Biến này để điều chỉnh tốc độ của bơm.
  5. Tạo 1 khối forever như hình dưới.
    → Khối này thực hiện các công việc theo trình tự:
    • Đọc và lưu giá trị Analog đọc từ cảm biến vào trong biến "value".
    • Đổi sang đơn vị (%) mực nước tương ứng và lưu vào biến "percent".
    • Cho hiển thị mực nước lên Led Matrix.
    • Đọc và lưu giá trị Analog đọc từ Biến trở vào trong biến "pot".
    • Đổi sang đơn vị (%) tốc độ bơm tương ứng và lưu vào biến "speed".
    • Kiểm tra có bật hay tắt bơm không. Nếu có bật bơm, thì điều khiển tốc độ bơm theo biến "speed".
Icon-Done-White.png Giải thích:
Điểm khó của dự án này cũng nằm ở chỗ bạn cần căn chỉnh các thông số trong code cho phù hợp với bộ bơm nước của các bạn.

Trường hợp của mình, mình dùng giá trị Analog trong khoảng từ 700 đến 450 sẽ tương ứng mực độ nước từ 0% đến 100%.

Khi giá trị (%) mực nước ngưỡng dưới 5% bơm sẽ được bật, cho đến khi mực nước qua ngưỡng trên 95% bơm sẽ được tắt.

Tốc độ bơm nước bạn có thể điều chỉnh bằng Biến trở với dãi sử dụng từ 5% đến 50% tốc độ của bơm.

Blocks

MakeCode Kit 9.png

Javascript

let value = 0
let percent = 0
let pot = 0
let speed = 0

basic.forever(function () {
    value = pins.analogReadPin(AnalogPin.P0)
    percent = Math.round(Math.map(value, 450, 700, 100, 0))
    led.plotBarGraph(
    percent,
    100
    )
    pot = pins.analogReadPin(AnalogPin.P1)
    speed = Math.round(Math.map(pot, 0, 1023, 5, 50))
    if (percent >= 95) {
        l9110.pauseMotor(l9110.Motor.MotorA)
    } else if (percent <= 5) {
        l9110.controlMotor(l9110.Motor.MotorA, l9110.Rotate.Forward, speed)
    }
})

Nạp code

  1. Kết nối [MKE-S13] - Độ ẩm đất đến Port P0 của MakerEdu Shield.
  2. Kết nối [MKE-M04] - Biến trở đến Port P1 của MakerEdu Shield.
  3. Kết nối Động cơ DC bơm nước đến Motor_A của MakerEdu Shield.
  4. Nhấp vào Download để nạp code của bạn sang micro:bit.
  5. Đặt cảm biến vào thành bình nước và xem code có hoạt động như mong đợi không.

Kết quả

... hình dự án