Bài 1: Đổ xúc xắc - 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 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é!

Micro:bit Dice
Micro:bit Dice

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

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

Microbit V2 Go Bai 5.png

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 ]:

  1. Đầ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... ].
  2. 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...
    1. Biến "zigzac" nhận được số 1 → hiển thị lên màn hình Led bằng khối [ show leds ].
    2. Tương tự là số 2 → sẽ hiển thị .
    3. Nếu là số 3 → hiển thị .
    4. Nếu là số 4 → hiển thị .
    5. Nếu là số 5 → hiển thị .
    6. Nếu là số 6 → hiển thị .

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