4. Bài 2: Bãi đậu xe thông minh
Mục tiêu
Trong bài này, chúng ta sẽ cùng lập trình một bãi đậu xe thông minh có thể tự động mở thanh chắn để xe vào (nếu chỗ đậu xe còn trống). Nếu bãi xe đầy, đèn LED trên Yolo:Bit sẽ đổi thành màu đỏ để báo hiệu.
Kết nối
Cảm biến ánh sáng (P0)
Cảm biến khoảng cách (P10-P13)
Động cơ Servo (P4)
Kết nối
Lắp ráp mô hình
Trước khi lắp ráp, bạn cần căn chỉnh Servo về góc 20 để hoạt động chính xác. Thực hiện như sau:
Tiến hành lắp ráp:
Giới thiệu khối lệnh
Giới thiệu về biến
Để thay đổi độ sáng của đèn LED tương ứng với điều khiển từ remote, chúng ta cần sử dụng đến biến. Có thể hiểu, biến như một chiếc hộp, nơi chứa giá trị mà ta cần sử dụng.
Mỗi hộp chỉ có thể chứa duy nhất một giá trị (chữ, số, chuỗi, dữ liệu) tại một thời điểm. Trong trường hợp này, biến sẽ chứa giá trị số, đại diện cho mức độ sáng của đèn.
Cách tạo và sử dụng biến
Viết chương trình
Tạo một biến mới tên “Bãi xe hết chỗ” và gán giá trị sai vào biến (đồng nghĩa với bãi xe vẫn còn chỗ trống):
Khởi tạo cảm biến khoảng cách P10/P13 và quay Servo đến góc 20 (để đóng thanh chắn):
Tạo điều kiện: nếu bãi xe còn trống (cảm biến ánh sáng không phát hiện xe, độ sáng > 40), gán giá trị sai cho biến bãi xe hết chỗ, đồng thời bật đèn LED màu xanh để báo hiệu
Nếu không, gán giá trị đúng cho biến và đổi màu đèn LED thành màu đỏ
Tạo thêm 1 điều kiện lồng ghép: nếu phát hiện có xe (khoảng cách đến xe < 5cm)
Trong trường hợp bãi xe còn chỗ trống (biến bãi xe hết chỗ có giá trị sai): quay Servo đến góc 20 độ để mở thanh chắn, tạm dừng 500 mili giây:
Phát bài nhạc POWER_UP để báo hiệu, chờ 3 giây để xe di chuyển vào và bắt đầu đóng thanh chắn (quay Servo đến góc 110 độ):
Trong trường hợp bãi xe đã đầy chỗ (biến có giá trị đúng): Phát bài nhạc POWER_DOWN để báo hiệu và tạm dừng chương trình trong 5 giây để xe rời khỏi bãi đậu, tránh trường hợp phát nhạc liên tục
Thêm tạm dừng 0.1 giây (100ms) vào cuối chương trình. Chương trình trong phần lặp lại mãi như sau:
Chương trình mẫu
Bãi đậu xe thông minh: Tại đây
