Bài 3: Thêm lệnh truyền động để giải quyết mê cung tường
Giải bài toán mê cung tường
Bây giờ VR Robot đã di chuyển đến chữ 'A' cũng như đến số '2' trên Sân chơi tường mê cung, bạn sẽ tạo một dự án trong đó VR Robot di chuyển đến các địa điểm khác, chẳng hạn như đến chữ 'B' như thế nào? Cho đến nay, chúng tôi đã sử dụng dữ liệu từ Cảm biến cản để lái xe đến một bức tường, sau đó rẽ để di chuyển đến bức tường tiếp theo. Để điều hướng đến chữ 'B', chúng ta cần có khả năng di chuyển Robot VR đến một điểm ở giữa bề mặt mê cung, để nó có thể đi theo một con đường khác hướng tới đích.
Nếu mã chỉ chứa các lệnh drivevà turn_for, Robot VR có thể bị "mắc kẹt" trong phần số '2' của Mê cung tường, vì nó sẽ tiếp tục rẽ trái hoặc phải mà không bao giờ lùi lại.
Thay vào đó, chúng ta có thể ước tính khoảng cách từ bức tường cuối cùng mà Robot VR chạm vào đến nơi nó cần rẽ. Sau đó, chúng ta có thể sử dụng các lệnh Drivetrain, nhưdrive_forvàturn_for, với các vòng lặpwhilevà dữ liệu Cảm biến cản trong dự án của mình để giải quyết mê cung!
-
Bắt đầu bằng cách sửa đổi dự án trước đó của bạn, tạo một dự án mới hoặc chọn "Sao chép" và dán mã này vào VEXcode VR để khớp với dự án cơ sở này.
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - Dự án trên bắt đầu lái Robot VR đến chữ 'B', tuy nhiên, để Robot VR có thể làm như vậy, trước tiên nó cần phải lùi lại rồi rẽ trái.

- Chỉnh sửa mã bằng cách xóa lệnh stop và thay thế bằng lệnhdrive_forvà turn_for
- Chúng ta có thể ước tính rằng Robot VR cần phải lùi lại khoảng 300 milimét (mm). Đầu tiên, hãy đặt các tham số của lệnh drive_for thành “đảo ngược” cho 300 milimét (mm).
-
Sau đó, thiết lập các tham số của lệnh turn_for để rẽ trái 90 độ. Dự án của bạn bây giờ sẽ trông như thế này:
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.drive_for(REVERSE, 300, MM) drivetrain.turn_for(TRÁI, 90, ĐỘ)
- Khởi chạy Wall Maze Playground nếu nó chưa mở và chạy dự án.
-
Việc thêm các lệnh này sẽ định hướng Robot VR theo đúng hướng để điều khiển chữ 'B'.

- Chọn nút “Đặt lại” để đặt lại Sân chơi và di chuyển Robot VR trở lại vị trí ban đầu.
-
Bây giờ VR Robot đã định hướng đúng hướng, hãy thêm các lệnh sau vào bên dưới lệnh cuối cùng turn_for để điều khiển VR Robot đến chữ 'B' trên Mê cung tường Sân chơi. Hãy đảm bảo các lệnh được thụt lề đúng cách trong dự án của bạn.
trong khi không left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) trong khi không left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) trong khi không left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - Khởi chạy Wall Maze Playground nếu nó chưa mở và chạy dự án.
-
Bây giờ, VR Robot sẽ di chuyển đến chữ 'B' trên Mê cung tường Sân chơi.

Thử thách nhỏ
Trong thử thách này, VR Robot phải điều hướng đến số '3' trong Mê cung tường Sân chơi bằng cách sử dụng nhiều vòng lặptrong khi, lệnh truyền động và Cảm biến cản.

Thực hiện theo các bước sau để hoàn thành thử thách nhỏ:
-
Xem video giải pháp bên dưới và xem lại cách Robot VR phải lái để hoàn thành thử thách nhỏ này. Trong đoạn video clip bên dưới, Robot VR bắt đầu ở vị trí ban đầu và di chuyển theo cùng một mô hình là tiến vào tường cho đến khi nhấn vào cản rồi rẽ. Robot di chuyển theo cùng một đường để bắt đầu, giống như đường nó đã đi đến chữ B. Tại điểm rẽ ra khỏi bức tường, robot rẽ phải để tiếp tục đến số 3. Từ điểm đó, nó tiến về phía trước và rẽ trái hai lần để đi vòng qua dãy tường tiếp theo, qua chữ B. Cuối cùng, robot tiến về phía trước và rẽ phải hai lần để đi vòng qua dãy tường cuối cùng để đến số 3.
- Tạo một dự án bằng cách thêm hoặc xóa các lệnh cần thiết vào dự án Unit4Lesson3 để điều khiển Robot VR đến số '3' trên Wall Maze Playground.
- Bắt đầu dự án để kiểm tra xem nó có hoạt động không.
- Nếu dự án không thành công, hãy chỉnh sửa và thử lại. Tiếp tục quá trình này cho đến khi thử thách hoàn tất.
- Khi VR Robot di chuyển thành công đến số '3' trên Wall Maze Playground, hãy lưu dự án.
Chúc mừng! Bạn đã hoàn thành thành công Thử thách Mê cung tường!