구동계#
소개#
123 로봇은 두 바퀴 구동계를 사용하여 주행 및 회전이 가능합니다. 구동계 작동 방식은 로봇의 움직임을 제어합니다.
구동계는 두 가지 방식으로 거리를 측정할 수 있습니다. 걸음 수와 mm(밀리미터)입니다. 1 걸음 수는 123 필드의 한 칸에 해당합니다.
구동계를 코딩하는 방법은 여러 가지가 있습니다. 아래는 모든 구동계 코딩 방법의 목록입니다.
동작 — 로봇을 이동시키고 회전시키세요.
drive— 로봇을 무한히 전진 또는 후진으로 이동시킵니다.drive_for— 로봇을 특정 거리만큼 앞뒤로 이동시킵니다.drive_until— 물체, 충돌 또는 선을 감지할 때까지 로봇을 앞뒤로 움직입니다.turn— 로봇을 왼쪽 또는 오른쪽으로 계속 회전시킵니다.turn_for— 로봇을 특정 각도만큼 왼쪽 또는 오른쪽으로 회전시킵니다.turn_to_heading— 로봇을 -359도에서 359도 사이의 특정 방향으로 향하게 합니다.stop— 로봇의 움직임을 멈춥니다.
뮤테이터 — 구동계 설정을 조정합니다.
set_timeout— 로봇이 동작을 완료하려고 시도하는 시간을 설정합니다.set_heading— 로봇의 현재 방향을 새로운 방향으로 변경합니다.
게터 — 이동 상태를 확인합니다.
is_stopped— 로봇이 움직임을 멈췄는지 여부를 부울 값으로 반환합니다.get_heading— 로봇의 현재 방향을 0~359도에서 반환합니다.
행위#
drive#
drive 로봇을 전진 또는 후진으로 무한히 이동시킵니다. 로봇은 방향 전환이나 정지와 같은 다른 동작이 주어질 때까지 계속 움직입니다.
Usage:
robot.drive(direction)
매개변수 |
설명 |
|---|---|
|
로봇의 이동 방향: |
# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()
drive_for#
drive_for 값이 이 특정 거리만큼 앞뒤로 이동합니다. 프로젝트는 로봇의 이동이 완료될 때까지 기다린 후 다음 코드를 실행합니다.
Usage:
robot.drive_for(direction, distance, unit)
매개변수 |
설명 |
|---|---|
|
로봇의 이동 방향: |
|
로봇이 주행한 거리입니다. 정수 또는 소수일 수 있습니다. |
|
거리 단위: |
# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)
drive_until#
drive_until 은 로봇이 물체, 충돌 또는 선을 감지할 때까지 전진 또는 후진으로 움직입니다.
Usage:
robot.drive_until(direction)
매개변수 |
설명 |
|---|---|
|
로봇의 이동 방향: |
# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)
turn#
turn 턴은 로봇을 왼쪽 또는 오른쪽으로 계속 회전시킵니다. 로봇은 주행이나 정지와 같은 다른 동작을 명령받을 때까지 계속 회전합니다.
Usage:
robot.turn(direction)
매개변수 |
설명 |
|---|---|
|
로봇이 회전하는 방향: |
# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()
turn_for#
turn_for 은 로봇을 지정된 각도만큼 왼쪽 또는 오른쪽으로 회전시킵니다. 프로젝트는 로봇이 회전을 완료할 때까지 기다린 후 다음 코드를 실행합니다.
Usage:
robot.turn_for(direction, degrees)
매개변수 |
설명 |
|---|---|
|
로봇이 회전하는 방향: |
|
회전할 각도(도)입니다. 정수 또는 소수일 수 있습니다. |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
turn_to_heading#
turn_to_heading 은 로봇을 -359도에서 359도 사이의 특정 방향으로 회전시킵니다. 로봇은 목표 방향에 도달하기 위해 가장 짧은 방향으로 회전합니다.
초기 방향은 0도입니다.
이 프로젝트는 로봇이 회전을 완료할 때까지 기다린 후 다음 코드 줄을 실행합니다.
Usage:
robot.turn_to_heading(heading)
매개변수 |
설명 |
|---|---|
|
로봇이 향해야 할 방향은 -359도에서 359도 사이입니다. |
# Turn to face the cardinal directions.
robot.turn_to_heading(90)
wait(2, SECONDS)
robot.turn_to_heading(180)
wait(2, SECONDS)
robot.turn_to_heading(270)
wait(2, SECONDS)
robot.turn_to_heading(0)
wait(2, SECONDS)
stop#
stop 로봇의 움직임을 멈춥니다.
Usage:
robot.stop()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()
돌연변이체#
set_timeout#
set_timeout 로봇이 동작을 완료하려고 시도하는 시간을 초 단위로 설정합니다. 로봇이 해당 시간 내에 동작을 완료하지 못하면 시도를 중단하고 다음 코드 줄로 넘어갑니다. 이렇게 하면 로봇이 동작 중에 멈추는 것을 방지할 수 있습니다.
Usage:
robot.set_timeout(time, unit)
매개변수 |
설명 |
|---|---|
|
움직임을 허용하는 시간입니다. 정수 또는 소수일 수 있습니다. |
|
시간 단위: |
# Turn right after driving for 1 second.
robot.set_timeout(1, SECONDS)
robot.drive_for(FORWARD, 1000, MM)
robot.turn_for(RIGHT, 90)
set_heading#
set_heading 은 로봇의 현재 방향을 새로운 방향 값으로 변경합니다.
예를 들어 로봇이 오른쪽을 향하도록 회전한 경우, 방향을 0도로 설정하면 오른쪽을 향한 위치가 새로운 0도가 됩니다.
Usage:
robot.set_heading(heading)
매개변수 |
설명 |
|---|---|
|
로봇의 진행 방향 값을 도 단위로 설정합니다. |
# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)
게터스#
is_stopped#
is_stopped 로봇이 움직임을 멈췄는지 여부를 보고하는 Boolean을 반환합니다.
True— 로봇이 멈췄습니다.False— 로봇은 여전히 움직이고 있습니다.
Usage:
robot.is_stopped()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Glow blue after a crash.
robot.drive_until(FORWARD)
while True:
if robot.is_stopped():
robot.led.glow(BLUE)
else:
robot.led.glow(GREEN)
wait(0.05, SECONDS)
get_heading#
get_heading 로봇이 현재 향하고 있는 방향을 0에서 359도 사이의 정수로 반환합니다.
로봇의 초기 진행 방향은 0도입니다.
Usage:
robot.get_heading()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())