Skip to main content

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. Ô chọn Sân chơi Disk Mover có ghi Disk Mover ở phía dưới.
  • Đặt tên cho dự án Unit8Lesson3.Thanh công cụ VEXcode VR với hộp tên dự án được tô sáng. Tên dự án là Đơn vị 8 Bài 3.

     

  • 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.

    Nhìn từ phía sau Sân chơi Di chuyển đĩa, cho thấy Robot VR ở vị trí bắt đầu và ba đĩa màu xanh xếp thành một hàng trải dài theo chiều dài của Sân chơi ở phía trước robot.
  • 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 drivewait đượ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.

    Góc nhìn từ bên hông của Robot VR trên Sân chơi tại vị trí đĩa màu xanh đầu tiên, với Đĩa được gắn vào Nam châm điệ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.
Sơ đồ luồng dự án ở trên, minh họa luồng bằng vòng lặp while. Hai phần đầu tiên của dự án được hiển thị ở bên trái và ở bên phải, phần đầu tiên có mũi tên tuần hoàn màu đỏ minh họa rằng mặc dù mắt nhìn xuống không phát hiện ra vật thể, nhưng rô-bốt sẽ tiến về phía trước vì điều kiện báo cáo là sai. Tiếp theo, mũi tên màu xanh lá cây hướng xuống bên cạnh lệnh dừng cho biết khi mắt nhìn xuống phát hiện ra vật thể, dự án sẽ thoát khỏi vòng lặp và robot sẽ dừng lại. Tiếp theo, mũi tên màu xanh lá cây hướng xuống thứ hai sẽ thẳng hàng với phần thứ hai của dự án, cho biết nam châm điện sẽ được cấp điệ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.