Bài 6: Cổng tự động - MakerEdu Inventor Kit for Micro:bit

From MakerLab Wiki
Jump to navigation Jump to search

Mô tả dự án

Trong bài này bạn sẽ được cách sử dụng "cảm biến siêu âm" kết hợp với "động cơ Servo" để làm ứng dụng cổng tự động mở cửa khi có ai đó đến gần cửa.

... hình thumnail

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

Danh sách thiết bị

Sơ đồ kết nối

MakerEDU Shield Thiết bị
Port P2+P8 [MKE-S01] - Siêu âm
Port P0 Động cơ RC Servo

Chuẩn bị trước dự án

Icon-Attention-White.png Chú ý:
Dự án có sử dụng khối [S01] cho cảm biến Siêu âm, bạn cần cài đặt thêm Extension "MakerEdu_Hardware" vào dự án của mình theo bài hướng dẫn này (nếu chưa có).

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

  1. Tạo một dự án mới trong phần mềm MakeCode.
  2. Bạn có thể lập trình kéo thả từng mã khối theo hình dưới trong mục [Blocks] hoặc copy đoạn code dưới và paste vào mục [JavaScript] để tiến hành nhanh hơn.
  3. Nạp chương trình vào Micro:Bit.

Blocks

B6 MicrobitEdu.png

Javascript

// Khai báo các biến
let distance = 0

// Khối "on start" - thực hiện 1 lần khi khởi động
basic.showIcon(IconNames.Happy)
basic.pause(1000)
basic.clearScreen()

// Khối "forever" - vòng lặp chính của chương trình
basic.forever(function () {
  distance = ultraSonic.readDistance(ultraSonic.PingUnit.Centimeters, ultraSonic.PinKit.Port2)
  distance = Math.constrain(distance, 0, 50)
  if (distance <= 20) {
    basic.showIcon(IconNames.Yes)
    pins.servoWritePin(AnalogPin.P0, 180)
  } else if (distance >= 30) {
    basic.showIcon(IconNames.No)
    pins.servoWritePin(AnalogPin.P0, 0)
  }
})

Giải thích code

Chương trình sẽ hoạt động như sau:

Trong khối [ on start ]:

  • Micro:bit hiển thị "mặt cười" trong 1 giây rồi tắt.

Phần khởi động này nói cho chúng ta biết Micro:bit đã sẵn sàng.

Trong khối [ forever ]:

  1. Dùng khối [ S01 UltraSonic Distance | Read distance... ] để lấy giá trị khoảng cách (cm) từ cảm biến Siêu âm đang kết nối, để lưu vào biến "distance".
  2. Dùng khối [ constrain... ] để lọc giá trị trong biến "distance" đảm bảo kết quả chỉ nằm trong khoảng "từ 0cm đến 50cm".
  3. Sau đó kiểm tra, nếu distance ≤ 20 thì màn hình Led hiển thị dấu (✔) và điều khiển chân P0 đang kết nối Servo đến góc 180º để mở cửa.
  4. Không thì cho kiểm trả tiếp, nếu distance ≥ 30 thì màn hình Led hiển thị dấu (✘) và điều khiển Servo đến góc để đóng cửa lại.

Kết quả

...

... hình dự án