btvn.vn
Tìm kiếm Đăng nhập

Tránh vật cản bằng cảm biến siêu âm

Lưu trên thiết bị này
Chuyên đề lựa chọn CS: Lập trình điều khiển robot · Chọn bài khác

Một vòng kiểm rõ điều kiện

Giả sử robot có cảm biến siêu âm phía trước và nhiệm vụ là **dừng khi khoảng cách hợp lệ nhỏ hơn 20 cm**, còn lại đi chậm. Mỗi lượt: đọc khoảng cách → kiểm dữ liệu có hợp lệ không → nếu không hợp lệ thì dừng và kiểm cảm biến; nếu `< 20 cm` thì dừng; ngược lại cho hai bánh tiến. Ở đúng `20 cm`, điều kiện “nhỏ hơn 20” sai, nên xe thuộc nhánh đi; nếu muốn dừng cả tại 20 cm phải viết `≤ 20`. Một lần đọc có thể nhiễu. Trên robot thật cần quan sát nhiều lượt ở hai phía ngưỡng và chọn tốc độ, khoảng cách an toàn phù hợp. Không xem giá trị ngoài vùng đo là khoảng cách chính xác; cách báo lỗi phụ thuộc cảm biến.

Đếm lần gặp vật để đổi hướng

SGK cho ví dụ dùng biến đếm để lần gặp vật thứ nhất xoay trái, lần thứ hai xoay phải, rồi lặp lại. Nếu đặt `lần_gặp = 0`, mỗi **sự kiện gặp vật mới** chọn trái khi biến là 0, chọn phải khi là 1, sau đó đổi `0 ↔ 1`. Cần phân biệt sự kiện mới với nhiều lần đọc liên tiếp cùng một vật: nếu tăng biến ở mỗi vòng khi vật vẫn ở gần, robot có thể đổi hướng liên tục. Chỉ ghi nhận lần mới sau khi vật đã rời vùng phát hiện hoặc robot đã hoàn tất thao tác tránh. **Nhiệm vụ:** thử hai vật cản mềm ở vị trí khác nhau. **Thiết bị:** robot, cảm biến siêu âm và vùng trống. Nạp chương trình của đúng bộ, chạy tốc độ thấp; ghi các lần đo, lệnh và vị trí xe. **Kết quả cần thấy:** gặp vật thì thực hiện hướng đã đặt, rời vật mới sẵn sàng tính lần tiếp. Nếu xe giật/đổi hướng liên tục, kiểm biến đếm, điều kiện thoát vật và dữ liệu cảm biến.

Bài luyện

Chương trình dừng khi khoảng cách hợp lệ < 20 cm. Số đo đúng 20 cm thuộc nhánh nào?
Chọn một đáp án

Bài luyện

Một vật còn đứng trước cảm biến qua năm lượt đọc. Muốn biến đếm chỉ tăng một lần cho vật đó, cần làm gì?
Chọn một đáp án

Đang học