Bài 3: Sử dụng cảm biến và nam châm điện để nhặt đĩa
Sử dụng cảm biến mắt xuống với nam châm điện
Bài học này sẽ sử dụng phản hồi cảm biến được báo cáo để giải quyết cùng một thách thức như Bài học 2. Robot VR sẽ nhặt và di chuyển đĩa màu xanh đầu tiên vào mục tiêu màu xanh.
- Bắt đầu một dự án mới và chọn Disk Mover Playground khi được nhắc.

-
Đặt tên cho dự án Unit8Lesson3.

-
Thêm bốn bình luận vào dự án. Thêm bình luận cho từng bước cần thiết để Robot VR di chuyển đến đĩa đầu tiên, nhặt đĩa đó lên và đưa đĩa đó trở về mục tiêu màu xanh.
def main(): # 1. Lái đến đĩa đầu tiên # 2. Nhặt đĩa đầu tiên # 3. Tiến tới mục tiêu # 4. Thả đĩa vào mục tiêu -
Kéo hoặc nhập vòng lặp while với điều kiệnkhông phải vào không gian làm việc bên dưới bình luận đầu tiên để dự án của bạn trông như thế này:
def main(): #1. Lái đến đĩa đầu tiên khi không có điều kiện: wait(5, MSEC) # 2. Nhặt đĩa đầu tiên # 3. Tiến tới mục tiêu # 4. Thả đĩa vào mục tiêu -
Lệnh down_eye.near_objectbáo cáo là Đúng khi Cảm biến mắt xuống trên Robot VR phát hiện một đĩa màu trên Sân chơi di chuyển đĩa . Các đĩa nằm trên sàn Sân chơi và không thể được Cảm biến mắt trước phát hiện, do đó Cảm biến mắt dưới sẽ phát hiện các đĩa. Kéo hoặc nhập lệnh down_eye.near_object làm điều kiện của vòng lặp while , do đó phần đầu tiên của dự án của bạn sẽ trông như thế này:
def main(): #1. Lái đến đĩa đầu tiên trong khi không down_eye.near_object(): wait(5, MSEC) -
Các lệnh bên trong vòng lặp whilesẽ chạy khi Robot VR KHÔNG phát hiện ra vật thể. Để tiếp cận một trong các đĩa, VR Robot sẽ cần phải di chuyển về phía trước cho đến khi phát hiện ra đĩa.

-
Kéo hoặc nhập lệnh drive vào vòng lặp while để phần chú thích đầu tiên của dự án trông như thế này:
#1. Lái đến đĩa đầu tiên khi không down_eye.near_object(): drivetrain.drive(FORWARD) wait(5, MSEC) -
Khi phát hiện thấy đĩa, VR Robot sẽ phải dừng di chuyển để nhặt đĩa lên. Kéo hoặc nhập lệnh stop ra ngoài vòng lặp whileđể phần bình luận đầu tiên của dự án trông như thế này:
#1. Lái đến đĩa đầu tiên khi không down_eye.near_object(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - Lưu ý rằng các lệnh drive và wait được thụt vào dưới tiêu đề vòng lặp while, nghĩa là các lệnh nằm bên trong vòng lặp. Đường màu xám cũng có thể giúp chỉ ra lệnh nào được thụt lề đúng cách và nằm trong vòng lặp. Lệnh stop nằm trong tiêu đề vòng lặp, nghĩa là lệnh stop nằm ngoài vòng lặp. Đảm bảo các lệnh được thụt lề đúng cách, nếu không dự án có thể không chạy như mong đợi.
-
Bây giờ, hãy hướng dẫn Robot VR nhấc đĩa bằng Nam châm điện bằng cách kéo hoặc nhập lệnh energizesau bình luận thứ hai, để phần thứ hai của dự án trông như thế này:
# 2. Nhặt đĩa đầu tiên nam châm.kích hoạt(BOOST) - Mở Cửa sổ Sân chơi nếu nó chưa mở. Hãy đảm bảoDisk Mover Playgroundmở ra và chạy dự án.
-
Robot VR sẽ di chuyển về phía trước cho đến khi cảm biến mắt xuống phát hiện ra đĩa màu xanh đầu tiên, dừng di chuyển và kích hoạt nam châm điện để nhấc đĩa lên.

Luồng dự án để lấy đĩa đầu tiên
Lưu ý cách vòng lặp while với điều kiện không phải sử dụng phản hồi cảm biến để lấy thành công đĩa đầu tiên:
- Robot VR di chuyển về phía trước khi Cảmmắtkhông phát.
- Khi Cảm biến mắt nhìn xuống trên Robot VR phát hiện ra vật thể, dự án sẽ chuyển sang lệnh tiếp theo bên ngoài vòng lặp whilevà dừng lái.
- Dự án vẫn tiếp tục, do đó VR Robot cung cấp năng lượng choNam châm điện để nhấc đĩa lê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.