Bài 5: Chống trộm ngăn kéo - MakerEdu Inventor Kit for Micro:bit
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ị
- 1x Cáp MicroUSB.
- 1x Bo mạch Micro:Bit.
- 1x MakerEdu Shield for micro:bit
- 1x [MKE-M01] - LED Trắng
Sơ đồ kết nối
MakerEDU Shield | Thiết bị |
---|---|
Port P0 | [MKE-M01] - LED Trắng |
Chuẩn bị trước dự án
- Tham khảo: Cách kết nối và nạp chương trình cho mạch Micro:bit trên máy tính với phần mềm MakeCode - MakerLab Wiki.
Các bước thực hiện
- Tạo một dự án mới trong phần mềm MakeCode.
- 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.
- Nạp chương trình vào Micro:Bit.
Blocks
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 ]:
- Đầ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... ].
- 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 ]:
- 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".
- 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".
- 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... ]. - 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