Skip to main content

Bài 2: Lái xe đến đĩa xanh rồi đĩa xanh lam

Lái xe đến Đĩa Xanh rồi Đĩa Xanh

  • Dự án trước đó có 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. Bây giờ, hãy xây dựng một dự án trong đó Robot VR di chuyển đến bốn đĩa trên Sân chơi mê cung đĩa .
  • Mục tiêu 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.

    Góc nhìn từ trên xuống của sân chơi Disc Maze, với mũi tên chỉ đường đi dự kiến của robot VR. Robot phải di chuyển về phía trước từ bệ xuất phát để đến đĩa màu xanh lá cây đầu tiên và rẽ phải trước khi rẽ trái ở hai đĩa màu xanh lam.
  • Thêm khối sau vào dự án hiện có để hướng dẫn Robot VR di chuyển về phía trước sau khi rẽ phải.

    Các khối VEXcode VR được xây dựng từ trước, với các khối Comment và Drive Forward được thêm vào. Toàn bộ dự án hiện có nội dung là Khi bắt đầu theo sau là Bình luận có nội dung là 'lái xe đến đĩa đầu tiên (màu xanh lá cây), sau đó rẽ phải'. Tiếp theo, lái về phía trước, đợi cho đến khi mắt trước phát hiện màu xanh lá cây rồi rẽ phải 90 độ. Tiếp theo là khối chú thích có nội dung 'lái xe đến đĩa tiếp theo (màu xanh), sau đó rẽ trái'. Cuối cùng, lái xe về phía trước.
  • Thêm một [Chờ cho đến khi] nữa với khối <Color sensing> được đặt để phát hiện 'màu xanh', vì đĩa tiếp theo mà Robot VR sẽ gặp phải có màu xanh.

    Các khối VEXcode VR được dự án từ trước đó, với khối Wait Until được thêm vào sau khối Drive Forward cuối cùng. Toàn bộ dự án hiện có nội dung là Khi bắt đầu theo sau là Bình luận có nội dung là 'lái xe đến đĩa đầu tiên (màu xanh lá cây), sau đó rẽ phải'. Tiếp theo, lái về phía trước, đợi cho đến khi mắt trước phát hiện màu xanh lá cây rồi rẽ phải 90 độ. Tiếp theo là khối chú thích có nội dung 'lái xe đến đĩa tiếp theo (màu xanh), sau đó rẽ trái'. Cuối cùng, lái xe về phía trước và đợi cho đến khi mắt trước phát hiện màu xanh.
  • Thêm khối [Quay về] và đặt tham số thành 'trái'.

    Các khối VEXcode VR được xây dựng từ trước đó, với khối Rẽ trái 90 độ được thêm vào sau khối Chờ cho đến khi cuối cùng. Toàn bộ dự án hiện có nội dung là Khi bắt đầu theo sau là Bình luận có nội dung là 'lái xe đến đĩa đầu tiên (màu xanh lá cây), sau đó rẽ phải'. Tiếp theo, lái về phía trước, đợi cho đến khi mắt trước phát hiện màu xanh lá cây rồi rẽ phải 90 độ. Tiếp theo là khối chú thích có nội dung 'lái xe đến đĩa tiếp theo (màu xanh), sau đó rẽ trái'. Tiếp theo lái xe về phía trước và đợi cho đến khi mắt trước phát hiện màu xanh trước khi rẽ 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 sân chơi Disc Maze, với mũi tên chỉ đường đi dự kiến của robot VR. Robot phải di chuyển về phía trước từ bệ xuất phát để đến đĩa màu xanh lá cây đầu tiên và rẽ phải trước khi rẽ trái ở đĩa màu xanh lam đầu tiên.
  • 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 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 các khối sau để điều hướng Robot VR đến hai Đĩa tiếp theo rồi dừng lại:

    Đoạn mã VEXcode VR chặn để thêm vào cuối dự án của chúng ta để đạt đến đĩa thứ ba và thứ tư màu xanh. Để lái đến đĩa thứ ba, hãy lái về phía trước, đợi cho đến khi mắt trước phát hiện màu xanh lam và rẽ trái 90 độ. Tiếp theo lái đến đĩa thứ tư, Lái về phía trước, Đợi cho đến khi Mắt trước phát hiện màu xanh rồi Rẽ trái 90 độ. Cuối cùng, hãy ngừng lái xe.
    Đoạn mã chặn VEXcode để tiếp cận đĩa thứ ba và thứ tư hiện được thêm vào cuối dự án của chúng tôi. Toàn bộ dự án hiện có bốn đĩa, đầu tiên là một đĩa màu xanh lá cây và sau đó là ba đĩa màu xanh lam. Sử dụng đoạn mã sau cho mỗi đĩa: Tiến về phía trước, Đợi cho đến khi Mắt trước phát hiện màu của đĩa, sau đó rẽ phải 90 độ nếu đĩa màu xanh lá cây và rẽ trái 90 độ nếu đĩa màu xanh lam. Lặp lại phần ba khối đó bốn lần, chúng ta có thể đạt được bốn đĩa, đầu tiên là đĩa màu xanh lá cây khi rẽ phải và sau đó là ba đĩa màu xanh lam khi rẽ trái. Sau 12 khối này và các Bình luận bổ sung đánh dấu từng phần, hãy Dừng lái xe.
  • Lưu ý rằng có một mô hình. Có một loạt các khối được lặp lại ba lần trong dự án. Phần mã này có thể được rút gọn bằng cách sử dụng khối [Lặp lại].

    Bây giờ chúng ta sẽ sử dụng khối Lặp lại để đơn giản hóa và rút ngắn mã của mình. Một hộp màu đỏ làm nổi bật ba phần được sử dụng để tiếp cận các đĩa màu xanh, vì đây là cùng một mã ba lần nên chúng ta có thể thêm nó vào Khối lặp lại được thiết lập để lặp lại 3 lần. Hiện tại, dự án có nội dung Khi bắt đầu, lái về phía trước và đợi cho đến khi mắt trước phát hiện màu xanh lá cây trước khi rẽ phải 90 độ. Tiếp theo, lặp lại mã để đến đĩa màu xanh ba lần: Tiến về phía trước, Đợi cho đến khi Mắt trước phát hiện màu xanh rồi Rẽ trái 90 độ. Sau khi hoàn tất vòng lặp, hãy dừng lái xe.
  • 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 Disk Maze trước đó, với mũi tên chỉ đường đi dự kiến của robot VR. Robot phải di chuyển về phía trước từ bệ xuất phát để đến đĩa màu xanh lá cây đầu tiên và rẽ phải trước khi rẽ trái ở hai đĩa màu xanh lam và dừng lại ở đĩa thứ ba. Hộp màu đỏ cho biết robot dừng lại ở đĩa màu xanh thứ ba.
  • 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.

Sử dụng khối chuyển đổi

Cho đến nay, bạn đã tạo một dự án để lái đến đĩa màu xanh lá cây và sau đó là ba đĩa màu xanh lam.

Hình ảnh bên dưới hiển thị toàn bộ dự án sử dụng các khối VEXcode, với các hành vi lặp lại được sử dụng để điều khiển đến ba đĩa màu xanh được đóng khung màu đỏ.

Dự án khối VEXcode VR mà chúng tôi đang thực hiện, với khối Lặp lại ba lần được đánh dấu màu đỏ. Dự án có nội dung: Khi bắt đầu, lái xe về phía trước và đợi cho đến khi mắt trước phát hiện màu xanh lá cây trước khi rẽ phải 90 độ. Tiếp theo, lặp lại mã để tiếp cận đĩa màu xanh ba lần bằng cách sử dụng khối lặp lại: Tiến về phía trước, Đợi cho đến khi Mắt trước phát hiện màu xanh rồi Rẽ trái 90 độ. Sau khi hoàn tất vòng lặp, hãy dừng lái xe.

Dự án bên dưới hiển thị các khối VEXcode này được chuyển đổi thành nhiều khối Switch.

dự án trung tâm

Dự án cuối cùng này hiển thị các lệnh khối Switch tương tự được chuyển đổi thành lệnh Python trong một khối Switch.

Các khối VEXcode VR dự kiến sẽ tiếp cận bốn đĩa đầu tiên, nhưng toàn bộ vòng lặp Lặp lại được chuyển đổi thành các khối chuyển đổi Python. Toàn bộ dự án có nội dung Khi bắt đầu, hãy lái xe về phía trước và đợi cho đến khi mắt trước phát hiện màu xanh lá cây trước khi rẽ phải 90 độ. Tiếp theo là khối chuyển đổi chứa mã Python sau: 'for repeat_count in range(3): drivetrain.drive(FORWARD) while not front_eye.detect(BLUE): wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES)'. Bây giờ, bên ngoài khối chuyển mạch, cuối cùng là Dừng lái xe.

cho repeat_count trong range(3): là lệnh Python cho robot biết rằng các dòng mã thụt lề tiếp theo phải được lặp lại ba lần. Lưu ý rằng bạn phải thêm dấu hai chấm (:) sau vòng lặp for. 

Các dòng mã tiếp theo là những hành vi sẽ được lặp lại. Lưu ý rằng các hành vi này được thụt lề theo mặc định là 4 khoảng trắng. 

Ngoài ra, lưu ý rằng điều kiện bao gồm lệnh wait (5, MSEC). Trong VEXcode VR, lệnh wait luôn được thêm vào vòng lặp for. Mục đích của lệnh wait là để đảm bảo VEXcode VR có thể chạy dự án đúng như mong muốn, do nền tảng VEXcode VR là nền tảng dựa trên web. Không bao giờ nên xóa lệnh wait khi sử dụng vòng lặp for, nếu không dự án của bạn có thể không chạy như mong đợi. 

Dòng wait (5, MSEC)được thụt vào bên dưới lệnh while not front_eye.detect(BLUE) vì Cảm biến mắt trước sẽ kiểm tra màu xanh lam, tạm dừng 5 MSEC giữa mỗi lần kiểm tra.

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.