Skip to main content

자동화 챌린지 - 파이썬

지역 지정을 포함한 Automed Challenge의 평면도는 다음과 같습니다: 약국, 방 1, 방 2, 방 3, 시작 및 엘리베이터. 방 2와 방 3은 2층에 있고, 다른 모든 방은 1층에 있습니다. 측정값은 전체 평면도가 2m x 1.8m 직사각형으로 표시되어 있습니다.
치수가 있는 자동화된 챌린지 병원 레이아웃

자동 챌린지

이 챌린지에서는 로봇이 여러 병실에 있는 환자에게 약물을 전달하기 때문에 병원을 탐색하도록 로봇을 프로그래밍해야 합니다.

교사 팁 아이콘 교사 팁

병원에 대한 배경 스토리를 만들어 참여도를 높이세요! 이 병원은 어떤 유형의 병원이고, 어떤 유형의 환자를 치료합니까?

챌린지 규칙

  • 로봇은 시작 구역에서 시작하고 종료해야 합니다.

  • 작업을 완료하려면 전체 로봇이 약국, 엘리베이터 및 환자실 내부에 있어야 하며 다음 시간을 기다려야 합니다.

    • 약국: 약을 수령할 때까지 최소 5초 이상 기다리십시오.

    • 엘리베이터: 다른 층에 도착하려면 5초 이상 기다리세요.

    • 환자실: 약을 떨어뜨릴 때까지 최소 3초 이상 기다리십시오.

  • 로봇은 벽에 닿거나 벽을 넘어서는 안 됩니다.

  • 로봇은 먼저 약국을 방문하여 환자 병실을 위한 약을 픽업해야 합니다.

  • 로봇은 약물을 투약하기 위해 (특별한 순서 없이) 각 환자실을 방문해야 합니다.

  • 즐거운 시간 보내세요!

교사 도구 상자 아이콘 교사 도구 상자 - 솔루션

학생을 평가하기 위한 프로그래밍 평가 기준은 여기에서 확인할 수 있습니다(Google / .docx / .pdf).

아래에서 VEXcode V5 Python 샘플 솔루션을 확인하세요. 

# 라이브러리 가져오기
from vex import *

# 프로젝트 코드 시작

# 약국으로 이동
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 1350, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 600, MM)
wait(6, SECONDS)

# 방 1로 이동
drivetrain.drive_for(REVERSE, 600, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 600, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(전진, 600, MM)
wait(6, SECONDS)

# 엘리베이터로 이동
drivetrain.drive_for(후진, 600, MM)
drivetrain.turn_for(우회전, 90, 도)
drivetrain.drive_for(전진, 600, MM)
drivetrain.turn_for(좌회전, 90, 도)
drivetrain.drive_for(전진, 600, MM)
wait(6, SECONDS)

# 2호실로 이동
drivetrain.drive_for(후진, 800, MM)
drivetrain.turn_for(좌회전, 90, 도)
drivetrain.drive_for(전진, 1000, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 800, MM)
wait(5, SECONDS)

# 3호실로 이동
drivetrain.drive_for(REVERSE, 800, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 600, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 800, MM)
wait(5, SECONDS)

# 엘리베이터로 이동
drivetrain.drive_for(REVERSE, 800, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 750, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 750, MM)
wait(6, SECONDS)

# 시작 구역으로 돌아가기
drivetrain.drive_for(REVERSE, 1500, MM)