모터 및 모터 그룹#
소개#
모터와 모터 그룹은 로봇의 부품이 움직이는 방식을 제어합니다. Motor 은 구성된 스마트 모터 하나를 제어하고, MotorGroup 은 구성된 여러 스마트 모터를 함께 제어하여 동시에 움직이도록 합니다. 모터와 모터 그룹은 팔을 올리거나, 집게를 돌리거나, 바퀴를 회전시키거나, 구조물의 다른 부분을 움직이는 데 사용할 수 있습니다. 두 개 또는 네 개의 모터가 구동계로 함께 작동하여 로봇 전체를 움직이고 회전시킬 수 있습니다.
각 모터 또는 모터 그룹은 장치 창에서 구성됩니다. 빌드에 따라 모터 및 모터 그룹 이름이 변경될 수 있습니다. 이 페이지에서는 예시 이름으로 motor_1 과 motor_group_1 사용합니다. 필요에 따라 구성된 이름으로 바꿔 사용하십시오.
기본적으로 FORWARD 모터를 시계 반대 방향으로 회전시키고, REVERSE 모터를 시계 방향으로 회전시킵니다. 모터를 역방향으로 설정하면 회전 방향이 반대로 바뀝니다.
모터와 모터 그룹을 코딩하는 방법은 여러 가지가 있습니다. 아래는 모든 모터 및 모터 그룹 코딩 방법 목록입니다.
동작 — 모터 및 모터 그룹을 정지시키거나 회전시킵니다.
spin— 모터 또는 모터 그룹을 영원히 앞뒤로 회전시킵니다.spin_for— 특정 거리 동안 모터 또는 모터 그룹을 회전시킵니다.spin_to_position— 모터 또는 모터 그룹을 특정 위치로 회전시킵니다.stop— 모터 또는 모터 그룹의 회전을 멈춥니다.
뮤테이터 — 모터 및 모터 그룹 설정을 조정합니다.
set_position— 모터 또는 모터 그룹의 현재 위치를 새 값으로 변경합니다.set_velocity— 모터 또는 모터 그룹에 회전 속도를 알려줍니다.set_stopping— 모터 또는 모터 그룹이 제동, 관성 주행 또는 유지를 통해 움직임을 멈추는 방법을 설정합니다.set_max_torque— 모터 또는 모터 그룹이 회전하는 동안 밀어낼 수 있는 최대 힘을 설정합니다.set_timeout— 모터 또는 모터 그룹이 동작을 완료하려고 시도하는 시간을 설정합니다.set_reversed— 모터의 회전 방향이 반전되는지 여부를 변경합니다.reset_position— 모터 또는 모터 그룹의 현재 위치를 0으로 변경합니다.
게터 - 모터 및 모터 그룹 상태를 확인합니다.
is_done— 모터 또는 모터 그룹이 이동을 완료했는지 여부를 부울 값으로 반환합니다.is_spinning— 모터 또는 모터 그룹이 회전하는지 여부를 부울 값으로 반환합니다.position— 모터 또는 모터 그룹의 현재 위치를 반환합니다.velocity— 모터 또는 모터 그룹이 회전하는 속도를 반환합니다.current— 모터 또는 모터 그룹이 사용하는 전기 전류량을 반환합니다.power— 모터 또는 모터 그룹이 사용하는 전력량을 반환합니다.torque— 모터 또는 모터 그룹이 사용하는 토크의 양을 반환합니다.efficiency— 모터 또는 모터 그룹이 전력을 얼마나 효율적으로 사용하는지 반환합니다.temperature— 모터 또는 모터 그룹의 온도를 반환합니다.count— 모터 그룹에 있는 모터의 수를 반환합니다.get_timeout— 모터 또는 모터 그룹의 현재 타임아웃 기간을 반환합니다.
생성자 — 모터 및 모터 그룹을 수동으로 초기화하고 구성합니다.
Motor— 모터를 생성합니다.MotorGroup— 모터 그룹을 생성합니다.
행위#
spin#
spin 모터 또는 모터 그룹을 정방향 또는 역방향으로 무한히 회전시킵니다. 모터 또는 모터 그룹은 회전 방향을 바꾸거나 정지하는 등의 다른 동작이 주어질 때까지 계속 회전합니다.
Usage:
motor_1.spin(direction, velocity, units)
매개변수 |
설명 |
|---|---|
|
모터 또는 모터 그룹의 회전 방향: |
|
Optional. The velocity to spin with from 0% to 100% when using |
|
선택 사항입니다. 속도 단위:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
spin_for#
spin_for 모터 또는 모터 그룹을 지정된 거리만큼 회전시킵니다. 회전 거리는 모터 또는 모터 그룹의 현재 위치를 기준으로 합니다. 프로젝트는 모터 또는 모터 그룹의 회전이 완료될 때까지 기다린 후 다음 코드를 실행합니다.
Usage:
motor_1.spin_for(direction, angle, units, velocity, units_v, wait)
매개변수 |
설명 |
|---|---|
|
모터 또는 모터 그룹의 회전 방향: |
|
모터 또는 모터 그룹이 회전하는 거리입니다. 이 값은 |
|
선택 사항입니다. 거리 단위: |
|
선택 사항입니다. |
|
선택 사항입니다. 속도 단위:
|
|
선택 사항.
|
# Spin the motor forward once, then reset
motor_1.spin_for(FORWARD, 90, DEGREES)
wait(1, SECONDS)
motor_1.spin_for(REVERSE, 90, DEGREES)
spin_to_position#
spin_to_position 은 모터 또는 모터 그룹을 특정 위치로 회전시킵니다.
모터 또는 모터 그룹의 위치는 회전한 정도를 DEGREES 회전 또는 TURNS으로 측정합니다. 1회전은 360도와 같습니다. 프로젝트 시작 시 모터 또는 모터 그룹의 위치는 0도로 설정됩니다. 모터 또는 모터 그룹의 위치는 set_position 메서드를 사용하여 설정할 수도 있습니다.
위치 값은 절대값입니다. 즉, 회전 방향은 모터 또는 모터 그룹의 현재 위치에 따라 달라집니다.
Usage:
motor_1.spin_to_position(rotation, units, velocity, units_v, wait)
매개변수 |
설명 |
|---|---|
|
모터 또는 모터 그룹이 회전할 위치 값입니다. 이 값은 |
|
위치 단위: |
|
선택 사항입니다. |
|
선택 사항. 속도 단위:
|
|
선택 사항.
|
# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)
stop#
stop 모터 또는 모터 그룹의 회전을 정지시킵니다.
Usage:
motor_1.stop(mode)
매개변수 |
설명 |
|---|---|
|
선택 사항. 모터 또는 모터 그룹의 정지 방법:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
돌연변이체#
set_position#
모터 또는 모터 그룹의 위치는 회전한 정도를 나타내며, DEGREES 회전 또는 TURNS으로 측정됩니다. set_position 모터 또는 모터 그룹의 현재 위치를 새로운 값으로 변경합니다.
예를 들어, 모터 또는 모터 그룹이 180도 회전한 경우, 위치를 0도로 설정하면 해당 위치가 180도에서 0도로 재설정됩니다. 그러면 모터 또는 모터 그룹은 새로운 값에 따라 회전할 수 있습니다.
Usage:
motor_1.set_position(position, units)
매개변수 |
설명 |
|---|---|
|
모터 또는 모터 그룹에 설정할 위치 값입니다. 이 값은 |
|
선택 사항입니다. 위치 단위: |
# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)
set_velocity#
set_velocity 모터 또는 모터 그룹의 회전 속도를 지정합니다. 백분율이 높을수록 모터 또는 모터 그룹은 더 빠르게 회전하고, 백분율이 낮을수록 더 느리게 회전합니다.
모든 프로젝트는 기본적으로 각 모터 또는 모터 그룹이 50% 속도로 회전하는 상태에서 시작됩니다.
참고: 회전 속도가 높을수록 모터 또는 모터 그룹의 회전 속도는 빨라지지만 정밀도가 떨어질 수 있습니다. 회전 속도가 낮을수록 모터 또는 모터 그룹의 회전 속도는 느려지지만 정밀도는 높아질 수 있습니다.
Usage:
motor_1.set_velocity(velocity, units)
매개변수 |
설명 |
|---|---|
|
모터 또는 모터 그룹이 회전할 속도입니다. |
|
선택 사항입니다. 속도 단위:
|
# Spin forward at the default velocity
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)
# Spin slower
motor_1.set_velocity(20, PERCENT)
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)
# Spin faster
motor_1.set_velocity(100, PERCENT)
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)
set_stopping#
set_stopping 은 모터 또는 모터 그룹이 정지하는 방법(브레이크, 관성 주행 또는 정지)을 설정합니다.
Usage:
motor_1.set_stopping(mode)
매개변수 |
설명 |
|---|---|
|
모터 또는 모터 그룹의 정지 방법:
|
set_max_torque#
토크는 모터 또는 모터 그룹이 회전하는 동안 밀거나 당길 수 있는 최대 힘을 나타냅니다.
set_max_torque 모터 또는 모터 그룹이 사용할 수 있는 최대 토크를 설정합니다.
높은 백분율은 모터 또는 모터 그룹이 무거운 물체를 들어 올릴 때처럼 더 강하게 밀어낼 수 있도록 합니다. 낮은 백분율은 모터 또는 모터 그룹이 밀어낼 수 있는 힘을 제한합니다. 이는 모터 또는 모터 그룹이 멈추거나 움직일 수 있는 한계에 도달했을 때 로봇을 보호하는 데 도움이 될 수 있습니다.
모든 프로젝트는 기본적으로 각 모터 또는 모터 그룹의 토크가 50%로 설정된 상태에서 시작됩니다.
Usage:
motor_1.set_max_torque(value, units)
매개변수 |
설명 |
|---|---|
|
모터 또는 모터 그룹이 사용할 수 있는 최대 토크입니다. |
|
선택 사항입니다. 토크 단위:
|
set_timeout#
set_timeout 모터 또는 모터 그룹이 동작을 완료하려고 시도하는 시간을 설정합니다. 모터 또는 모터 그룹이 해당 시간 내에 동작을 완료하지 못하면 시도를 중지하고 다음 코드 줄로 이동합니다. 이렇게 하면 모터 또는 모터 그룹이 동작 중에 멈추는 것을 방지할 수 있습니다.
Usage:
motor_1.set_timeout(value, units)
매개변수 |
설명 |
|---|---|
|
모터 또는 모터 그룹이 동작을 완료하려고 시도할 수 있는 시간입니다. 이는 양수 |
|
선택 사항입니다. 시간 단위:
|
set_reversed#
set_reversed 모터의 회전 방향이 반전되는지 여부를 변경합니다. 이 메서드는 Motor을 구성할 때 reverse 매개변수를 True 로 설정하는 것과 동일하게 작동합니다.
참고: 이 방법은 모터 그룹이 아닌 모터 하나에만 적용됩니다.
Usage:
motor_1.set_reversed(value)
매개변수 |
설명 |
|---|---|
|
모터 회전 방향 반전 여부:
|
reset_position#
reset_position 은 모터 또는 모터 그룹의 현재 위치를 0으로 변경합니다.
Usage:
motor_1.reset_position()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
게터스#
is_done#
is_done 모터 또는 모터 그룹의 움직임이 완료되었는지 여부를 부울 값으로 반환합니다. 이 값은 모터의 움직임에 따라 다른 동작의 타이밍을 제어하는 데 사용할 수 있습니다.
True— 모터 또는 모터 그룹의 작동이 완료되었습니다.False— 모터 또는 모터 그룹이 여전히 움직이고 있습니다.
이 방법은 wait 매개변수를 갖는 다음 모션 방법과 함께 작동합니다: spin_for 및 spin_to_position.
Usage:
motor_1.is_done()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Drive forward until the motor is done spinning
motor_1.spin_for(FORWARD, 200, wait=False)
while True:
if motor_1.is_done():
drivetrain.stop()
else:
drivetrain.drive(FORWARD)
is_spinning#
is_spinning 모터 또는 모터 그룹이 회전 중인지 여부를 부울 값으로 반환합니다. 이 값은 모터의 움직임에 따라 다른 동작의 타이밍을 제어하는 데 사용할 수 있습니다.
True— 모터 또는 모터 그룹이 회전하고 있습니다.False— 모터 또는 모터 그룹이 회전하지 않습니다.
이 방법은 wait 매개변수를 갖는 다음 모션 방법과 함께 작동합니다: spin_for 및 spin_to_position.
Usage:
motor_1.is_spinning()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Drive forward until the motor is done spinning
motor_1.spin_for(FORWARD, 200, wait=False)
while True:
if motor_1.is_spinning():
drivetrain.drive(FORWARD)
else:
drivetrain.stop()
position#
모터 또는 모터 그룹의 위치는 회전한 정도를 나타내며, DEGREES 회전 또는 TURNS으로 측정됩니다. 1회전은 360도와 같습니다. position 는 모터 또는 모터 그룹의 현재 위치를 반환합니다.
프로젝트 시작 시 모터 또는 모터 그룹의 위치는 0도로 설정됩니다. 모터 또는 모터 그룹이 한 바퀴 정방향으로 회전하면 위치는 360도 또는 1회전이 됩니다. 모터 또는 모터 그룹이 반대 방향으로 회전하면 위치는 음수가 됩니다.
Usage:
motor_1.position(units)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. 모터 또는 모터 그룹 위치를 반환하는 단위는 |
# Display the motor's position after spinning
brain.screen.print(motor_1.position())
brain.screen.next_row()
motor_1.spin(FORWARD)
wait(1, SECONDS)
brain.screen.print(motor_1.position())
motor_1.stop()
velocity#
velocity 모터 또는 모터 그룹의 회전 속도를 -100%에서 100%까지의 백분율 또는 -127rpm에서 127rpm까지의 분당 회전수로 반환합니다.
양수 값은 모터 또는 모터 그룹이 정방향으로 회전하고 있음을 의미합니다. 음수 값은 역방향으로 회전하고 있음을 의미합니다.
Usage:
motor_1.velocity(units)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. 반환할 속도 단위:
|
current#
current 모터 또는 모터 그룹이 사용하는 전류량을 반환하며, 0.0~1.2A 범위의 암페어(A) 단위로 측정됩니다. 전류는 모터 또는 모터 그룹을 통해 흐르는 전기의 양입니다.
전류값이 높다는 것은 모터 또는 모터 그룹이 더 많은 전류를 사용하고 있다는 의미입니다. 이는 모터 또는 모터 그룹이 무거운 물체를 들어 올리거나, 물체를 밀거나, 멈춰 있을 때 움직이려고 할 때 발생할 수 있습니다.
이 기능은 모터 또는 모터 그룹이 작동 중에 어려움을 겪는지 확인하는 데 사용할 수 있습니다. 전류가 높은 상태로 유지되면 모터가 과열되거나 전력 효율이 떨어질 수 있습니다.
Usage:
motor_1.current(units)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. 반환할 현재 단위:
|
power#
power 모터 또는 모터 그룹이 사용하는 전력량을 와트(W) 단위로 0.0~11.0W까지 반환합니다. 전력은 모터 또는 모터 그룹이 에너지를 사용하는 속도를 나타냅니다.
출력값이 높다는 것은 모터 또는 모터 그룹이 에너지를 더 빠르게 사용하고 있다는 의미입니다. 이는 모터 또는 모터 그룹이 무거운 물체를 들어 올리거나, 물체를 밀거나, 멈춘 상태에서 움직이려고 할 때 발생할 수 있습니다.
이 기능은 움직임을 비교하거나 모터 또는 모터 그룹이 제대로 작동하지 않는지 확인하는 데 사용할 수 있습니다. 전력이 계속 높게 유지되면 모터가 과열되거나 에너지 효율이 떨어질 수 있습니다.
Usage:
motor_1.power(units)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. 반환할 전력 단위:
|
torque#
토크는 모터 또는 모터 그룹이 회전하는 동안 비틀림, 밀기 또는 당기는 힘을 얼마나 강하게 발휘하는지를 나타냅니다.
torque 모터 또는 모터 그룹이 사용하는 토크 값을 반환하며, 이 값은 인치-파운드(InLb) 단위로 0.0~22.0, 또는 뉴턴-미터(Nm) 단위로 0.0~2.1까지 측정됩니다.
토크 값이 높다는 것은 모터 또는 모터 그룹이 더 강하게 밀거나 당기고 있다는 의미입니다. 이는 모터 또는 모터 그룹이 무거운 물체를 들어 올리거나, 물체를 밀거나, 멈춰 있는 상태에서 움직이려고 할 때 발생할 수 있습니다.
이는 모터 또는 모터 그룹이 제대로 작동하지 못하는지 확인하거나, 서로 다른 동작에 필요한 힘의 정도를 비교하는 데 사용할 수 있습니다.
모터 또는 모터 그룹의 토크를 설정하려면 set_max_torque를 사용합니다.
Usage:
motor_1.torque(units)
매개변수 |
설명 |
|---|---|
|
반환할 토크 단위:
|
efficiency#
efficiency 모터 또는 모터 그룹이 전력을 얼마나 효율적으로 사용하는지를 0%에서 100% 사이의 백분율로 나타냅니다.
효율은 모터 또는 모터 그룹의 동력 중 얼마나 많은 부분이 구동에 사용되는지를 나타냅니다. 효율 값이 높을수록 모터 또는 모터 그룹의 동력이 구동에 더 많이 사용되고 있음을 의미합니다. 반대로 모터 또는 모터 그룹이 힘겹게 작동하지만 움직임이 적은 경우, 예를 들어 정체되거나 물체에 부딪혔을 때 효율 값이 낮아질 수 있습니다.
이 기능은 움직임을 비교하거나 모터 또는 모터 그룹이 움직임에 사용하지 않고 전력을 낭비하는지 확인하는 데 사용할 수 있습니다.
Usage:
motor_1.efficiency(units)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. 반환할 효율 단위:
|
temperature#
temperature 모터 또는 모터 그룹의 온도를 반환합니다.
모터 온도는 모터 또는 모터 그룹의 온도를 나타냅니다. 온도가 높을수록 모터 또는 모터 그룹이 작동 중에 온도가 상승하고 있음을 의미합니다. 모터는 최적의 성능을 유지하며 작동하려면 55°C 이하로 유지되어야 합니다.
모터 또는 모터 그룹이 과열되면 자체 보호를 위해 최대 전류를 낮춥니다. 모터는 70°C에 도달하면 냉각될 때까지 작동을 멈춥니다.
이는 반복적인 움직임, 장시간 작동 또는 물체를 밀어낼 때 모터 또는 모터 그룹이 과열되는지 여부를 확인하는 데 사용할 수 있습니다.
Usage:
motor_1.temperature(units)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. 반환할 온도 단위:
|
count#
count 모터 그룹에 속한 모터의 개수를 반환합니다.
참고: 이 방법은 단일 운동 그룹에만 효과가 있습니다.
Usage:
motor_group_1.count()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
get_timeout#
get_timeout 모터 또는 모터 그룹의 현재 timeout을 밀리초 단위로 반환합니다.
Usage:
motor_1.get_timeout()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
건설업자#
생성자는 장치 창 외부에서 Motor 및 MotorGroup 객체를 수동으로 생성하는 데 사용됩니다.
Motor#
Motor 모터를 생성합니다.
Usage:
Motor(port, gears, reverse)
매개변수 |
설명 |
|---|---|
|
모터가 연결된 스마트 포트는 |
|
선택 사항입니다. 모터의 기어비:
|
|
Optional. Sets whether the motor’s spin direction is reversed:
|
# Create a Motor in Port 1 with default values
motor_1 = Motor(Ports.PORT1)
"""
Create a motor with the following values:
- In Port 1
- 36:1 ratio
- Reversed
"""
motor_1 = Motor(Ports.PORT1, GearSetting.RATIO_36_1, True)
MotorGroup#
MotorGroup 모터 그룹을 생성합니다.
Usage:
MotorGroup(motors)
매개변수 |
설명 |
|---|---|
|
이전에 생성된 |
# Create the Motors
motor_1 = Motor(Ports.PORT1)
motor_2 = Motor(Ports.PORT2)
# Create a Motor Group
motor_group_1 = MotorGroup(motor_1, motor_2)