Skip to main content

컨트롤러와 루프 - Python

컨트롤러와 루프

경쟁에서 각 팀은 컨트롤러를 이용해 무선으로 로봇을 조작해야 합니다. 컨트롤러는 사용자의 입력에 따라 로봇을 업데이트하도록 프로그래밍됩니다. 이 프로젝트에서는 루프를 사용하여 로봇이 업데이트된 입력 정보를 반복적으로 확인합니다. 루프를 사용하면 프로젝트에서 어떤 버튼이 눌렸는지, 조이스틱이 얼마나 눌렸는지 빠르게 확인할 수 있습니다. 이 정보가 확인되면 로봇에 빠르게 전달되어 로봇이 컨트롤러의 지시에 신속하게 대응할 수 있습니다.

다음은 VEXcode V5의 탱크 제어 예제 프로젝트를 보여줍니다. 이 프로젝트의 while True무한 루프는 모터의 속도를 설정하기 위해 축 2와 3의 위치를 계속 확인합니다.

# 라이브러리는 vex에서
가져옵니다. import *

# 프로젝트 코드 시작
# 모터를 컨트롤러 축 위치로 설정하는 메인 컨트롤러 루프
while True:
    left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
    right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
    left_motor.spin(FORWARD)
    right_motor.spin(FORWARD)
    wait(5, MSEC)

컨트롤러가 없는 자율 프로그래밍에도 루프는 중요합니다. 루프는 프로젝트 내에서 반복되는 명령을 단순화하고 구성하는 데 도움이 됩니다.

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

이 활동을 확장하려면 학생들에게 아케이드 컨트롤과 탱크 컨트롤의 차이점을 탐구해 보라고 하세요. 학생들은 VEXcode V5에서 찾을 수 있는 예제 프로젝트를 따라 할 수 있습니다.VEXcode V5에서 열린 파일 메뉴 이미지(Open Examples가 강조 표시됨)

예제 프로젝트는 4개입니다: Left Arcade, Right Arcade, Split Arcade, Tank Control.앞서 언급한 프로젝트가 강조 표시된 예시 프로젝트 메뉴 이미지

프로그램 내의 루프가 어떻게 작동하는지, 그리고 각 제어 유형의 장단점을 논의해 보세요.

이 활동을 수학과 연관시키려면 위의 좌우 아케이드(조이스틱 1개)와 분할 아케이드/탱크 드라이브(조이스틱 2개) 프로젝트를 사용하여 프로젝트 내에서 X축과 Y축의 역할에 대해 논의해 보세요.