Bài 2: Lái xe đến số '5'
Trong Bài học này, Robot VR sẽ di chuyển đến số '5' và quay trở lại số '1' trên Sân chơi Bản đồ lưới số số!

Lưu ý rằng Robot VR sẽ di chuyển dọc theo trục X với các giá trị X tăng dần để di chuyển đến số '5' trên Sân chơi Bản đồ lưới số .

Robot VR sẽ di chuyển đến vị trí số '5' trên Sân chơi bản đồ lưới số . Tuy nhiên, trước khi VR Robot có thể điều hướng đến số đó, VR Robot phải được cho biết vị trí của số đó. Bắt đầu từ trung tâm của Sân chơi, tọa độ của số '5' là (-100, -900).

- Để bắt đầu, Robot VR cần phải hướng về số '5'. Kéo vào hoặc nhập lệnh turn_for.
# Thêm mã dự án vào "main"
def main():
drivetrain.turn_for(RIGHT, 90, DEGREES)- Kéo một vòng lặp while vào bên dưới lệnh turn_for. Dự án của bạn sẽ trông như thế này:
# Thêm mã dự án vào "main"
def main():
drivetrain.turn_for(RIGHT, 90, DEGREES)
while condition:
wait(5, MSEC)- Giống như Đơn vị cảm biến khoảng cách, dự án này sẽ sử dụng điều kiện vị trí của Cảm biến vị trí với toán tử so sánh để điều hướng Bản đồ lưới số Sân chơi. Đặt điều kiện cho vòng lặp while thành lệnh vị trí trên trục X nhỏ hơn -100 tính bằng milimét (mm). Dự án của bạn sẽ trông như thế này:
# Thêm mã dự án vào "main"
def main():
drivetrain.turn_for(RIGHT, 90, DEGREES)
while location.position(X, MM) < -100:
wait(5, MSEC)- Kéo hoặc nhập lệnh không chờ drive bên trong vòng lặp while. Dự án của bạn sẽ trông như thế này:
# Thêm mã dự án vào "main"
def main():
drivetrain.turn_for(RIGHT, 90, DEGREES)
while location.position(X, MM) < -100:
drivetrain.drive(FORWARD)
wait(5, MSEC)- Lưu ý rằng toán tử nhỏ hơn được sử dụng thay cho toán tử lớn hơn vì Robot VR đang lái về phía bên phải từ phía bên trái của Sân chơi. Robot VR bắt đầu ở giá trị X là -900 milimét (mm). Khi Robot VR tiến về phía trước, giá trị X tăng lên và do đó robot sẽ tiếp tục tiến về phía trước khi giá trị X nhỏ hơn -100.

Để bạn biết
Bạn sẽ cần chọn toán tử so sánh nào để sử dụng trong dự án của mình, tùy thuộc vào hướng bạn muốn Robot VR di chuyển dọc theo trục X hoặc Y. Khi Robot VR di chuyển về phía giá trị lớn hơn, toán tử nhỏ hơn (<) sẽ được sử dụng với vòng lặpwhile ; và khi Robot VR di chuyển về phía giá trị nhỏ hơn, toán tử lớn hơn (>) sẽ được sử dụng với vòng lặpwhile .
Điều này phù hợp với chuyển động sang trái và phải khi nhìn vào Sân chơi. Nếu Robot VR di chuyển từ trái sang phải hoặc từ dưới lên trên (giá trị lớn hơn), toán tử nhỏ hơn sẽ được sử dụng để điều khiển khi vị trí là trừ so với giá trị mục tiêu.
Nếu Robot VR di chuyển từ phải sang trái hoặc từ trên xuống dưới (giá trị nhỏ hơn), toán tử lớn hơn sẽ được sử dụng để điều khiển khi vị trí là lớn hơn so với giá trị mục tiêu.
Khi sử dụng các toán tử so sánh, Robot VR sẽ di chuyển trong khi giá trị do Cảm biến vị trí báo cáo lớn hơn (>) hoặc nhỏ hơn (<) giá trị ngưỡng. Trong ví dụ này, Robot VR sẽ điều hướng đến vị trí dương 500 milimét (mm) trên trục X. Robot VR sẽ lái khi vị trí trên trục X nằm trong khoảng từ 0 đến dương 499. Khi Cảm biến vị trí báo cáo rằng vị trí là 501 hoặc cao hơn, Robot VR sẽ dừng lái.
# Thêm mã dự án vào "main"
def main():
monitor_sensor(location.position)
drivetrain.turn_for(RIGHT, 90, DEGREES)
while location.position(X, MM) < 500:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()Lưu ý rằng giá trị được Cảm biến vị trí báo cáo không phải làmà chính xác là 500 milimét (mm). Giống như Cảm biến khoảng cách, các toán tử so sánh được sử dụng vì thời gian cần thiết để Robot VR lặp lại dự án và báo cáo giá trị.
- Kéo hoặc nhập lệnh stop ra ngoài vòng lặp while. Dự án của bạn sẽ trông như thế này:
# Thêm mã dự án vào "main"
def main():
drivetrain.turn_for(RIGHT, 90, DEGREES)
while location.position(X, MM) < -100:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()- Mở Cửa sổ Sân chơinếu nó chưa mở. Đảm bảo rằng Sân chơi bản đồ lưới sốmở ra và chạy dự án.
- Xem Robot VR lái đến số '5' trên Sân chơi bản đồ lưới số .

- Trong dự án này, Robot VR sẽ di chuyển đến số '5' trên Sân chơi bản đồ lưới số . Vòng lặp while được sử dụng để Robot VR tiếp tục tiến về phía trước trong khi giá trị X bằng trừ so với giá trị X của tọa độ chứa số được chỉ định.
- Khi giá trị X lớn hơn -100, dự án sẽ chuyển sang lệnh tiếp theo bên ngoài vòng lặp, đó là lệnh stop. Vì giá trị X của số '5' là -100, nên Robot VR sẽ dừng lái khi giá trị X lớn hơn -100.

Để bạn biết
Lưu ý rằng giá trị do Cảm biến vị trí báo cáo có thể không chính xác làmà là-100 milimét (mm). Giống như Cảm biến khoảng cách, các toán tử so sánh được sử dụng vì thời gian cần thiết để Robot VR lặp lại dự án và báo cáo giá trị.
Trong VEXcode VR Python, bạn có thể sử dụng toán tử so sánh lớn hơnhoặc bằng(>=) hoặc nhỏ hơn hoặc bằng(<=) trong dự án của mình để có thêm độ chính xác trong chuyển động.
# Thêm mã dự án vào "main"
def main():
drivetrain.turn_for(RIGHT, 90, DEGREES)
while location.position(X, MM) <= -100:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()Tùy thuộc vào tốc độ của Robot VR và tốc độ lặp lại của dự án qua vòng lặp, bạn có thể thấy rằng Robot VR có thể dừng lại gần giá trị ngưỡng hơn khi hoặc bằng (<= hoặc >=) được thêm vào toán tử.
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.