Bài 1: Đổ xúc xắc - MakerEdu Inventor Kit for Micro:bit
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 gia tốc" để phát hiện chuyển động và "màn hình Led" để tạo ra trò chơi đổ xúc xắc trên Micro:bit, hãy cùng làm nhé!
Các bước thực hiện
Danh sách thiết bị
- 1x Cáp MicroUSB.
- 1x Bo mạch Micro:Bit.
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
// Khối input - thực hiện khi lắc bo mạch input.onGesture(Gesture.Shake, function () { basic.showLeds(` . . . . . . . . . . . . . . . . . . . . . . . . . `) zigzac = randint(1, 6) if (zigzac == 1) { basic.showLeds(` . . . . . . . . . . . . # . . . . . . . . . . . . `) } else if (zigzac == 2) { basic.showLeds(` . . # . . . . . . . . . . . . . . . . . . . # . . `) } else if (zigzac == 3) { basic.showLeds(` . . . . # . . . . . . . # . . . . . . . # . . . . `) } else if (zigzac == 4) { basic.showLeds(` # . . . # . . . . . . . . . . . . . . . # . . . # `) } else if (zigzac == 5) { basic.showLeds(` # . . . # . . . . . . . # . . . . . . . # . . . # `) } else if (zigzac == 6) { basic.showLeds(` # . . . # . . . . . # . . . # . . . . . # . . . # `) } }) // Khai báo các biến let zigzac = 0 // Khối "on start" - thực hiện 1 lần khi khởi động basic.showString("shake me") basic.pause(1000) basic.showIcon(IconNames.Happy) basic.pause(1000)
Giải thích code
Các khối điều khiển luồng hoạt động chương trình:
Trong hầu hết mọi chương trình cơ bản trên MakeCode cho Micro:Bit, thường luôn có 2 khối [ on start ] và khối [ forever ].
- Khối [ on start ] - thường được dùng để khởi động gì đó. Các khối lệnh nằm trong khối này được thực hiện đầu tiên và chỉ thực hiện 1 lần duy nhất, khi Micro:bit khởi động.
- Khối [ forever ] - đây là "khối vòng lặp". Khối này được thực hiện sau khối [ on start ], và được lặp lại liên tục cho đến khi Micro:bit tắt nguồn.
Ngoài ra, MakeCode còn có các "khối sự kiện". Những khối này được thực thi 1 lần mỗi khi có một sự kiện kích hoạt.
Bên cạnh MakeCode còn có một "khối vòng lặp" khác.
- Khối [ every... ] - khối này cũng được thực hiện sau khối [ on start ], và được lặp lại sau khoảng thời gian do người dùng chọn, cho đến khi Micro:bit tắt nguồn.
Chương trình sẽ hoạt động như sau:
Trong khối [ on start ]:
- Đầu tiên Micro:bit sẽ hiển thị dòng chữ "shake me" trên màn hình LED bằng khối [ show string... ].
- Sau đó hiển thị "mặt cười" lên.
Phần khởi động này để chương trình nói cho chúng ta biết là Micro:bit đã sẵn sàng "bị lắc".
Khối sự kiện [ on shake ]:
Khối này được thực thi mỗi khi Micro:bit bị lắc.
- Đầu tiên sẽ cho tắt đèn trên màn hình LED → bước này giúp đôi mắt chúng ta nhìn thấy được sự thay đổi giữa mỗi lần đổ xúc xắc.
- Tiếp theo cho lưu một giá trị ngẫu nhiên "từ 1 đến 6" bằng khối [ pick random ] vào biến "zigzac".
- Dựa theo giá trị mà biến "zigzac" nhận được, có tất cả 6 trường hợp có thể xảy ra...
- Biến "zigzac" nhận được số
1
→ hiển thị ⚀ lên màn hình Led bằng khối [ show leds ]. - Tương tự là số
2
→ sẽ hiển thị ⚁. - Nếu là số
3
→ hiển thị ⚂. - Nếu là số
4
→ hiển thị ⚃. - Nếu là số
5
→ hiển thị ⚄. - Nếu là số
6
→ hiển thị ⚅.
- Biến "zigzac" nhận được số
Kết quả
Sau khi nạp chương trình, thử dùng tay "lắc" Micro:bit để thấy chương trình hoạt động.
... hình dự án