Bài 2: Lái xe đến đĩa tiếp theo
Lái xe đến Blue Disks
Dự án trước đó có VR Robot rẽ phải khi Cảm biến mắt trước phát hiện đĩa màu xanh lá cây, đưa VR Robot qua bước đầu tiên trong mê cung. Bây giờ, chúng ta sẽ tiếp tục xây dựng dự án để VR Robot di chuyển đến bốn đĩa đầu tiên trên Sân chơi mê cung đĩa .
Khi nhìn vào hướng mà VR Robot hướng đến sau khi rẽ phải tại đĩa màu xanh lá cây, chúng ta có thể thấy rằng để di chuyển đến ba đĩa màu xanh tiếp theo, VR Robot phải tiến về phía trước và rẽ trái tại mỗi đĩa màu xanh. Chúng ta có thể sử dụng cùng logic của vòng lặpwhilevới điều kiệnnotđể Robot VR tiếp tục lái qua mê cung và rẽ trái khi phát hiện đĩa màu xanh.
- Thêm một bình luận khác bên dưới turn_for trong dự án hiện tại để mô tả hành vi tiếp theo của Robot VR. Dự án của bạn sẽ trông như thế này:
def main():
# Lái đến đĩa thứ 1 (màu xanh lá cây), rẽ phải
khi không front_eye.detect(XANH LÁ CÂY):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# Lái đến đĩa thứ 2 (màu xanh lam), rẽ trái- Bên dưới bình luận mới, thêm một vòng lặp while khác với điều kiện not. Đặt điều kiện thành lệnh phát hiệnvà đặt các tham số thành "XANH DƯƠNG", vì đĩa tiếp theo mà Robot VR sẽ gặp phải có màu xanh lam.
# Lái đến đĩa thứ 2 (màu xanh), rẽ trái
khi không front_eye.detect(XANH DƯƠNG):
wait(5, MSEC)- Bên trong vòng lặp while , kéo hoặc nhập lệnh không chờ drive.
# Lái đến đĩa thứ 2 (màu xanh), rẽ trái
khi không front_eye.detect(XANH DƯƠNG):
drivetrain.drive(TIẾN LÊN)
wait(5, MSEC)- Kéo vào hoặc nhập lệnh turn_for và thiết lập các thông số để rẽ trái 90 độ.
# Lái đến đĩa thứ 2 (màu xanh), rẽ trái
khi không front_eye.detect(XANH DƯƠNG):
drivetrain.drive(TIẾN LÊN)
wait(5, MSEC)
drivetrain.turn_for(TRÁI, 90, ĐỘ)- Chạy dự án để xem Robot VR di chuyển như thế nào qua Sân chơi mê cung đĩa .
- Lưu ý rằng Robot VR sẽ rẽ phải khi Cảm biến mắt trước phát hiện đĩa màu xanh lá cây và rẽ trái khi Cảm biến mắt trước phát hiện đĩa màu xanh lam.
- Tiếp tục xây dựng dự án này để điều khiển Robot VR đến hai đĩa màu xanh nữa trên Sân chơi mê cung đĩa bằng cách sử dụng Cảm biến mắt trước. Thêm lệnh vào dự án để điều hướng VR Robot đến hai đĩa tiếp theo rồi dừng lại. Toàn bộ dự án của bạn bây giờ sẽ trông như thế này:
def main():
# Lái đến đĩa thứ 1 (màu xanh lá cây), rẽ phải
khi không front_eye.detect(XANH LÁ):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# Lái đến đĩa thứ 2 (màu xanh lam), rẽ trái
khi không front_eye.detect(BLUE):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)
# Lái đến đĩa thứ 3 (màu xanh lam), rẽ trái
khi không front_eye.detect(BLUE):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)
# Lái đến đĩa thứ 4 (màu xanh lam), rẽ trái
khi không front_eye.detect(BLUE):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)Xác định một mô hình trong chuyển động của Robot VR
Mục tiêu của việc điều hướng thành công Mê cung đĩa bằng Cảm biến mắt trước là tạo ra một mô hình nhất quán trong đó Robot VR rẽ phải khi Cảm biến mắt trước phát hiện đĩa màu xanh lá cây và rẽ trái khi Cảm biến mắt trước phát hiện đĩa màu xanh lam. Việc xác định các mô hình như thế này có thể giúp bạn đơn giản hóa các dự án khi chúng ngày càng phức tạp hơn.

Để bạn biết
Lưu ý rằng cũng có một mẫu trong trình tự các lệnh trong dự án. Có một loạt lệnh (dành cho đĩa màu xanh) được lặp lại ba lần trong dự án. Đoạn mã này có thể được rút gọn bằng cách sử dụng vòng lặp cho . Dự án được trình bày ở đây kết hợp ba vòng lặp while liên quan đến đĩa màu xanh thành một vòng lặp for duy nhất.
def main():
# Lái đến đĩa đầu tiên (màu xanh lá cây), rẽ phải
khi không front_eye.detect(XANH LÁ CÂY):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# Lái đến 3 đĩa tiếp theo (màu xanh lam), rẽ trái
cho giá trị trong phạm vi(3):
khi không front_eye.detect(XANH LAM):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)Sử dụng vòng lặpchocó thể làm cho dự án của bạn đơn giản hơn và dễ đọc hơn, nhưng vẫn chứa các lệnh lặp lại bên trong một vòng lặp.
- Mở Sân chơi mê cung đĩa nếu nó chưa được mở và chạy dự án.
-
Xem Robot VR di chuyển đến bốn đĩa trên Sân chơi mê cung đĩa .

- Trong dự án này, Robot VR sẽ di chuyển về phía trước cho đến khi Cảm biến mắt trước phát hiện màu xanh lá cây.
- Robot VR rẽ phải 90 độ và tiếp tục tiến về phía trước cho đến khi phát hiện màu xanh lam.
- Sau đó, VR Robot rẽ trái và tiến về phía trước cho đến khi Cảm biến mắt trước phát hiện màu xanh lam. Khi phát hiện màu xanh, Robot VR sẽ rẽ trái lần nữa.
- Cuối cùng, VR Robot sẽ di chuyển về phía trước cho đến khi Cảm biến mắt trước phát hiện màu xanh lam, sau đó dừng lại.
- Lưu ý rằng khi Cảm biến mắt trước phát hiện màu xanh lá cây, Robot VR sẽ rẽ phải. Trong dự án này, khi cảm biến mắt trước phát hiện màu xanh, Robot VR sẽ rẽ trái.
Chọn nút Tiếp theo để tiếp tục phần còn lại của Bài học này.