Magic Button

Ảo thuật với 2 nút nhấn A, B trên Micro:Bit

Magic Button

Trong bài viết này chúng ta sẽ làm một trò ảo thuật đơn giản với 2 nút nhấn A, B trên Micro:Bit. Khi thực hiện chuyển 2 nhãn A và B cho nhau thì dường như Micro:Bit cũng thực hiện việc chuyển đổi nhiệm vụ của 2 nút này cho nhau.

Chuẩn bị

  • BBC Micro:Bit.
  • Dây cáp micro USB. (dây sạc của các dòng điện thoại android)
  • Nam châm.
  • 2 miếng nhãn dán A, B.

Cách thức hoạt động

Phép thuật ở đây thực sự xảy ra trong đoạn code. Bí quyết ở đây là sử dụng một nam châm đưa đến gần Micro:Bit, để nó hiểu rằng cần phải chuyển đổi nhiệm vụ của 2 nút A và B (nút A hoạt động với nhiệm vụ của nút B và ngược lại).

Cách sử dụng 2 nút A và B

  • Đầu tiên, ta cần phải biết cách gán nhiệm vụ cho 2 nút A và B của Micro:Bit. Ở đây, ta chỉ thực hiện 2 nhiệm vụ đơn giản là hiển thị ký tự A và B tương ứng khi nhấn 2 nút này.
  • Ta sử dụng các hàm sau:

    • on button A pressed: Nhóm Input.
    • show string “hello”: Nhóm Basic.

Phát hiện từ trường của nam châm

  • Chúng ta sẽ sử dụng la bàn của Micro:Bit để phát hiện nam châm. La bàn cho phép phát hiện từ trường của trái đất từ đó có thể xác định chính xác các hướng, cũng nhờ đó ta có thể xác định từ trường từ nam châm.
  • Ta sử dụng các hàm sau:

    • set item to 0: Nhóm Variable.
    • magnetic force (uT) x: Nhóm Input -> more.

Kiểm tra từ tính của nam châm

  • Sau khi đo được từ trường gần Micro:bit. Bây giờ chúng ta cần xác định từ tính có đủ mạnh để thực hiện các lệnh không.
  • Vì nam châm có 2 cực Bắc và Nam, tùy thuộc vào cực của nam châm hướng vào Micro:Bit mà ta thu được giá trị âm hay dương. Tuy nhiên, ở đây ta không quan tâm đến dấu mà chỉ quan tâm đến giá trị của nó, cho nên ta sẽ sử dụng thêm hàm absolute để lấy gái trị tuyệt đối.
  • Giá trị ta mong muốn ở đây là từ trường phải lớn hơn 100 thì mới thực hiện lệnh.
  • Ta sử dụng các hàm sau:

    • set item to 0: Nhóm Variable.
    • absolute of 0: Nhóm Math -> More.
    • magnetic force (uT) x: Nhóm Input -> more.
    • 0 < 0: Nhóm Logic.
    • force: Nhóm Variables.

Chương trình chính

  • Sau khi tìm hiểu cách Micro:Bit hiển thị ký tự khi nhấn nút A, B và cách xác định mức từ trường khi đưa nam châm đến gần.
  • Ta sử dụng thêm hàm if then else trong nhóm Logic để đặt điều kiện khi nhấn nút A hoặc B. Nếu từ trường nhỏ hơn 100 (không có tác động của nam châm) thì giữ nguyên nhiệm vụ ban đầu và ngược lại sẽ thay đổi nhiệm vụ của của 2 nút.
  • Tham khảo chương trình mẫu: tại đây

Video hướng dẫn