Bài 2: Sử dụng khối [Chờ cho đến khi]
Trong Bài học này, bạn sẽ tạo một dự án bằng cách sử dụng Cảm biến cản và khối [Chờ cho đến]. Trong thử thách nhỏ này, bạn sẽ áp dụng những kỹ năng này để di chuyển từ đầu Mê cung tường đến chữ 'A'.

Kết quả học tập
- Xác định rằng các khối không chờ đợi sẽ tiếp tục xử lý ngăn xếp ngay cả khi hành vi của khối chưa hoàn tất.
- Xác định rằng khối chờ sẽ tạm dừng ngăn xếp cho đến khi hành vi của khối đó hoàn tất.
- Xác định rằng việc làm nổi bật quá trình thực hiện dự án sẽ trực quan hóa các khối đang chờ và không chờ.
- Xác định khối [Chờ cho đến khi] là khối Điều khiển chấp nhận các giá trị Boolean.
- Xác định rằng khối [Chờ cho đến khi] sẽ kiểm tra nhiều lần một điều kiện Boolean và sẽ không chuyển sang khối tiếp theo cho đến khi điều kiện báo cáo là ĐÚNG.
- Xác định rằng khối [Chờ cho đến khi] được sử dụng với khối không chờ (ví dụ: Drive) để kiểm tra tình trạng cảm biến.
- Xác định khối <Pressing bumper> báo cáo giá trị ĐÚNG hoặc SAI trong khối [Chờ cho đến].
- Xác định khối [Lái xe tới] và [Rẽ tới] là khối đặc biệt có thể chờ hoặc không chờ.
- Mô tả cách tạo một dự án có Robot VR di chuyển về phía trước cho đến khi Cảm biến cản được nhấn.
Đặt tên và lưu dự án
- Bắt đầu một dự án mới trong VEXcode VR và đặt tên cho dự án Unit4Lesson2.

[Chờ cho đến khi] Khối
Khối [Chờ cho đến khi] là khối Điều khiển chấp nhận các điều kiện Boolean. [Chờ cho đến khi] các khối kiểm tra điều kiện Boolean nhiều lần và kiểm soát luồng dự án. Một dự án sẽ không di chuyển đến khối tiếp theo trong ngăn xếp cho đến khi điều kiện trong khối [Chờ cho đến khi] được báo cáo là ĐÚNG. Các khối [Chờ cho đến khi] được sử dụng kết hợp với các khối không chờ như [Lái] hoặc [Rẽ].
Để bạn biết
Các khối không chờ và chờ xác định thời điểm khối tiếp theo bắt đầu một hành vi. Các khối chờ, như [Lái tới] và [Rẽ tới], hoàn tất hành vi của chúng trước khi chuyển sang khối tiếp theo trong ngăn xếp. Các khối không chờ, chẳng hạn như [Lái] và [Rẽ], tiếp tục di chuyển đến khối tiếp theo trong ngăn xếp ngay cả khi hành vi của khối không chờ chưa hoàn tất.
Một số khối nhất định, như [Lái tới] và [Rẽ tới] có thể là khối chờ hoặc không chờ. Chọn mũi tên trên khối sẽ chuyển khối từ trạng thái chờ sang trạng thái không chờ.

Sử dụng khối chuyển đổi
Khối không chờ Switch sẽ thêm tham số "wait=False" vào cuối khối. "wait=False" là lệnh Python yêu cầu khối không đợi và tiếp tục di chuyển đến các khối tiếp theo trong ngăn xếp.

-
Kéo khối [Ổ đĩa] không chờ vào không gian làm việc.

-
Đính kèm khối [Chờ cho đến] bên dưới khối [Ổ đĩa].

-
Khối [Chờ cho đến khi] chấp nhận các điều kiện Boolean. Dự án này sẽ sử dụng Cảm biến cản để lái xe qua Mê cung tường Sân chơi. Kéo khối Boolean <Pressing bumper> vào khối [Chờ cho đến].

-
Kéo khối [Dừng lái xe] và thêm vào dự án.

- Khởi chạy Wall Maze Playground nếu nó chưa mở và chạy dự án.
- Xem Robot VR di chuyển từ đầu Mê cung tường và dừng lại khi Cảm biến cản được ấn vào tường.
-
Khối [Drive] cho phép Robot VR tiếp tục di chuyển về phía trước trong khi kiểm tra tình trạng của Cảm biến cản bằng khối <Pressing bumper>. Khi số <Pressing bumper> báo cáo là ĐÚNG, Robot VR sẽ di chuyển đến khối tiếp theo trong ngăn xếp và dừng lái.

Để bạn biết
Để theo dõi hình ảnh trực quan về các khối chờ và không chờ, hãy xem chức năng tô sáng thực thi mã trong VEXcode VR. Khi bắt đầu dự án này, điểm nổi bật màu xanh lá cây sẽ xuất hiện xung quanh khối [Chờ cho đến khi] cho đến khi điều kiện được đáp ứng. Điều này là do khối [Chờ cho đến khi] là khối chờ. Điểm nổi bật màu xanh lá cây sẽ xuất hiện để bỏ qua các khối không chờ vì các lệnh này được thực thi nhanh chóng.

Sử dụng khối chuyển đổi
Đây là khối Switch chứa lệnh [Wait until] với <Bumper pressed>
Phóng viên Boolean. 
while not left_bumper.pressed():là lệnh Python kiểm tra xem cản bên trái có đang được nhấn hay không. wait (5, MSEC)là lệnh Python tạm dừng thực hiện kiểm tra trong 5 mili giây (MSEC), do đó dự án sẽ kiểm tra xem thanh cản bên trái có được nhấn hay không sau mỗi 5 MSEC. Dòng mã này được thụt vào bên dưới dòng mã đầu tiên vì lệnh này là hành vi sẽ lặp lại cho đến khi điều kiện (trong trường hợp này là nhấn nút cản trái) được đáp ứng. Trong VEXcode VR, lệnh wait luôn được thêm vào bằng một vòng lặp có điều kiện. 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 có điều kiện, vì dự án của bạn có thể không chạy như mong muốn. Khi nhấn vào thanh cản bên trái, robot sẽ dừng lá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.