구동계#

소개#

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)

매개변수

설명

direction

로봇의 이동 방향: FORWARD 또는 REVERSE.

# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()

drive_for#

drive_for 값이 이 특정 거리만큼 앞뒤로 이동합니다. 프로젝트는 로봇의 이동이 완료될 때까지 기다린 후 다음 코드를 실행합니다.

Usage:
robot.drive_for(direction, distance, unit)

매개변수

설명

direction

로봇의 이동 방향: FORWARD 또는 REVERSE.

distance

로봇이 주행한 거리입니다. 정수 또는 소수일 수 있습니다.

unit

거리 단위: MM (밀리미터) 또는 STEPS (123 필드의 한 칸).

# 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)

매개변수

설명

direction

로봇의 이동 방향: FORWARD 또는 REVERSE.

# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)

turn#

turn 턴은 로봇을 왼쪽 또는 오른쪽으로 계속 회전시킵니다. 로봇은 주행이나 정지와 같은 다른 동작을 명령받을 때까지 계속 회전합니다.

Usage:
robot.turn(direction)

매개변수

설명

direction

로봇이 회전하는 방향: LEFT 또는 RIGHT.

# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()

turn_for#

turn_for 은 로봇을 지정된 각도만큼 왼쪽 또는 오른쪽으로 회전시킵니다. 프로젝트는 로봇이 회전을 완료할 때까지 기다린 후 다음 코드를 실행합니다.

Usage:
robot.turn_for(direction, degrees)

매개변수

설명

direction

로봇이 회전하는 방향: LEFT 또는 RIGHT.

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)

매개변수

설명

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)

매개변수

설명

time

움직임을 허용하는 시간입니다. 정수 또는 소수일 수 있습니다.

unit

시간 단위: MSEC 초 또는 SECONDS 초.

# 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)

매개변수

설명

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())