Skip to main content

Bài 2: Sử dụng khối so sánh và lái xe cho đến khi gần

Trong Bài học này, bạn sẽ tạo một dự án điều hướng Robot VR đến chữ 'A' bằng Cảm biến khoảng cách với khối báo cáo Boolean <Less than>. 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 số '1'.

Góc nhìn từ trên xuống của mê cung trên tường với mục tiêu chữ A được đánh dấu trong hộp màu đỏ, gần vị trí bắt đầu của rô-bốt VR.

Kết quả học tập

  • Xác định khối <Greater than> là khối Boolean báo cáo xem giá trị đầu tiên có lớn hơn giá trị thứ hai hay không.
  • Xác định khối <Less than> là khối Boolean báo cáo xem giá trị đầu tiên có nhỏ hơn giá trị thứ hai hay không.
  • Xác định khối <Greater than> hoặc <Less than> báo cáo giá trị ĐÚNG hoặc SAI trong khối [Chờ cho đến].
  • Mô tả cách tạo một dự án có Robot VR di chuyển về phía trước cho đến khi giá trị của Cảm biến khoảng cách nhỏ hơn giá trị ngưỡng là 50 milimét (mm).

Đặ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 Unit5Lesson2. Hãy nhớ rằng bạn có thể sử dụng khối VEXcode, khối Switch hoặc kết hợp cả hai loại khối này cho dự án của mình. 
Thanh công cụ VEXcode VR với nút 'Tên dự án' được tô sáng trong hộp màu đỏ, bên trái nút Chọn sân chơi. Tên dự án được đặt là Đơn vị 5 Bài 2.

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

  • Kéo khối [Ổ đĩa] vào không gian làm việc.
    Dự án khối VEXcode VR bắt đầu bằng khối When Started với khối Drive Forward bên dưới. Có một hộp màu đỏ làm nổi bật khối Drive Forward.
  • Đính kèm khối [Chờ cho đến] bên dưới khối [Ổ đĩa].
    Các khối VEXcode VR vẫn được chiếu như trước, nhưng bây giờ có khối Wait Until ở phía dưới được đánh dấu bằng hộp màu đỏ. Toàn bộ dự án có nội dung là Khi bắt đầu, Tiến về phía trước và Đợi cho đến khi. Tham số của khối Wait Until trố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. Bạn sẽ sử dụng khối (Khoảng cách từ) bên trong khối Boolean <Less than> trong dự án này.

<Less than>, <Greater than>và <Equal to> là các khối so sánh - chúng so sánh các giá trị. Chúng cũng là các khối báo cáo Boolean báo cáo giá trị ĐÚNG khi điều kiện so sánh được đáp ứng và SAI khi điều kiện là KHÔNG phải.

  • <Less than> báo cáo là ĐÚNG khi giá trị đầu tiên nhỏ hơn giá trị thứ hai và SAI khi giá trị đầu tiên lớn hơn hoặc bằng giá trị thứ hai.
    Khối boolean nhỏ hơn VEXcode VR, đọc là '25 nhỏ hơn 50'.
  • <Greater than> báo cáo là ĐÚNG khi giá trị đầu tiên lớn hơn giá trị thứ hai và SAI khi giá trị đầu tiên nhỏ hơn hoặc bằng giá trị thứ hai.
    Khối boolean lớn hơn VEXcode VR, đọc là '100 lớn hơn 50'.
  • <Equal to> báo cáo là ĐÚNG khi hai giá trị hoàn toàn giống nhau và SAI khi chúng không giống nhau.
    VEXcode VR Bằng khối boolean, đọc '50 bằng 50'.

Các khối so sánh có thể chấp nhận số thập phân, số nguyên hoặc khối số. Chúng cũng chấp nhận các khối phóng viên tròn, chẳng hạn như khối (Khoảng cách từ). Khối (Khoảng cách từ) có thể nằm trong khối so sánh khi sử dụng Cảm biến khoảng cách trong một dự án.

Trong ví dụ này, khối sẽ báo cáo ĐÚNG khi khoảng cách từ vật thể đến Cảm biến khoảng cách trên Robot VR nhỏ hơn 50 milimét (mm).

Khối boolean VEXcode VR Nhỏ hơn có khối Khoảng cách từ bên trong, ghi là 'Khoảng cách phía trước tính bằng milimét nhỏ hơn 50'.

  • Kéo khối Boolean <Less than> vào khối [Chờ cho đến].
  • Đặt khối tròn (Khoảng cách từ) bên trong khối báo cáo Boolean
    Dự án VEXcode VR Blocks kết hợp các bước trước đó. Toàn bộ dự án hiện có nội dung là Khi bắt đầu, lái về phía trước và đợi cho đến khi khoảng cách phía trước tính bằng milimét nhỏ hơn 50. Một hộp màu đỏ làm nổi bật khối boolean Nhỏ hơn.
  • Khối [Chờ cho đến khi] sẽ giữ cho Robot VR di chuyển về phía trước cho đến khi điều kiện được đáp ứng và khoảng cách được báo cáo là nhỏ hơn 50 milimét (mm). Sau đó, dự án sẽ chuyển sang khối tiếp theo trong ngăn xếp, đó là khối [Dừng lái xe].
    Sơ đồ trực quan hóa luồng logic trong dự án VEXcode VR Blocks. Dự án bắt đầu bằng việc lái xe về phía trước và giữ lệnh đó cho đến khi khoảng cách của cảm biến Khoảng cách phía trước tính bằng milimét nhỏ hơn 50, sau đó khối Dừng lái xe sẽ kết thúc lệnh Lái xe về phía trước.
  • Cần có khối [Dừng lái] sau khối [Chờ cho đến khi] vì Robot VR sẽ tiếp tục lái cho đến khi được lệnh dừng lại. Thêm khối [Dừng lái xe] vào dự án.
    Các khối VEXcode VR được xây dựng từ trước với khối Dừng lái xe được thêm vào sau khối Chờ cho đến khi. Toàn bộ dự án hiện có nội dung là Khi bắt đầu lái xe về phía trước và đợi cho đến khi khoảng cách phía trước tính bằng milimét nhỏ hơn 50, sau đó dừng lái xe.
  • Khởi chạy Sân chơi mê cung tường nếu nó chưa mở và chạy dự án.
  • Theo dõi Robot VR di chuyển từ đầu Mê cung tường và dừng lại khi Cảm biến khoảng cách báo cáo rằng nó cách tường chưa đến 50 milimét (mm).
    Góc nhìn từ trên xuống của mê cung tường với mục tiêu chữ A gần vị trí bắt đầu của robot VR. Robot VR hiện đã có những bước tiến triển nhờ vào dự án khối.
  • Sử dụng khối <Less than> với khối (Khoảng cách từ) bên trong khối [Chờ cho đến khi] để hướng dẫn Robot VR đợi cho đến khi cách tường ít hơn 50 milimét (mm) trước khi dừng lại.
  • Đặt lại Sân chơi để di chuyển Robot VR trở lại vị trí bắt đầu.

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

Trong bài học này, bạn đã tìm hiểu về các khối Boolean <Greater than>, <Less than>và <Equal to>. Hình ảnh bên dưới hiển thị các khối so sánh Switch Boolean. Để khối Boolean Switch hoạt động như mong muốn, các hàm Switch Python phải được nhập với chính tả và dấu câu đúng. 

Lưu ý rằng khối Switch <Equal to> sử dụng hai dấu bằng (==). Nguyên nhân là trong Python, một dấu bằng (=) biểu thị phép gán một giá trị (ví dụ: x = 10), trong khi hai dấu bằng (==) kiểm tra xem hai giá trị có bằng nhau hay không. Hãy chắc chắn sử dụng hai dấu bằng khi sử dụng khối Switch <Equal to>. 
So sánh ba khối boolean VR của VEXcode và các khối chuyển đổi tương ứng của chúng. Khối Nhỏ hơn được viết bằng Python là '25 < 50', khối Lớn hơn được viết bằng Python là '100 > 50' và khối Bằng với được viết bằng Python là '50 == 50'. Một hộp màu đỏ làm nổi bật hai dấu bằng trong ví dụ cuối cùng, minh họa cách so sánh hai giá trị bằng nhau trong Python.

Bạn cũng đã thấy một dự án ví dụ trong đó VR Robot sẽ di chuyển về phía trước cho đến khi khoảng cách được báo cáo là nhỏ hơn 50 milimét (mm) so với một vật thể. Sau đó, Robot VR sẽ dừng lại. Dự án bên phải hiển thị các lệnh Python tương ứng bên trong khối Switch. Lệnhwhile not front_distance.get_distance(MM) < 50yêu cầu robot kiểm tra xem khoảng cách được báo cáo có nhỏ hơn 50 MM so với vật thể hay không.

Dòng mã thụt lề tiếp theo,wait(5, MSEC),tạm dừng mã trong 5 mili giây. Lệnh kiểm tra xem khoảng cách được báo cáo có nhỏ hơn 50 MM so với đối tượng hay không sẽ đợi 5 MSEC trước khi kiểm tra lại điều kiện. 

So sánh dự án VEXcode VR của chúng tôi, với khối Wait Until được chuyển đổi thành khối chuyển đổi ở bên phải. Khối chuyển đổi mới được đọc bằng Python là 'while not front_distance.get_distance(MM) < 50: wait(5, msec)'.

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.