Mục lục
HƯỚNG DẪN LẬP TRÌNH ROBOT GIẢI MÊ CUNG
Robot giải mê cung là một trong những chủ đề phổ biến trong các cuộc thi đấu robot như Robocon. Trong bài này, chúng ta sẽ cùng tìm hiểu cách lập trình để robot xBot có thể tự động tìm lối ra của mê cung, dựa vào cảm biến khoảng cách và cảm biến dò đường nhé!
Kiến thức thêm:
Tên cảm biến | Chức năng |
Cảm biến khoảng cách | Giúp robot biết được phía trước có chướng ngại vật / tường của mê cung hay không |
Cảm biến dò đường 4 mắt | Giúp robot theo dõi và di chuyển thẳng theo các vạch màu đen |
Chuẩn bị
- Robot xBot
- Sa bàn giải mê cung
Hướng dẫn lắp ráp mê cung
Bạn có thể xem hướng dẫn lắp ráp mê cung chi tiết tại đây
Cách thực hiện
Chúng ta sẽ giải quyết bài toán robot giải mê cung bằng một phương pháp đơn giản là cho robot di chuyển thẳng về phía trước, khi nào gặp tường mê cung thì sẽ chọn cách rẽ như sau:
Giải thích:
- Luôn rẽ phải một góc 90 độ khi gặp tường (hướng Bắc):
- Nếu không có vật cản → xBot tiếp tục đi thẳng (đồng thời bỏ qua các bước 3, 4, 5 phía sau):
- Nếu có vật cản → Robot quay 180 độ (quay về phía bên trái):
- Nếu không có vật cản → xBot tiếp tục đi thẳng (đồng thời bỏ qua bước 5):
- Nếu có vật cản, tức xBot đã đi vào ngõ cụt. Lúc này, robot sẽ thực hiện lại quy trình trên từ bước 1 bằng cách rẽ phải và tiếp tục các bước tiếp theo:
Lập trình chương trình cơ bản:
Dựa vào các thuật toán phía trên, ta thực hiện đoạn chương trình theo mẫu sau:
Ta sẽ sử dụng khối lệnh điều kiện để kiểm tra giá trị khoảng cách mà cảm biến khoảng cách đo được:
1. Nếu như trước xBot không có vật cản thì xBot sẽ đi thẳng với tốc độ 30
2. Nếu khoảng cách từ xBot tới tường của mê cung nhỏ hơn 4 cm thì xBot sẽ dừng di chuyển và rẽ phải một góc 90 độ
3. Nếu bên phải robot có lối đi thì xBot sẽ đi thẳng với tốc độ 30. Ngược lại, nếu bên phải bị chặn bởi tường (khoảng cách < 5cm) thì xBot sẽ quay một góc 180 độ để quay sang trái (so với hướng ban đầu) và tiếp tục kiểm tra.
Nếu quay sang trái vẫn gặp tường thì robot đã vào ngõ cụt. Lúc này, robot sẽ thực hiện lại từ bước 2 cho đến khi tìm được lối đi.
Tuy nhiên, chương trình trên sẽ hoạt động hoàn hảo khi xBot của bạn di chuyển ổn định và chính xác 100%. Nhưng trên thực tế, khả năng di chuyển của xBot chỉ đạt 80-90% (do các yếu tố như bề mặt sân không bằng phẳng, 2 động cơ bánh xe không quay với tốc độ bằng nhau hoàn toàn, lượng pin còn lại trong robot lúc đầy lúc cạn,…).
Khi đó, xBot sẽ không thể di chuyển thẳng hoặc quay các góc chính xác tuyệt đối (các góc 90, 180 độ) như ta lập trình.
Để giải quyết bài toán trên, chúng ta sẽ lập trình theo phương pháp nâng cao bên dưới.
Lập trình chương trình nâng cao
Trong phần này, chúng ta sẽ sử dụng cảm biến dò đường có sẵn trên xBot và các vạch đen có sẵn trên bản đồ:
Bạn cần sử dụng khối lệnh đọc trạng thái của 4 mắt đọc trên cảm biến dò đường:
Chức năng bám theo vạch đen của xBot sẽ hoạt động theo bảng sau:
Từ bảng phân tích trên, chúng ta sẽ tạo hàm “follow_line” tương ứng:
Bây giờ hàm “follow_line” có chức năng như một hàm đi thẳng nhưng “thông minh” hơn.
Sau khi thay khối lệnh di chuyển thẳng ( ) bằng khối lệnh follow_line (, trong danh mục HÀM), ta sẽ có chương trình hoàn chỉnh như sau:
Bạn có thay đổi các thông số tốc độ di chuyển để xBot giải được mê cung nhanh hơn!
Tải chương trình mẫu
Bạn có thể sử dụng trực tiếp chương trình mẫu về robot giải mê cung mà chúng tôi đã lập trình sẵn cho bạn tại đây.
Bạn đã thực hiện thành công dự án robot giải mê cung phía trên chưa? Hãy chia sẻ với chúng tôi nhé. Chúng tôi rất hy vọng sẽ nhận được phản hồi từ bạn.
Để tìm hiểu và đặt hàng robot STEM xBot, bạn có thể tham khảo tại đường dẫn sau: Đồ chơi STEM xBot
Liên hệ OhStem nếu bạn có bất kỳ thắc mắc gì nhé:
- Fanpage: https://www.facebook.com/ohstem.aitt
- Hotline: 08.6666.8168
- Youtube: https://www.youtube.com/c/ohstem
2 Bình luận. Leave new
[…] Bạn có thể xem sản phẩm này tại đây: Hướng dẫn lập trình Robot giải mê cung […]
[…] Để thực hiện ý tưởng STEM này, bạn cần có robot (robot xBot hoặc robot Rover đều được) và sa bàn mê cung. Dưới đây là hướng dẫn cách thực hiện: Hướng dẫn lập trình Robot giải mê cung […]