Skip to main content

조건문을 사용한 프로그래밍 - Python

교사 도구 상자 아이콘 교사 도구 상자 - 이 활동의 목적

이 활동에서는 학생들에게 while and if 문장을 사용하여 화면을 누르지 않는 한 로봇이 앞으로 나아가도록 하는 방법을 소개합니다.

  • 이 활동에서는 학생들에게 조건문과 화면을 누르지 않으면 로봇이 앞으로 나아가도록 하는 명령을 소개합니다.
  • 이 활동에서 사용된 ifif-else 문이나 기타 문에 대한 자세한 내용은 VEXcode V5 내의 도움말 정보를 참조하세요. 이 기본 제공 도움말 도구에 대한 자세한 내용은 Python의 도움말에 대한 문서를 확인하세요.

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

이 섹션의 교수 전략에 대한 제안을 보려면 '해야 할 일 또는 하지 말아야 할 일 진행 가이드'의 전달 컬럼을 검토하세요! (Google 문서 / .docx / .pdf)

Clawbot은 결정을 내릴 준비가 되었습니다!

이 탐색을 통해if-else문을 사용하여 멋진 프로젝트를 만들 수 있는 도구를 얻을 수 있습니다.

  • 이 탐색에 사용될 VEXcode V5 Python 명령어: 
    • driveetrain.drive_for (앞으로)
    • brain.screen.pressing ()
    • drivingetrain.stop ()
    • 조건이 있는 경우:
    • 기타:
    • 참인 동안:  
    • wait (5, SECONDS)

VEXcode V5 내부의 도움말 정보 사용하여 Python 명령에 대해 알아볼 수 있습니다.

명령용 드라이브가 있는 VEXcode V5가 왼쪽의 작업 공간에 입력되고 오른쪽에 도움말 정보가 열립니다. 도움말은 명령의 정의와 사용 방법에 대한 정보를 보여줍니다.

필요한 하드웨어, 엔지니어링 노트북 및 VEXcode V5가 준비되어 있는지 확인하십시오.

필요한 재료:
수량 필요한 재료
1

VEX V5 클래스룸 스타터 키트 (최신 펌웨어 포함)

1

VEXcode V5 (최신 버전, Windows, macOS)

1

엔지니어링 노트

1

Clawbot (Drivetrain 2-motor, No Gyro) 템플릿

교사 팁 아이콘 교사 팁

학생이 VEXcode V5를 처음 사용하는 경우, 탐색하는 동안 언제든지 튜토리얼을 참조할 수 있습니다. 튜토리얼은 도구 모음에 있습니다.

빨간색 상자로 강조 표시된 VEXcode V5 도구 모음에 대한 튜토리얼입니다. 도구 모음에는 왼쪽부터 오른쪽으로 V5 로고, 지구본 아이콘, 파일, 튜토리얼이 표시됩니다. 튜토리얼 오른쪽에는 추가 아이콘과 기능이 있습니다.

1단계: 조건문에 대한 이해부터 시작해 보겠습니다. 

조건문을 사용하여 프로그래밍을 시작하기 전에if-else명령문을 설명하는 문서를 읽어보세요. 해당 문서는 여기에서 찾을 수 있습니다(Google Doc / .docx.pdf).
Screenshot of the linked article titled Using If else statements in VEXcode V5 Python.
if-else 에서 사용할 연산자 목록은
설명하는 문서를 읽어보세요. 이 기사는 여기에서 찾을 수 있습니다 (Google 문서/.docx/.pdf).

VEXcode V5 Python에서 부울 사용 이라는 제목의 링크된 문서의 스크린샷.

2단계: 조건문을 사용하여 프로그래밍을 시작해 보겠습니다.

  • Clawbot (Drivetrain 2-motor, No Gyro) 템플릿 예시 프로젝트를 엽니다.

    템플릿 필터와 Clawbot Drivetrain 2 모터 자이로 없음 아이콘이 있는 VEXcode V5의 예제 프로젝트는 열어야 할 프로젝트를 나타내는 빨간색 상자로 강조 표시됩니다.

     

  • 아래에서 프로젝트를 빌드하세요.
# True: driveetrain.drive
(FORWARD)

    if brain.screen.pressing (): drivingetrain.stop ()
        while
        brain.screen.pressing (): wait (5, msec)
            wait (5,
    MSEC) 동안 프로젝트 코드 시작

엔지니어링 노트에서 다음을 수행합니다.

  • Clawbot이 수행하는 프로젝트에 대해 설명합니다. 정지 버튼을 만든다는 사실보다 더 많은 것을 설명해야 합니다. Clawbot이 어떤 지침을 따르는지 설명합니다.
  • 프로젝트가 수행하는 작업을 한 문장으로 요약하여 작성하세요.
  • Clawbot이 수행하는 프로젝트에 대한 예측이 올바른지 테스트합니다.
  • 프로젝트 이름을CreatingAStopButton으로 지정합니다. Clawbot에서 프로젝트를 다운로드하고 합니다.
    VEXcode V5 도구 모음의 프로젝트 이름 대화 상자에서 중지 버튼 생성 을 읽고 슬롯 1이 선택되었음을 표시합니다.
  • 프로젝트에 대한 설명을 확인하고 필요에 따라 수정할 수 있도록 메모를 추가합니다.

교사 도구 상자 아이콘 교사 도구 상자 - 답변

이 프로젝트에서는 로봇이 계속해서 앞으로 주행하지만 화면을 누르면 멈춥니다. "forever" 명령문(while True)을 사용하여주행하고 확인합니다. 화면을 누르고 있으면(참), 클로봇은 운전을 멈춥니다.Stop 또는 Drive 프로젝트의 명령 기능은 다음과 같습니다. if 문은 조건이 참인지 확인합니다. 즉, 화면이 눌렸는지 확인합니다. 그 아래에 들여쓰기된 블록에는 조건이 참이면 코드 블록이 실행된다고 라벨이 붙어 있습니다. 뇌 화면을 누르는 명령은 처리 속도를 제어한다고 라벨이 붙어 있습니다.

학생들은 while brain.screen.pressing():wait(5, MSEC) 명령이 사용되는 이유를 이해할 것으로 기대되지 않습니다. 로봇의 프로그램 흐름 속도 때문에 이러한 명령이 필요하다고 설명하세요. 만약 없었다면, 클로봇의 모터는 마치 사용자가 프로젝트를 반복하면서 화면을 계속해서 누르는 것처럼 동작했을 것입니다. 대신 이러한 지침은 프로그램 흐름을 중지하고 사용자가 화면을 누르는 것을 멈출 때까지 프로젝트가 다시 루프를 시작하지 않도록 합니다.

의사코드 줄은 다음과 같이 간단할 수 있습니다. 화면이 눌릴 때까지 앞으로 이동합니다.

학생들의 엔지니어링 노트북은 개별적으로(Google Doc / .docx / .pdf) 또는 팀으로(Google Doc / .docx / .pdf) 관리하고 점수를 매길 수 있습니다. 이전 링크에서는 각 접근 방식에 대해 다른 기준을 제공합니다. 교육 계획에 평가 기준이 포함될 때마다 활동을 시작하기 전에 학생들에게 평가 기준을 설명하거나 최소한 사본을 제공하는 것이 좋습니다.

3단계:whilewait()문 이해하기.

Brain의 화면을 누르면 프로젝트 흐름이 빠르게 움직이고 프로젝트는 다음 명령어인 drivetrain.stop()명령으로 이동합니다.

따라서, 프로젝트는 뇌의 화면이 해제될 때까지 로봇이 정지 상태를 유지하도록 지시하는 whilewait 명령이 필요합니다. 그렇지 않으면 forever명령문으로 인해 프로젝트가 다시 시작됩니다.

while brain.screen.pressing ():
	wait (5, MSEC)

whilewait명령은 프로젝트 흐름의 속도 때문에 필요합니다. 그들이 없다면 로봇이 응답할 시간을 갖기 전에 프로젝트는 다음 지침으로 이동할 것입니다.

4단계: 프로젝트 변경

다음 단계는if문을if-else 문으로 바꾸는 것입니다.

  • CreatingAStopButton새 프로젝트로 저장하고StopOrDrive.시작합니다.VEXcode V5 도구 모음의 프로젝트 이름 대화 상자에서 중지 또는 드라이브를 읽고 슬롯 1이 선택되었음을 표시합니다.
  • 프로젝트 저장에 도움이 필요하면 이 문서를 보세요.
  • 그런 다음 아래에 표시된StopOrDrive프로젝트를 빌드합니다.
# True
상태에서 프로젝트 코드 시작:
    if brain.screen.pressing ():
        drivingetrain.stop ()
        while brain.screen.pressing ():
            wait (5, MSEC)
    else:
        drivingetrain.drive (FORWARD)
    wait (5, MSEC)
  • Clawbot의 슬롯 2에StopOrDrive다운로드하세요.

VEXcode V5 도구 모음에서 슬롯 선택 창이 열리고 슬롯 2가 선택되어 빨간색 상자로 강조 표시됩니다.

  • 프로젝트를 다운로드하고 실행하는 데 도움이 하면 이 문서참조하세요.
  • 테스트CreatingAStopButton(슬롯 1)을 테스트한 다음 테스트StopOrDrive(슬롯 2)을 테스트하여 로봇의 동작에 차이가 있는지 확인합니다. 엔지니어링 노트의 차이점에 주목하세요.

교사 도구 상자 아이콘 교사 도구 상자 - 답변

로봇의 동작과 관련하여CreatingAStopButtonStopOrDrive프로젝트 사이에는 차이합니다.

학생들이if-else문장을 이해하는 데 더 많은 도움이 필요하다면 이 문서(Google Doc / .docx / .pdf)를 참조하세요.

두 프로젝트는 Clawbot이 동일한 방식으로 작동하도록 합니다. 유일한 차이점은 프로젝트에서 if-else 문을 사용한다는 것입니다.
if-else 문을 사용하면 다가올 활동의 화면에 추가 버튼을 추가할 수 있습니다.

학습 확장 아이콘 학습을 확장하세요

STEM 랩이 진행됨에 따라 학생들은 Clawbot의 화면을 사용자 인터페이스로 기능시키는 프로젝트를 개발하게 됩니다. 그에 대비하여 학생들에게 버튼처럼 기능하는 색깔 있는 사각형을 화면에 그리는 방법을 알아내도록 과제를 주세요. 현재는 화면의 어느 곳이든 누르는 것이 조건이므로, 버튼은 화면 전체를 차지해야 합니다. 학생들은 프로젝트가 시작될 때 버튼을 그리는 이벤트를 방송해야 합니다.

학생들에게 먼저 뇌의 화면이 좌표계로 어떻게 구성되어 있는지 배우도록 지시합니다. 사용자는 사용할 명령 내에서 매개변수를 설정하기 위해 이를 이해해야 합니다. 사용된 좌표는 열이나 행의 숫자가 아닌 픽셀의 숫자에 해당합니다. 화면의 레이아웃은 다음과 같습니다.V5 Brain 화면의 픽셀 그리드는 왼쪽에 12개의 번호가 매겨진 행을 표시하며, 맨 위 행은 행 1, 맨 아래 행은 행 12로 표시됩니다. 맨 위에는 48개의 번호가 매겨진 열이 있는데, 맨 왼쪽에는 열 1이, 맨 오른쪽에는 열 48이 표시되어 있습니다. 총 픽셀 크기는 너비 480px, 높이 240px입니다.

학생들은 엔지니어링 노트북에 이를 기록하면서 프로젝트에 대한 이러한 변경 사항을 계획, 테스트하고 개선해야 합니다. 개별 엔지니어링 노트북 평가 기준에 대해 다음 링크 중 하나를 클릭하세요(Google Doc / .docx / .pdf), 또는 팀 노트북에 대해 다음 링크 중 하나를 클릭하세요(Google Doc / .docx / .pdf).

다음은 해결책의 예입니다. 

# 프로젝트 코드 시작
draw = Event()

def draw_button():
    brain.screen.set_fill_color(Color.RED)
    brain.screen.draw_rectangle(0, 0, 480, 240)
    wait(1, SECONDS)

draw(draw_button)
while True:
    draw.broadcast()
    drivetrain.drive(FORWARD)

    if brain.screen.pressing():
        drivetrain.stop()
        while brain.screen.pressing():
            wait(5, MSEC)
    else:
        drivetrain.drive(FORWARD)
        
    wait(5, MSEC)

보시다시피, 버튼은 원점(0, 0)에서 시작하여 전체 화면을 차지하도록 그려지고 480개의 수평(x축) 픽셀과 240개의 수직(y축) 픽셀을 모두 채웁니다.