Skip to main content

Bài 2: Lái xe đến chữ 'A'

Sử dụng cảm biến khoảng cách để tránh tường 

Bây giờ bạn đã tìm hiểu về toán tử so sánh là gì và cách sử dụng chúng trong một dự án, bạn sẽ áp dụng kiến thức đó để lái Robot VR đến chữ 'A' trong Sân chơi mê cung tường. Dự án này sẽ sử dụng Cảm biến khoảng cách để di chuyển qua Sân chơi mê cung tường mà không va vào tường.

Đặt tên và Lưu Dự án

  • Bắt đầu một dự án văn bản mới và chọn Sân chơi mê cung tường khi được nhắc. Ô chọn Sân chơi mê cung tường.
  • Đặt tên cho dự án Unit5Lesson2.
    Thanh công cụ VEXcode VR và hộp thoại tên dự án ở giữa có nội dung Bài 2 Đơn vị 5.
  • Kéo vào, nhập hoặc sao chép vòng lặpwhilevà xóa lệnh Drivetrain được điền vào mẫu dự án Text mới để dự án của bạn trông như thế này. Lưu ý lệnh sẽ điền vòng lặp while với lệnh wait bên trong. Không xóa lệnh wait , vì lệnh này sẽ đảm bảo VR Robot thực hiện dự án một cách chính xác.

    def main():
        while condition:
            wait(5, MSEC)
  • Kéo, nhập hoặc sao chép lệnh drive không chờ bên trong vòng lặp để dự án của bạn trông như thế này.

    def main():
        while condition:
            drivetrain.drive(FORWARD)
    
            wait(5, MSEC)
    • Kiểm tra xem thụt lề đã đúng chưa và lệnh drive đã thẳng hàng với lệnh waitchưa.

Thêm hàmget_distancevà toán tử lớn hơn

  • Kéo hoặc nhập lệnh get_distancevào 'điều kiện' của vòng lặp while để dự án của bạn trông như thế này. Nhập toán tử lớn hơn và toán hạng thứ hai là '50. 
  • def main():
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
    
            wait(5, MSEC)
  • Thêm lệnh stop bên ngoài vòng lặp while để dự án của bạn trông như thế này. Cần có lệnh stop sau vòng lặp while vì Robot VR sẽ tiếp tục lái cho đến khi được lệnh dừng lại.

    def main():
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
            
        drivetrain.stop()
  • Mở Cửa sổ Sân chơi nếu nó chưa mở, đảm bảo rằng Sân chơi Mê cung Tườngmở và chạy dự án.
  • Theo dõi Robot VR di chuyển về phía trước cho đến khi Cảm biến khoảng cách báo cáo khoảng cách giữa Robot VR và bức tường là chứ không phải lớn hơn 50 milimét (mm).Góc nhìn từ trên xuống của Sân chơi Mê cung Tường với Robot VR dừng lại trước bức tường đầu tiên đối diện với vị trí bắt đầu.
  • Đặt lại Sân chơi để di chuyển Robot VR trở lại vị trí bắt đầu.

Tiếp tục Dự án Lái xe đến Chữ 'A'

Sử dụng toán tử lớn hơn (>) với lệnh get_distancelàm điều kiện của vòng lặp while hướng dẫn Robot VR di chuyển về phía trước miễn là khoảng cách giữa Robot VR và bức tường lớn hơn 50 milimét (mm). Khi Cảm biến khoảng cách báo cáo khoảng cách từ Robot VR đến tường không lớn hơn 50 mm, Robot VR sẽ dừng di chuyển. Để tiếp tục di chuyển đến chữ 'A', Robot VR cần phải rẽ khi đến gần bức tường. 

Để lái đến chữ 'A', Robot VR sẽ cần phát hiện hai bức tường và rẽ trái khi phát hiện ra những bức tường này. Sau đó, VR Robot sẽ dừng lại khi phát hiện bức tường thứ ba, nằm phía sau chữ 'A'.
Góc nhìn từ trên xuống của Sân chơi Mê cung Tường với Robot VR ở vị trí bắt đầu và ba mũi tên màu đỏ chỉ đường từ điểm bắt đầu đến chữ A. Mũi tên đầu tiên hướng về phía trước về phía bức tường đối diện, mũi tên thứ hai hướng từ đó sang trái để đối diện với bức tường tiếp theo và mũi tên thứ ba hướng từ đó xuống dưới đến chữ A.

  • Thay thế lệnh stopbằng lệnh turn_forđể dự án của bạn trông như thế này. Lệnh turn_forlà cần thiết vì khi Cảm biến khoảng cách nằm trong phạm vi 50 milimét (mm) của bức tường, Robot VR sẽ rẽ trái để tiếp tục tiến về phía chữ 'A'.

    • Đặt thông số quay thành "TRÁI, 90, ĐỘ".
    def main():
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.turn_for(LEFT, 90, DEGREES)
    • Thêm một vòng lặp whilenữa với lệnh drive bên dưới lệnh turn_for . Đặt điều kiện bằng cách sử dụng lệnh get_distancelàm toán hạng đầu tiên, toán tử lớn hơn và hằng số '50' làm toán hạng thứ hai.
        trong khi front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    • Cuối cùng, thêm các lệnh sau vào bên dưới vòng lặp while hai để hướng dẫn Robot VR phát hiện bức tường cuối cùng phía sau chữ 'A' rồi dừng lái. Hãy chắc chắn rằng lệnh turn_for và lệnh stop nằm ngoài vòng lặp while tương ứng của chúng.
        drivetrain.turn_for(LEFT, 90, DEGREES)
    
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.stop()
    • Khởi chạy Sân chơi mê cung tường nếu nó chưa mở và chạy dự án.
    • Hãy xem Robot VR di chuyển từ đầu Mê cung tường đến chữ 'A' rồi dừng lại.

    Góc nhìn từ trên xuống của Sân chơi Mê cung tường với Robot VR ở vị trí bắt đầu ở giữa phía dưới Sân chơi. Chữ A nằm ngay bên trái của robot, được ngăn cách bởi một bức tường ngắn.

    • Lưu ý rằng Robot VR không va vào bất kỳ bức tường nào khi di chuyển đến chữ 'A'. Khi giá trị Cảm biến khoảng cách báo cáo rằng Robot VR không cách tường quá 50 milimét (mm), Robot VR sẽ được hướng dẫn quay hoặc dừng lại trong dự án.

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.