Robot tránh nguy hiểm là một bài thi đấu khá phổ biến trong các cuộc thi robot. Các robot sẽ hoạt động bên trên một mặt bàn. Nhiệm vụ của xBot là di chuyển liên tục trên mặt bàn đó làm sao để không bị rơi xuống đất.
Với dự án xBot này, chúng ta sẽ bao quanh viền của mặt bàn bằng các đường line đen và lập trình cho robot hoạt động:
Ở bài toán này, chúng ta sẽ sử dụng cảm biến dò vạch đen. Để tránh đi ra khỏi mặt bàn, robot cần phát hiện ra cảm biến đã tới mép bàn, sau đó dừng lại.
Ta sẽ tinh chỉnh cảm biến do vạch đen sao cho:
line_array.read(0) == (0, 0, 0, 0)
line_array.read(0) == (1, 1, 1, 1)
Để hiểu hơn về cách tinh chỉnh cảm biến, bạn hãy đọc lại bài viết Cảm biến dò line và cách tinh chỉnh
# Khai báo sử dụng random import random wait_for(lambda: (btn_onboard.is_pressed())) while True: if line_array.read(0) == (0, 0, 0, 0): robot.forward(50) else: robot.backward(50,0.2) robot.turn_left_angle((random.randint(90, 270)))
Ở bài này ta có sử dụng câu lệnh random.randint(min, max) để chọn ra một góc ngẫu nhiên trong khoảng [90,270].
Góc ngẫu nhiên này từ 90 đến 270 để robot xoay được một góc an toàn, không phải di chuyển về cùng phía với chỗ nguy hiểm trước đó.