Bài 5: Chống trộm ngăn kéo - MakerEdu Inventor Kit for Micro:bit

From MakerLab Wiki
Jump to navigation Jump to search

Mô tả dự án

Trong bài này các bạn sẽ học cách sử dụng kết hợp giữa "cảm biến ánh sáng" để đo độ sáng trong ngăn tủ và "còi báo" tích hợp sẵn trên mạch Micro:bit để tạo ra bộ chống trộm ngăn kéo tủ.

... 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 P0 [MKE-M01] - LED Trắng

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

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

B5 MicrobitEdu.png

Javascript

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

// Khối "on start" - thực hiện 1 lần khi khởi động
music.setVolume(255)
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 () {
  valueLight = Math.map(input.lightLevel(), 0, 255, 0, 100)
  if (valueLight >= 90) {
    basic.showIcon(IconNames.Sad)
    music.play(music.createSoundExpression(WaveShape.Sine, 5000, 0, 255, 0, 500, SoundExpressionEffect.None, InterpolationCurve.Linear), music.PlaybackMode.LoopingInBackground)
  } else if (valueLight <= 10) {
    basic.clearScreen()
    music.stopAllSounds()
  }
})

Giải thích code

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

Trong khối [ on start ]:

  1. Đầu tiên cài đặt mức âm lượng còi báo lên cao nhất là 255 bằng khối [ set volume... ].
  2. Cho 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. Micro:bit đọc giá trị cảm biến ánh sáng từ khối [ light level ] với giá trị trả về trong khoảng "từ 0 đến 255".
  2. Sau đó giá trị được "ánh xạ" bằng khối [ map... ] sang thang đo (%) "từ 0% đến 100%" để lưu vào biến "valueLight".
  3. Cho kiểm tra, nếu giá trị valueLight ≥ 90% thì màn hình Led hiển thị :( và bật báo động bằng khối [ play... ].
  4. Không thì cho kiểm trả tiếp, nếu giá trị valueLight ≤ 10% mới tắt màn hình Led và còi báo.

Kết quả

...

... hình dự án