Xác định đường giao nhau và đếm số vạch ngang
Để xác định đường giao nhau trong bài toán dò line, chúng ta sẽ cùng viết chương trình đơn giản dò line đến gặp đường giao nhau thì dừng để kiểm chứng.
Khi gặp đường giao nhau, cả 3 cảm biến sẽ cùng phát hiện vạch kẽ. Để phát hiện đường giao nhau ta dùng toán tử AND:
Thuật toán:
Thực hiện kéo các block như sau:
Nạp chương trình cho robot và tiến hành cho robot bám vạch trên vạch có ngã tư, quan sát xem khi robot đi tới ngã tư có dừng lại không nhé.
Tiếp theo, cũng như yêu cầu trên, nhưng chúng ta sẽ học cách sử dụng chương trình con
Cách tạo chương trình con tên là LineFollow, trong nhóm Data&Block, bấm vào Make a Block
Sau đó gõ tên “LineFollow” vào cửa sổ New Block sau đó bấm OK
Viết lại chương trình như sau:
Bạn thấy chương trình Easybot Program trở nên rất gọn, sau này các việc lặp lại đoạn mã LineFollow hay cần chỉnh sửa các thuật toán dò line đều có thể thao tác trong mục define “LineFollow”. Giờ các bạn đã nắm được cách tạo và tác dụng của việc sử dụng chương trình con.
Cuối cùng, chúng ta sẽ tạo chương trình con để dò đường và tạo biến đếm số ngã tư để thực hiện nhiệm vụ vừa dò đường vừa đếm số ngã tư.
Nhận xét: Tạo ra 1 chương trình con thực hiện việc dò line và đi đúng số đường ngang xác định. Lần này Chúng ta thêm đầu vào cho chương trình con (Block) là giá trị số ngã tư phải đi qua.
Tạo 1 biến đếm, nếu gặp đường ngang thì tăng biến đếm lên 1 đơn vị.
Sau đó chương trình chính sẽ dò line đến đường ngang thứ 3 thì dừng lại.
Chương trình chính:
Chú ý, chờ 0.1s để đảm bảo Robot đã ra khỏi vạch ngang, nếu không vòng lặp repeat sẽ tiếp tục đếm lại chính vạch ngang đó (đếm nhầm).
Quan sát xem robot có đi đúng yêu cầu không nhé!