9. Lesson: Accelerometer-Gia tốc kế
Last updated
Last updated
Trong thử nghiệm này, bạn sẽ xem xét một ví dụ về việc sử dụng gia tốc kế để tạo cảnh báo chuyển động nhạy cảm từ micro:bit. Ví dụ mở rộng kết hợp việc sử dụng gia tốc kế trên micro:bit để đo hướng của micro:bit và sử dụng nó để điều khiển góc của servo.
1x vi:bit
1x Cáp USB Micro B
Đột phá 1x micro:bit (có Tiêu đề)
1x Bảng mạch
Dây nhảy 5x
1x Động lực
Gia tốc kế là một thành phần mà bạn sẽ không tìm thấy trong túi linh kiện của bộ sản phẩm. Tại sao? Bởi vì nó nằm trên chính micro:bit! Ở mặt sau của micro:bit, bạn có thể thấy một số chip nhỏ. Một trong số đó là gia tốc kế. Gia tốc kế là một cảm biến đo lực hấp dẫn kéo nó theo cả ba chiều của trục X, Y và Z của chip.
Gia tốc kế không chỉ có thể đo lực thô kéo lên con chip và vật thể mà con chip đang đặt lên mà còn có thể phát hiện các bước, rung lắc và các chuyển động khác có một kiểu mẫu cụ thể. Trên hết, bạn có thể sử dụng gia tốc kế để phát hiện hướng của thiết bị. Bạn có bao giờ tự hỏi làm thế nào điện thoại của mình biết khi bạn chuyển từ dọc sang ngang không? Tất cả là do gia tốc kế trong điện thoại của bạn!
Ví dụ về việc sử dụng gia tốc kế cho phép tạo cảnh báo chuyển động nhạy cảm từ micro:bit.
Dự án hoạt động như thế này:
Khi bạn nhấn nút A, màn hình sẽ thay đổi trên cùng hiển thị hình tam giác, cho biết cảnh báo sẽ tự kích hoạt sau hai giây. Sau khi được trang bị vũ khí, màn hình sẽ trống.
Nếu bây giờ bạn thử di chuyển micro:bit thì tất cả các đèn LED sẽ sáng cho biết cảnh báo đã được kích hoạt. Đặt micro:bit xuống sao cho nó đứng yên rồi nhấn nút A để kích hoạt lại.
Mã hoạt động như thế này:
Khối khởi động sẽ được chạy trong lần đầu tiên chương trình chạy sau khi micro:bit được cấp nguồn hoặc đặt lại. Điều này đặt một biến z
(gia tốc trong trục z) về 0. Nó cũng đặt biến Boolean (đúng hoặc sai) ( alarm triggered
) thành sai. Biến alarm triggered
sẽ được sử dụng để cho biết các phần khác của chương trình rằng cảnh báo đã được kích hoạt.
Vòng forever
lặp sẽ chạy đi chạy lại và gồm ba phần, mỗi phần là một khối if
/ then
.
if
Khối / đầu tiên then
kiểm tra việc nhấn nút A và nếu nhấn nút A, nó sẽ hiển thị biểu tượng hình tam giác, đợi hai giây (2000 mili giây) sau đó đọc gia tốc trong trục z vào biến z
. Cuối cùng nó xóa màn hình.
Nếu/thì thứ hai trong forever
khối kiểm tra gia tốc hiện tại trong trục z so với giá trị được lưu trong biến z
và nếu nó nhỏ hơn số đọc được lưu trữ với biên độ 30, nó sẽ đặt biến alarm triggered
là đúng.
Phần cuối cùng của mã xác định điều gì sẽ xảy ra khi alarm triggered
biến là đúng. Nếu cảnh báo được kích hoạt thì biểu tượng chữ thập sẽ hiển thị trên màn hình, nếu không màn hình sẽ bị xóa. Biến alarm triggered
sẽ vẫn đúng cho đến khi nhấn nút A lần nữa.
Sẵn sàng để bắt đầu kết nối mọi thứ? Kiểm tra sơ đồ nối dây bên dưới để xem mọi thứ được kết nối như thế nào.
Linh kiện phân cực
Đặc biệt chú ý đến các dấu hiệu của thành phần chỉ ra cách đặt nó trên bảng mạch. Các thành phần phân cực chỉ có thể được kết nối với mạch theo một hướng.
Động cơ phụ
Đột phá vi bit
Dây màu nâu
GND
Dây điện màu đỏ
5v
Dây màu cam
P0
Sao chép và dán hoặc tạo lại mã sau vào trình chỉnh sửa MakeCode của riêng bạn bằng cách nhấp vào Tùy chọn “Chỉnh sửa” ở góc trên bên phải của cửa sổ trình soạn thảo. Bạn cũng có thể tải xuống ví dụ này bằng cách nhấp vào nút tải xuống ở góc dưới bên phải của cửa sổ mã.
Lưu ý: Bạn có thể cần phải tắt trình chặn quảng cáo/cửa sổ bật lên để tương tác với môi trường lập trình MakeCode và mạch mô phỏng!
Chúng ta hãy xem các khối mã trong thử nghiệm này. Nếu bạn gặp khó khăn khi xem mã này, hãy nhấp vào hình ảnh trên để nhìn rõ hơn!
Sự tăng tốc
Khối này acceleration
có thể được tìm thấy trong nhóm khối đầu vào. Khối này trả về lực hấp dẫn kéo lên một trục cụ thể của micro:bit (X, Y hoặc Z) và biểu thị giá trị đó dưới dạng một phạm vi số từ -1023 đến 1023. Trong trường hợp này, chúng tôi đo trục X, trục này là độ nghiêng từ bên này sang bên kia của micro:bit. Nếu bạn nghiêng micro:bit hết cỡ sang trái, bạn sẽ nhận được giá trị -1023 và hết cỡ sang phải là dương 1023.
Bản đồ
Khối này map
trông có vẻ đáng sợ nhưng nó là một trong những khối hữu ích nhất trong MakeCode. Khối này map
lấy một biến nhất định có phạm vi đã biết — trong trường hợp này là -1023 đến 1023 — và “ánh xạ” hoặc chia tỷ lệ phạm vi giá trị đó sang một phạm vi nhất định khác. Phạm vi nhất định mà chúng tôi muốn là 15 đến 165, đây là phạm vi quay an toàn tốt cho servo. Vì vậy, cuối cùng -1023 kết thúc bằng 0 và 1023 kết thúc bằng 165 tính từ map
khối.
Điều này có vẻ lạc hậu
Bạn có thể đang cầm micro:bit theo một hướng khác. Lật nó lại và thử lại!
servo không hoạt động?
Kiểm tra lại hệ thống dây điện của bạn! Hãy nhớ, màu đỏ đến 3,3 volt, màu đen nối đất và màu trắng để báo hiệu.
Đây là phiên bản Khối JavaScript của chương trình báo động. Trình chỉnh sửa Mã khối JavaScript được nhúng trực tiếp trên trang bên dưới này. Từ trình chỉnh sửa, bạn có thể nhấp vào nút Tải xuống (dưới cùng bên phải) rồi sao chép tệp đã tải xuống vào micro:bit của mình. Ngoài ra, bạn có thể để mở trình chỉnh sửa trong một tab trình duyệt riêng.
Khi bắt đầu chương trình, servo sẽ di chuyển đến 90 độ và sau đó phản ứng với hướng của micro:bit. Nếu bạn giữ micro:bit phẳng, servo sẽ ở góc 90 độ. Sau đó, nếu bạn nghiêng servo sang trái, nó sẽ di chuyển dưới 90 độ về giá trị 15. Nếu bạn di chuyển nó sang phải, servo sẽ di chuyển về phía 165.