Skip to main content

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.Góc nhìn từ trên xuống của sân chơi mê cung đĩa. Robot ở đĩa xanh đầu tiên hướng về bên phải về phía đĩa xanh đầu tiên. Các mũi tên màu đen thể hiện cách robot cần di chuyển. Điều này cho biết robot sẽ lái đến đĩa màu xanh, rẽ trái, lái đến đĩa màu xanh thứ hai, rẽ trái và dừng lại ở đĩa màu xanh thứ ba.

  • 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 .Góc nhìn từ trên xuống của Robot VR trên Sân chơi mê cung đĩa với mũi tên màu đen cho biết robot sẽ lái đến đĩa màu xanh lá cây ngay đối diện với vị trí bắt đầu, sau đó rẽ phải, lái về phía trước đến đĩa màu xanh lam, rẽ trái rồi dừng lái.
    • 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.

Góc nhìn từ trên xuống của sân chơi mê cung đĩa. Robot đang ở vị trí bắt đầu. Các mũi tên chỉ đường đi của robot Vr, cho thấy hướng di chuyển về phía trước đến đĩa màu xanh lá cây đầu tiên, rẽ phải, lái đến đĩa màu xanh lam, rẽ trái, lái đến đĩa màu xanh lam thứ hai, rẽ trái và dừng lại ở đĩa màu xanh lam thứ ba.

Để 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 .

    Góc nhìn từ trên xuống của sân chơi mê cung đĩa. Robot đang ở vị trí bắt đầu. Các mũi tên chỉ đường đi của robot VR, cho thấy hướng di chuyển về phía trước đến đĩa màu xanh lá cây đầu tiên, rẽ phải, lái đến đĩa màu xanh lam, rẽ trái, lái đến đĩa màu xanh lam thứ hai, rẽ trái và dừng lại ở đĩa màu xanh lam thứ ba. Một hộp màu đỏ nằm trên đĩa màu xanh cuối cùng cho biết vị trí kết thúc.
  • 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.