Hướng dẫn lập trình Robot giải mê cung

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ị

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:

Cách robot giải mê cung
Cách robot di chuyển để giải mê cung

Giải thích:

  1. Luôn rẽ phải một góc 90 độ khi gặp tường (hướng Bắc):Robot giải mê cung: Rẽ phải khi gặp tường mê cung
  2. 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):Robot giải mê cung: Đi thẳng khi không gặp tường mê cung
  3. Nếu có vật cản → Robot quay 180 độ (quay về phía bên trái):Robot giải mê cung: quay một góc 180 độ về bên trái
  4. 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):Robot giải mê cung: Đi thẳng khi không gặp tường mê cung
  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:Robot giải mê cung: Quay lại bước 1

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ểnrẽ 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 đồ:

Robot giải mê cung

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:

Robot giải mê cung - Khối lệnh đọc các giá trị của cảm biến line

Chức năng bám theo vạch đen của xBot sẽ hoạt động theo bảng sau:

Robot giải mê cung - Chức năng bám theo vạch đen

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:

Code lập trình robot giải mê cung
Code lập trình robot giải mê cung

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é:

Tags: Robot giải mê cung, Robot tự tìm đường trong mê cung
2 Bình luận

Những bài liên quan

2 Bình luận. Leave new

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Fill out this field
Fill out this field
Vui lòng nhập địa chỉ email hợp lệ.
You need to agree with the terms to proceed