Skip to main content

수업 3: 센서와 전자석을 사용하여 디스크 집기

전자석을 이용한 다운 아이 센서 사용

이 수업에서는 보고된 센서 피드백을 사용하여 수업 2와 동일한 과제를 해결합니다. VR 로봇은 첫 번째 파란색 디스크를 집어 파란색 골대로 옮깁니다.

  • 새 프로젝트를 시작하고 메시지가 표시되면 Disk Mover Playground 선택합니다. 디스크 무버 플레이그라운드 선택 타일, 하단에 디스크 무버라고 적혀 있습니다.
  • 프로젝트 이름을 Unit8Lesson3로 지정하세요.프로젝트 이름 상자가 강조 표시된 VEXcode VR 도구 모음입니다. 프로젝트 이름은 Unit 8 Lesson 3입니다.

     

  • 프로젝트에 4개의 코멘트를 추가하세요. VR 로봇이 첫 번째 디스크까지 운전하고, 디스크를 집어 들고, 파란색 목표로 돌려놓는 데 필요한 각 단계에 대한 주석을 추가하세요.

    def main():
        # 1. 첫 번째 디스크
    
        # 2로 이동합니다. 첫 번째 디스크
    
        # 3을 집어 올리세요. 목표를 향해 달려라
    
        # 4. 목표에 디스크를 떨어뜨립니다.

     

  • 첫 번째 주석 아래의 작업 공간으로not 조건과 함께 while 루프를 끌어다 놓거나 입력하면 프로젝트가 다음과 같이 표시됩니다.

    def main():
        #1. 조건이 충족되지 않는 한 첫 번째 디스크
        으로 이동합니다:
            wait(5, MSEC)
    
        # 2. 첫 번째 디스크
    
        # 3을 집어 올리세요. 목표를 향해 달려라
    
        # 4. 목표에 디스크를 떨어뜨립니다.
  • down_eye.near_object명령은 VR 로봇의 다운 아이 센서가 Disk Mover Playground에서 색상 디스크를 감지하면 True를 보고합니다. 디스크는 놀이터 바닥에 있으므로 전면 눈 센서가 감지할 수 없으므로, 하단 눈 센서가 디스크를 감지합니다. while 루프의 조건으로 down_eye.near_object 명령을 드래그하거나 입력하면 프로젝트의 첫 번째 섹션이 다음과 같이 표시됩니다.

    def main():
        #1. down_eye.near_object()가 실행되지 않는 동안 첫 번째 디스크
        으로 이동합니다:
            wait(5, MSEC)
  • VR 로봇이 객체를 감지하지 못할 때 while루프 내부의 명령이 실행됩니다. 디스크 중 하나에 도달하려면 VR 로봇이 디스크가 감지될 때까지 앞으로 주행해야 합니다.

    디스크 무버 놀이터의 후면에서 볼 수 있는 장면으로, 시작 위치에 있는 VR 로봇과 로봇 앞 놀이터의 길이만큼 늘어선 세 개의 파란색 디스크가 보입니다.
  • while 루프 안에 drive 명령을 끌어다 놓거나 입력하면 프로젝트의 첫 번째 주석 섹션이 다음과 같이 표시됩니다.

    	#1. down_eye.near_object()가 실행되지 않는 동안 첫 번째 디스크
        으로 이동합니다.
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
  • 디스크가 감지되면 VR 로봇은 운전을 멈추고 디스크를 집어 올려야 합니다. while루프 밖으로 stop 명령을 끌어다 놓거나 입력하면 프로젝트의 첫 번째 주석 섹션이 다음과 같이 표시됩니다.

    	#1. down_eye.near_object()가 아닌 동안 첫 번째 디스크
        으로 이동합니다.
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
        drivetrain.stop()
  • drivewait 명령은 while루프 헤더 아래에 들여쓰기되어 있는데, 이는 명령이 루프 내부에 있음을 의미합니다. 회색 선은 어떤 명령이 올바르게 들여쓰기 되어 있고 루프 안에 있는지 나타내는 데에도 도움이 됩니다. stop 명령은 루프 헤더와 일치하며, 즉 stop 명령은 루프 밖에 있습니다. 명령어가 올바르게 들여쓰기 되었는지 확인하세요. 그렇지 않으면 프로젝트가 예상대로 실행되지 않을 수 있습니다. 
  • 이제 VR 로봇이 전자석으로 디스크를 집어 올리도록 지시합니다. 두 번째 주석 뒤에 energize명령을 드래그하거나 입력하면 프로젝트의 두 번째 섹션이 다음과 같이 표시됩니다.

    	#2. 첫 번째 디스크
        magnet.energize(BOOST)를 집어 올리세요.
  • 놀이터 창이 아직 열려 있지 않으면 엽니다. Disk Mover Playground이 열리고 프로젝트를 실행하세요.
  • VR 로봇은 다운 아이 센서에 의해 첫 번째 파란색 디스크가 감지될 때까지 앞으로 주행하고, 감지되면 주행을 멈추고 전자석에 전원을 공급하여 디스크를 집어 올립니다.

    놀이터의 첫 번째 파란색 디스크 위치에 있는 VR 로봇의 측면도. 디스크가 전자석에 부착되어 있습니다.

첫 번째 디스크를 픽업하기 위한 프로젝트 흐름

not 조건을 갖는 while 루프가 센서 피드백을 사용하여 첫 번째 디스크를 성공적으로 집어 올리는 방식에 주목하세요.

  • VR 로봇.
  • VR 로봇의 다운 아이 센서가 물체를 감지하면 프로젝트는 while루프 외부의 다음 명령으로 이동하고 구동을 멈춥니다.
  • 프로젝트는 계속 진행 중이므로 VR 로봇 은 전자석에 에너지를 공급하여 디스크를 집어 올립니다.
위 프로젝트의 프로젝트 흐름도는 while 루프의 흐름을 보여줍니다. 프로젝트의 처음 두 섹션은 왼쪽에 표시되어 있고, 오른쪽에는 첫 번째 섹션에 빨간색 순환 화살표가 있는데, 이는 아래쪽 눈이 물체를 감지하지 못하더라도 로봇이 전진한다는 것을 보여줍니다. 조건이 거짓으로 보고되기 때문입니다. 다음으로 정지 명령 옆에 있는 아래쪽 녹색 화살표는 아래쪽 눈이 객체를 감지하면 프로젝트가 루프를 종료하고 로봇이 정지한다는 것을 나타냅니다. 다음으로 두 번째 아래쪽 녹색 화살표가 프로젝트의 두 번째 섹션과 일치하여 전자석에 전원이 공급된다는 것을 나타냅니다.

이 강의의 나머지 부분을 계속하려면 다음 버튼을 선택하세요.