Trong bài này, chúng ta sẽ cùng lập trình cho robot xBot di chuyển cơ bản, theo các hướng như tới, lui, quay trái, quay phải bằng ngôn ngữ Python nhé!
xBot được trang bị 2 động cơ để điều khiển 2 bánh phía sau và một bánh điều hướng ở đầu xe.
Các động cơ này sẽ giúp bánh xe quay và điều khiển xBot di chuyển cơ bản theo nhiều hướng (tiến tới, lùi lại, rẽ trái, rẽ phải) theo ý người dùng.
Những động cơ này cũng có thể điều khiển xBot thực hiện một tác vụ phức tạp nào đó theo yêu cầu.
1. Câu lệnh điều khiển robot đi thẳng nhận vào 2 tham số như sau:
robot.forward(speed, t=None)
Giả sử để robot chạy thẳng với tốc độ 50% tốc độ tối đa trong vòng 5 giây, ta viết code Python như sau:
robot.forward(50, 5)
Hoặc để robot chạy thẳng với tốc độ 70% tốc độ tối đa liên tục, ta dùng
robot.forward(70)
Tương tự, các câu lệnh điều khiển robot đi lùi, quay trái, quay phải lần lượt là:
2. Ngoài ra, cũng có thể điều khiển xBot di chuyển bằng cách điều chỉnh tốc độ của từng động cơ với câu lệnh:
robot.set_wheel_speed(speed_1, speed_2)
Các tham số speed_1, speed_2 nhận giá trị từ -100 đến 100, lần lượt tương ứng với tốc độ di chuyển của bánh xe bên trái và bên phải.
Giá trị tuyệt đối của tham số càng lớn thì động cơ quay càng nhanh. Dấu của tham số quy định chiều quay của động cơ.
Ví dụ: để điều khiển bánh xe bên trái tiến tới với tốc độ 40% tốc độ tối đa, bánh phải lùi lại với tốc độ 20% tốc độ tối đa (điều khiển robot quay phải), ta dùng câu lệnh:
robot.set_wheel_speed(40, -20)
Chương trình di chuyển cơ bản sau đây sẽ điều khiển cho xBot di chuyển về phía trước 1 giây và sau đó lùi lại 1 giây:
robot.forward(50,1) robot.backward(50,1)
Bạn có thể kết hợp với nút nhấn có sẵn trên board để điều khiển robot di chuyển khi nhấn nút, bằng cách thêm vào dòng code chờ nút nhấn được nhấn như dưới đây:
wait_for(lambda: (btn_onboard.is_pressed())) robot.forward(50,1) robot.backward(50,1)
Sau khi nạp chương trình rồi nhấn nút trên xBot, robot sẽ di chuyển tới 1 giây rồi lùi 1 giây.
Chương trình sau đây sẽ điều khiển cho xBot quay trái 1 giây, sau đó quay qua phải 1 giây (sau khi nút trên xBot được nhấn)
wait_for(lambda: (btn_onboard.is_pressed())) robot.turn_left(50,1) robot.turn_right(50,1)
Hoặc cũng có thể sử dụng:
wait_for(lambda: (btn_onboard.is_pressed())) robot.set_wheel_speed(0, 50) time.sleep(1) robot.set_wheel_speed(50, 0) time.sleep(1) robot.stop()