Skip to main content

사용자 인터페이스 챌린지 - 파이썬

V5 Brain Screen은 맨 위에 UI Challenge라고 적혀 있으며, 4개의 사분면으로 나뉩니다. 왼쪽 위는 밝은 녹색, 오른쪽 위는 밝은 분홍색, 오른쪽 아래는 밝은 파란색, 왼쪽 아래는 주황색입니다.

사용자 인터페이스 과제

사용자 인터페이스 챌린지에서는 사용자가 Brain의 화면을 눌러 팔과 발톱 모터를 제어할 수 있도록 Clawbot을 프로그래밍합니다. 그런 다음 화면의 4개 버튼을 사용하여 다양한 10가지 물체를 집어 올려 다시 놓습니다. 이 챌린지에서는 클로봇이 운전하거나 회전할 필요가 없습니다. 물건을 집어 올려 테이블이나 바닥의 같은 자리에 다시 놓습니다.

규칙:

  • 4개의 버튼은 각각 4가지 동작 중 하나만 수행해야 합니다. 즉, 발톱을 펼치거나, 발톱을 닫거나, 팔을 들어올리거나, 팔을 내리는 것입니다.
  • 컨트롤러를 사용하는 것은 허용되지 않습니다.
  • 각 클로봇은 1분 안에 최대한 많은 물건을 들어올리고 다시 놓아야 하며, 물건을 떨어뜨리지 않아야 합니다. 한 번에 한 가지 물건씩 들어올리고 다시 올려놓는 것이 좋습니다.
    • 1분 라운드는 1분 표시에서 종료됩니다. 물건을 떨어뜨리면또는됩니다. 라운드가 시작된 지 몇 초밖에 되지 않았더라도 마찬가지입니다. 물건을 떨어뜨리면 해당 팀은 라운드의 전체 1분 동안 실격 처리되지만, 떨어뜨리기 전에 획득한 점수는 계산됩니다.
  • 1분 라운드가 끝나기 전에 제공된 물건을 모두 들어올리면, 시간이 종료될 때까지 물건을 재사용할 수 있습니다.
  • 물체를 테이블 위에 다시 올려놓기 전에 팔의 모터보다 더 높이 들어 올려야 합니다.
  • 성공적으로 물건을 잡고 들어올린 다음 내려놓고 다시 제자리에 놓으면 1점이 됩니다.
  • 라운드 사이에 역할을 변경할 수 있지만, 클로봇당 한 명의 사용자만 각 라운드에 참여할 수 있습니다.
  • 모든 라운드가 끝난 후 가장 많은 점수를 얻은 그룹이 승리합니다!

3개의 열이 있는 빈 데이터 테이블입니다. 왼쪽에서 오른쪽으로 열의 제목은 다음과 같습니다. 라운드 번호, 클로봇 ID, 성공적으로 들어올려 교체한 품목 수.

챌린지에서의 역할:

  • 각 라운드 동안 물건을 들어올리는 사용자는 한 명(리프터)만 있어야 하지만 그룹은 라운드 사이에 사용자를 바꿀 수 있습니다.
  • 각 클로봇이 성공적으로 들어올릴 수 있는 물건의 개수를 계산하는점수 기록원이 지정되어야 합니다. 성공적으로 교체된 각 개체는 1점의 가치가 있습니다. 물체를 떨어뜨리면 클로봇의 턴이 끝납니다. 여러 라운드를 플레이할 수 있습니다. 여기에는 점수표가 포함되어 있지만, 추가 그룹과 라운드에 대해 행을 추가할 수 있습니다. 각 그룹은 자체 채점표를 사용할 수도 있고, 모두가 같은 채점표를 사용해 기록할 수도 있습니다. 여러 그룹이 동일한 점수표를 사용하는 경우 두 번째 열에 각 그룹의 Clawbot ID 또는 그룹 이름을 적습니다. 또한, 점수 기록원은 사용자 인터페이스 챌린지가 끝날 때 각 라운드의 점수를 합산하여 총점을 매겨야 합니다.
  • 테이블에서 물건을 옮겨 담는 일을 맡은 사람이 있어야 합니다:스위처. 클로봇은 회전하거나 주행하지 않으므로 들어올린 물체는 매번 시도할 때마다 제거하고 새 물체로 교체해야 합니다.
  • 시간을 기록하는 사람이 지정되어야 합니다.시간 관리자. 각 라운드는 1분입니다.
  • 교사는 이 과제를 시작하기 전에 승인된 물건을 제공해야 합니다.

교사 팁 아이콘 교사 팁

  • 학생들에게 클로봇의 화면만 만질 수 있다는 점을 상기시켜 주세요.
  • 떨어뜨려도 안전한 물건만 제공하세요. 빈 캔이나 물병, VEX 큐브, VEX 키트에서 사용하지 않은 부품, 또는 떨어지거나 튀어올라도 영구적으로 손상되지 않는 물건입니다. 
  • 관찰하는 학생들에게 각 클로봇의 화면이 어떻게 생겼는지 보여주세요. 직사각형은 동일해야 하지만, 각 클로봇의 색상은 다를 가능성이 큽니다.
  • 도전 중이나 도전 후에 가장 좋은 색상 선택에 대한 학생들의 의견을 토론하세요.

교사 도구 상자 아이콘 교사 도구 상자

아래에서 이 과제에 대한 프로그래밍 솔루션 예시와 프로그래밍 기준, 개인 엔지니어링 노트북 기준, 팀 엔지니어링 노트북 기준을 확인하실 수 있습니다.

  • 프로그래밍 솔루션 예시
# 프로젝트 코드 시작
screen_buttons = Event()

def has_screen_buttons():
    brain.screen.set_fill_color(Color.GREEN)
    brain.screen.draw_rectangle(0, 0, 240, 120)
    brain.screen.set_fill_color(Color.PURPLE)
    brain.screen.draw_rectangle(240, 0, 480, 120)
    brain.screen.set_fill_color(Color.ORANGE)
    brain.screen.draw_rectangle(0, 120, 240, 240)
    brain.screen.set_fill_color(Color.CYAN)
    brain.screen.draw_rectangle(240, 120, 480, 240)
    wait(1, SECONDS)

screen_buttons(has_screen_buttons)

while True:
    screen_buttons.broadcast()

    brain.screen.pressing()인 경우:

        brain.screen.x_position()인 경우 < 240:

            brain.screen.y_position()인 경우 < 120:
                claw_motor.spin(전진)
                brain.screen.pressing()인 경우:
                    wait(5, MSEC)

            else:
                claw_motor.spin(역방향)
                brain.screen.pressing()인 경우:
                    wait(5, MSEC)

        else:
            brain.screen.y_position()인 경우 < 120:
                arm_motor.spin(전진)
                brain.screen.pressing()인 경우:
                    wait(5, MSEC) 
            
            else:
                arm_motor.spin(역방향)
                brain.screen.pressing()인 경우:
                    wait(5, MSEC) 

       claw_motor.stop()
       arm_motor.stop()
       
    wait(5, MSEC)