Трансмиссия#

Введение#

Робот VEX V5 использует трансмиссию для движения и поворотов. Трансмиссия состоит из двигателей и колес, которые работают вместе, чтобы перемещать робота.

В сконфигурированной трансмиссии может использоваться инерциальный датчик, датчик GPS, гироскопический датчик или не использоваться ни один датчик. При использовании датчика трансмиссия использует его для точного перемещения и поворота робота. В начале каждого проекта трансмиссия автоматически калибрует датчик. Во время калибровки робот должен оставаться неподвижным, чтобы он мог правильно двигаться и поворачивать.

Существует множество способов закодировать трансмиссию. На этой странице в качестве примера используется название трансмиссии drivetrain При необходимости замените его на собственное заданное имя.

Ниже приведён список всех способов подключения трансмиссии:

Действия — Перемещение и поворот робота.

  • drive — Двигает робота вперед или назад бесконечно.

  • drive_for — Перемещает робота вперед или назад на определенное расстояние.

  • turn — Поворачивает робота влево или вправо навсегда.

  • turn_for — Поворачивает робота влево или вправо на определенное количество градусов.

  • turn_to_heading — Поворачивает робота в заданном направлении от -359 до 359 градусов. Робот повернется по кратчайшему направлению, чтобы достичь целевого направления.

  • turn_to_rotation — Поворачивает робота на заданное направление.

  • stop — Останавливает движение робота.

  • calibrate_drivetrain – Калибрует датчик, настроенный с трансмиссией.

Мутаторы — Настройка параметров трансмиссии.

  • set_drive_velocity — Указывает роботу, с какой скоростью двигаться.

  • set_turn_velocity — Указывает роботу, с какой скоростью нужно поворачивать.

  • set_stopping — Указывает, как робот остановится: с помощью торможения, движения по инерции или удержания.

  • set_timeout — Устанавливает, сколько секунд робот будет пытаться завершить движение.

  • set_heading — Изменяет текущее направление движения робота на новое.

  • set_rotation — Изменяет текущее вращение робота на новое вращение.

  • set_turn_threshold – Указывает, насколько близко робот должен приблизиться к целевому углу, прежде чем поворот будет завершен.

  • set_turn_constant – Изменяет силу коррекции поворотов роботом.

  • set_turn_direction_reverse – Изменяет направление поворота интеллектуальной трансмиссии.

Геттеры — Проверка состояния трансмиссии.

  • is_done — Возвращает значение логического значения, указывающее, завершил ли робот движение.

  • is_moving — Возвращает значение логического значения, указывающее, движется ли робот.

  • heading — Возвращает текущий курс робота от 0 до 359,99 градусов.

  • rotation — Возвращает текущее вращение робота.

  • velocity — Возвращает скорость движения робота.

  • current — Возвращает значение электрического тока, потребляемого трансмиссией.

  • power — Возвращает скорость потребления энергии трансмиссией.

  • torque — Возвращает величину крутящего момента, используемого трансмиссией.

  • efficiency — Возвращает, насколько эффективно трансмиссия использует мощность.

  • temperature — Возвращает температуру трансмиссии.

  • get_timeout – Возвращает текущее значение таймаута.

Конструкторы – Создание и настройка трансмиссии вручную.

Действия#

drive#

Привод drive перемещает робота вперед или назад бесконечно. Робот будет продолжать движение, пока ему не будет дано другое действие, например, поворот или остановка. Для оборотов в минуту (в градусах в секунду) ограничение изменяется в зависимости от передаточного отношения трансмиссии.

Usage:
drivetrain.drive(direction, velocity, units)

Параметры

Описание

direction

Направление движения робота: FORWARD или REVERSE.

velocity

Необязательно. Скорость вращения от 0% до 100% при использовании PERCENT, от 0 до 600 об/мин при использовании RPMили от 0 до 3600 градусов в секунду при использовании VelocityUnits.DPSЭто может быть целое число integerfloat). Если скорость не указана, робот вращается с текущей скоростью вращения.

units

Необязательно. Единица измерения скорости: RPM (оборотов в минуту, по умолчанию), PERCENTили VelocityUnits.DPS (градусов в секунду).

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

# Drive forward at 360 degrees per second
drivetrain.drive(FORWARD, 360.0, VelocityUnits.DPS)

drive_for#

drive_for перемещает робота вперед или назад на определенное расстояние. Проект будет ждать, пока робот не завершит движение, прежде чем будет выполнена следующая строка кода. Для оборотов в минуту (об/мин) или градусов в секунду ограничение изменяется в зависимости от передаточного отношения трансмиссии.

Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)

Параметры

Описание

direction

Направление движения робота: FORWARD или REVERSE.

distance

Расстояние, которое проезжает робот. Это может быть целое число integer или десятичное число (float).

units

Дополнительно. Единица измерения расстояния: INCHES (по умолчанию) или MM (миллиметра).

velocity

Необязательно. Скорость вращения от 0% до 100% при использовании PERCENT, от 0 до 600 об/мин при использовании RPMили от 0 до 3600 градусов в секунду при использовании VelocityUnits.DPSЭто может быть целое число integerfloat). Если скорость не указана, робот вращается с текущей скоростью вращения.

units_v

Необязательно. Единица измерения скорости: RPM (оборотов в минуту, по умолчанию), PERCENTили VelocityUnits.DPS (градусов в секунду).

wait

Необязательно. wait=True (по умолчанию) заставляет проект ждать, пока робот не закончит движение, прежде чем выполнить следующую строку кода. wait=False заставляет следующую строку кода выполниться немедленно.

# Drive forwards and backwards
drivetrain.drive_for(FORWARD, 5)
wait(1, SECONDS)
drivetrain.drive_for(REVERSE, 5)

turn#

turn поворачивает робота влево или вправо бесконечно. Робот будет продолжать поворачивать, пока ему не будет дано другое действие, например, движение или остановка. Для оборотов в минуту (в градусах в секунду) ограничение изменяется в зависимости от передаточного отношения трансмиссии.

Usage:
drivetrain.turn(direction, velocity, units)

Параметры

Описание

direction

Направление поворота робота: LEFT или RIGHT.

velocity

Необязательно. Скорость поворота от 0% до 100% при использовании PERCENT, от 0 до 600 об/мин при использовании RPMили от 0 до 3600 градусов в секунду при использовании VelocityUnits.DPSЭто может быть целое число integerfloat). Если скорость не указана, робот поворачивает с текущей скоростью поворота.

units

Необязательно. Единица измерения скорости: RPM (оборотов в минуту, по умолчанию), PERCENTили VelocityUnits.DPS (градусов в секунду).

# Turn right, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.stop()

turn_for#

turn_for поворачивает робота влево или вправо на определенное количество градусов. Поворот осуществляется относительно текущего положения робота. Проект будет ждать, пока робот не завершит поворот, прежде чем будет выполнена следующая строка кода. Для оборотов в минуту (об/мин) или градусов в секунду ограничение изменяется в зависимости от передаточного отношения трансмиссии.

Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)

Параметры

Описание

direction

Направление поворота робота: LEFT или RIGHT.

angle

Количество градусов, на которое поворачивается робот. Это может быть целое число integer или десятичное число (float).

units

Дополнительно. Единица измерения поворота: DEGREES (по умолчанию) или TURNSОдин оборот равен 360 градусам.

velocity

Необязательно. Скорость поворота от 0% до 100% при использовании PERCENT, от 0 до 600 об/мин при использовании RPMили от 0 до 3600 градусов в секунду при использовании VelocityUnits.DPSЭто может быть целое число integerfloat). Если скорость не указана, робот поворачивает с текущей скоростью поворота.

units_v

Необязательно. Единица измерения скорости: RPM (оборотов в минуту, по умолчанию), PERCENTили VelocityUnits.DPS (градусов в секунду).

wait

Необязательно. wait=True (по умолчанию) заставляет проект ждать, пока робот не закончит вращение, прежде чем выполнить следующую строку кода. wait=False заставляет следующую строку кода выполниться немедленно.

# Turn left, then turn around to the right
drivetrain.turn_for(LEFT, 90)
drivetrain.turn_for(RIGHT, 180)

turn_to_heading#

Направление движения — это направление, в котором смотрит робот, измеряемое в градусах. turn_to_heading поворачивает робота, чтобы тот смотрел в определенном направлении от -359 до 359 градусов. Робот повернется по кратчайшему направлению, чтобы достичь целевого направления.

Начальный курс робота составляет 0 градусов.

Проект будет ждать, пока робот не завершит вращение, прежде чем запустится следующая строка кода.

Примечание: Эта функция доступна только в том случае, если в окне «Устройства» трансмиссия настроена с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)

Параметры

Описание

angle

Направление, в котором должен быть повернут робот, в градусах. Это может быть целое число integer или десятичное число (float) от -359 до 359.

units

Необязательно. Единица измерения заголовка: DEGREES умолчанию).

velocity

Необязательно. Скорость поворота от 0% до 100% при использовании PERCENT, от 0 до 600 об/мин при использовании RPMили от 0 до 3600 градусов в секунду при использовании VelocityUnits.DPSЭто может быть целое число integerfloat). Если скорость не указана, робот поворачивает с текущей скоростью поворота.

units_v

Необязательно. Единица измерения скорости: RPM (оборотов в минуту, по умолчанию), PERCENTили VelocityUnits.DPS (градусов в секунду).

wait

Необязательно. wait=True (по умолчанию) заставляет проект ждать, пока робот не закончит вращение, прежде чем выполнить следующую строку кода. wait=False заставляет следующую строку кода выполниться немедленно.

# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)

# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)

turn_to_rotation#

turn_to_rotation поворачивает робота на определенное расстояние.

Вращение — это величина поворота робота, измеряемая в градусах. В начале проекта значение вращения устанавливается равным 0 градусам. Вращение также можно установить с помощью метода set_rotation.

Значения вращения являются абсолютными. Это означает, что направление поворота зависит от текущего вращения робота. Поворот вправо увеличивает вращение, а поворот влево уменьшает его.

Например, если робот начинает движение с 0 градусов, а затем вы поворачиваетесь на 720 градусов, он дважды повернется вправо. Если же вы повернетесь на 360 градусов, он один раз повернется влево, потому что 360 меньше 720.

Проект будет ждать, пока робот не завершит вращение, прежде чем запустится следующая строка кода.

Примечание: Этот метод доступен только в том случае, если в окне «Устройства» трансмиссия настроена с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)

Параметры

Описание

angle

Величина поворота в градусах или оборотах, на которую будет поворачиваться робот. Это может быть целое число integer или десятичное число (float).

units

Дополнительно. Единица измерения вращения: DEGREES (по умолчанию) или TURNSОдин оборот равен 360 градусам.

velocity

Необязательно. Скорость поворота от 0% до 100% при использовании PERCENT, от 0 до 600 об/мин при использовании RPMили от 0 до 3600 градусов в секунду при использовании VelocityUnits.DPSЭто может быть целое число integerfloat). Если скорость не указана, робот поворачивает с текущей скоростью поворота.

units_v

Необязательно. Единица измерения скорости: RPM (оборотов в минуту, по умолчанию), PERCENTили VelocityUnits.DPS (градусов в секунду).

wait

Необязательно. wait=True (по умолчанию) заставляет проект ждать, пока робот не закончит вращение, прежде чем выполнить следующую строку кода. wait=False заставляет следующую строку кода выполниться немедленно.

# Turn left, then spin in a circle clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)

# Turn left then slowly spin in a circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)

stop#

stop останавливает движение робота.

Usage:
drivetrain.stop(mode)

Параметры

Описание

mode

Дополнительно. Способ остановки робота: BRAKE (по умолчанию), BRAKEили COAST

  • COAST — Немедленная остановка.
  • HOLD — Замедление до полной остановки.
  • HOLD — Немедленная остановка с удержанием положения колес.

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

calibrate_drivetrain#

calibrate_drivetrain — это встроенная функция, которая калибрует настроенный инерциальный датчик, датчик GPS или гироскопический датчик трансмиссии.

Калибровка помогает датчику правильно измерять движение. Во время калибровки удерживайте робота неподвижно около 2 секунд. Если робот будет двигаться во время калибровки, датчик может неправильно измерить движение.

Проект будет ждать завершения калибровки, прежде чем запустится следующая строка кода.

Примечание: Эта функция доступна только в том случае, если в окне «Устройства» трансмиссия настроена с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
calibrate_drivetrain()

Параметры

Описание

Эта функция не имеет параметров.

Мутаторы#

set_drive_velocity#

Параметр set_drive_velocity определяет скорость движения робота. Более высокое значение в процентах увеличивает скорость, а более низкое — уменьшает. Для оборотов в минуту (в градусах в секунду) ограничение изменяется в зависимости от передаточного отношения трансмиссии.

Каждый проект начинается с того, что робот по умолчанию движется со скоростью, составляющей 50% от максимальной.

Примечание: Более высокая скорость приводит к более быстрому движению робота, но может снизить точность. Более низкая скорость приводит к более медленному движению робота, но может повысить точность.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Параметры

Описание

velocity

Скорость вращения от 0% до 100% при использовании PERCENT, от 0 до 600 об/мин при использовании RPMили от 0 до 3600 градусов в секунду при использовании VelocityUnits.DPSЭто может быть целое число integerfloat).

units

Необязательно. Единица измерения скорости: RPM (оборотов в минуту, по умолчанию), PERCENTили VelocityUnits.DPS (градусов в секунду).

# Drive forward at the default velocity
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

set_turn_velocity#

Параметр set_turn_velocity определяет скорость поворота робота. Более высокое значение в процентах приводит к более быстрому повороту, а более низкое — к более медленному. Для оборотов в минуту (в градусах в секунду) ограничение изменяется в зависимости от передаточного отношения трансмиссии.

Каждый проект начинается с того, что робот по умолчанию вращается со скоростью, составляющей 50% от его обычной скорости.

Примечание: Более высокая скорость приводит к более быстрому повороту робота, но может быть менее точной. Более низкая скорость приводит к более медленному повороту робота, но может быть более точной.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Параметры

Описание

velocity

Скорость вращения от 0% до 100% при использовании PERCENT, от 0 до 600 об/мин при использовании RPMили от 0 до 3600 градусов в секунду при использовании VelocityUnits.DPSЭто может быть целое число integerfloat).

units

Необязательно. Единица измерения скорости: RPM (оборотов в минуту, по умолчанию), PERCENTили VelocityUnits.DPS (градусов в секунду).

# Turn at the default velocity
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

set_stopping#

set_stopping задает способ остановки робота: торможение, движение по инерции или удержание.

Usage:
drivetrain.set_stopping(mode)

Параметры

Описание

mode

Как робот остановится:

  • BRAKE — Немедленно останавливается.
  • COAST — Замедляется до полной остановки.
  • HOLD — Немедленно останавливается и удерживает положение колес.

Если этот метод не используется, робот будет применять BRAKE при остановке.

set_timeout#

Параметр set_timeout задает время, в течение которого робот будет пытаться завершить движение. Если робот не сможет завершить движение за это время, он прекратит попытки и перейдет к следующей строке кода. Это предотвращает застревание робота на определенном этапе движения.

Usage:
drivetrain.set_timeout(value, units)

Параметры

Описание

value

Время, в течение которого робот может попытаться завершить движение. Это может быть положительное число integer или десятичное число (float).

units

Необязательно. Единица времени: MSEC (миллисекунды, по умолчанию) или SECONDS.

set_heading#

Направление движения — это направление, в котором смотрит робот, измеряемое в градусах. set_heading изменяет текущее направление движения робота на новое значение.

Например, если робот повернулся вправо, установка направления на 0 градусов делает это положение, в котором робот повернулся вправо, новым значением 0 градусов. Затем робот может поворачиваться в другие положения, основываясь на этом новом направлении.

Примечание: Этот метод доступен только в том случае, если в окне «Устройства» трансмиссия настроена с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
drivetrain.set_heading(heading, units)

Параметры

Описание

heading

Значение курса в градусах или поворотах, которое необходимо задать для робота. Это может быть целое число integer или десятичное число (float).

units

Необязательно. Единица измерения заголовка: DEGREES (по умолчанию) или TURNSОдин оборот равен 360 градусам.

# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)

set_rotation#

Вращение — это угол поворота робота, измеряемый в градусах. В начале проекта значение вращения устанавливается равным 0 градусам. Параметр set_rotation изменяет текущее значение вращения робота на новое значение.

Например, если робот совершил два полных оборота вправо, значение его вращения составит 720 градусов. Установка значения вращения на 0 градусов сбросит это значение с 720 до 0 градусов. Затем робот сможет совершать повороты, исходя из этого нового значения.

Примечание: Этот метод доступен только в том случае, если в окне «Устройства» трансмиссия настроена с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
drivetrain.set_rotation(rotation, units)

Параметры

Описание

rotation

Значение поворота в градусах или оборотах, которое необходимо задать для робота. Это может быть целое число integer или десятичное число (float).

units

Дополнительно. Единица измерения вращения: DEGREES (по умолчанию) или TURNSОдин оборот равен 360 градусам.

# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)

set_turn_threshold#

set_turn_threshold устанавливает, насколько близко робот должен приблизиться к целевому углу, прежде чем поворот будет завершен.

Меньший пороговый уровень может сделать повороты более точными, но роботу может потребоваться больше времени для завершения поворота. Больший пороговый уровень может сделать повороты более быстрыми, но они могут быть менее точными.

Примечание: Этот метод доступен только в том случае, если в окне «Устройства» трансмиссия настроена с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
drivetrain.set_turn_threshold(value)

Параметры

Описание

value

Порог поворота в градусах. Это может быть целое число integer или десятичное число (float). Порог поворота по умолчанию равен 1 градусу.

set_turn_constant#

Параметр set_turn_constant изменяет силу коррекции поворотов роботом.

Более высокое значение заставляет робота корректировать повороты сильнее. Более низкое значение заставляет робота корректировать повороты более плавно. Значение по умолчанию — 1,0.

Примечание: Этот метод доступен только в том случае, если в окне «Устройства» трансмиссия настроена с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
drivetrain.set_turn_constant(value)

Параметры

Описание

value

Постоянная поворота. Может быть десятичным числом (float) от 0,1 до 4,0. Значение по умолчанию — 1,0.

set_turn_direction_reverse#

Параметр set_turn_direction_reverse изменяет направление поворота интеллектуальной трансмиссии.

Этот метод можно использовать, если трансмиссия вращается в противоположном направлении после ручной настройки в коде. Этот метод работает аналогично установке параметра reverse в значение True при построении SmartDrive.

Примечание: Этот метод доступен только в том случае, если в окне «Устройства» трансмиссия настроена с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
drivetrain.set_turn_direction_reverse(value)

Параметры

Описание

value

Изменять ли направление поворота интеллектуальной трансмиссии: True изменяет направление поворота, False использует направление поворота по умолчанию.

Геттеры#

is_done#

is_done возвращает значение логического типа (Boolean), указывающее, завершил ли робот движение. Это можно использовать для управления временем выполнения других действий в зависимости от движения робота.

  • True — Робот завершил движение.

  • False — Робот всё ещё движется.

Этот метод работает совместно со следующими методами Drivetrain, имеющими параметр wait : drive_for, turn_for, turn_to_heading и turn_to_rotation.

Usage:
drivetrain.is_done()

Параметры

Описание

Этот метод не имеет параметров.

is_moving#

is_moving` возвращает значение логического типа (Boolean), указывающее, движется ли робот. Это можно использовать для управления временем выполнения других действий в зависимости от движения робота.

  • True — Робот движется.

  • False — Робот не движется.

Использование:

drivetrain.is_moving()

Параметры

Описание

Этот метод не имеет параметров.

heading#

Направление движения — это то, в каком направлении смотрит робот, измеряемое в градусах. heading возвращает текущее направление движения робота от 0 до 359,99 градусов.

Начальный курс робота составляет 0 градусов.

Примечание: Этот метод доступен только в том случае, если в окне «Устройства» трансмиссия настроена с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
drivetrain.heading(units)

Параметры

Описание

units

Необязательно. Единица измерения для возврата курса: DEGREES (по умолчанию) или TURNSОдин оборот равен 360 градусам.

# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading())

rotation#

Вращение — это угол поворота робота, измеряемый в градусах. В начале проекта значение вращения устанавливается равным 0 градусам. rotation возвращает текущее вращение робота.

Поворот вправо увеличивает угол поворота, а поворот влево уменьшает его. Например, два полных оборота вправо вернут 720 градусов.

Примечание: Этот метод доступен только в том случае, если в окне «Устройства» трансмиссия настроена с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
drivetrain.rotation(units)

Параметры

Описание

units

Необязательно. Единица измерения для возврата вращения: DEGREES (по умолчанию) или TURNSОдин оборот равен 360 градусам.

# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation())

velocity#

velocity возвращает скорость движения робота.

It can return velocity as a percentage from -100% to 100%, in RPM, or in VelocityUnits.DPS (degrees per second). A positive value means the robot is driving forward. A negative value means the robot is driving in reverse.

Usage:
drivetrain.velocity(units)

Параметры

Описание

units

Необязательно. Единица измерения скорости: RPM (оборотов в минуту, по умолчанию), PERCENTили VelocityUnits.DPS (градусов в секунду).

current#

current возвращает величину электрического тока, потребляемого трансмиссией, измеряемую в амперах. Ток — это количество электричества, протекающего через трансмиссию.

Более высокое значение тока означает, что привод потребляет больше электроэнергии. Это может произойти, когда робот толкает объект или пытается переместиться, застряв.

Это можно использовать для проверки того, испытывает ли трансмиссия трудности во время движения. Если ток остается высоким, трансмиссия может нагреваться или потреблять энергию менее эффективно.

Usage:
drivetrain.current(units)

Параметры

Описание

units

Необязательно. Единица измерения тока: CurrentUnits.AMP (амперы, по умолчанию).

power#

power мощность, потребляемая трансмиссией, измеряемая в ваттах. Мощность показывает, как быстро трансмиссия расходует энергию.

Более высокое значение мощности означает, что трансмиссия расходует энергию быстрее. Это может происходить, когда робот толкает объект или пытается переместиться, застряв.

Это можно использовать для сравнения движений или проверки того, не испытывает ли трансмиссия перегрузки. Если мощность остается высокой, трансмиссия может нагреваться или потреблять энергию менее эффективно.

Usage:
drivetrain.power()

Параметры

Описание

Этот метод не имеет параметров.

torque#

Крутящий момент показывает, насколько сильно трансмиссия может толкать или тянуть при вращении колес.

Значение torque возвращает величину крутящего момента, потребляемого трансмиссией, измеряемую в ньютон-метрах (Нм) или дюйм-фунтах (InLb).

Более высокое значение крутящего момента означает, что приводная система работает с большей силой. Это может происходить, когда робот толкает объект или пытается переместиться, если он застрял.

Это можно использовать для проверки того, испытывает ли трансмиссия трудности, или для сравнения того, какое усилие требуется для выполнения различных движений.

Usage:
drivetrain.torque(units)

Параметры

Описание

units

Дополнительно. Единица измерения крутящего момента: TorqueUnits.NM (ньютон-метры, по умолчанию) или TorqueUnits.INLB (дюйм-фунты).

efficiency#

Показатель эффективности efficiency отражает эффективность использования мощности трансмиссией в процентах от 0% до 100%.

Показатель эффективности демонстрирует, какая часть мощности трансмиссии используется для движения. Более высокое значение эффективности означает, что большая часть мощности трансмиссии используется для движения. Более низкое значение эффективности может наблюдаться, когда трансмиссия работает с большой нагрузкой, но мало перемещается, например, когда робот застрял или толкает какой-либо объект.

Это можно использовать для сравнения движений или проверки того, не расходует ли трансмиссия энергию впустую вместо того, чтобы использовать ее для движения.

Usage:
drivetrain.efficiency()

Параметры

Описание

Этот метод не имеет параметров.

temperature#

Параметр temperature возвращает среднюю температуру трансмиссии в выбранной температурной единице.

Температура показывает, насколько сильно нагрелись двигатели трансмиссии. Более высокая температура означает, что двигатели нагреваются во время работы. Для обеспечения полной производительности температура двигателей должна оставаться ниже 55°C.

Если двигатели перегреются, они снизят максимальный ток для самозащиты. При температуре 70°C двигатели прекратят работу до тех пор, пока не остынут.

Это можно использовать для проверки того, не перегревается ли трансмиссия во время многократных движений, длительных поездок или при соприкосновении с каким-либо объектом.

Usage:
drivetrain.temperature(units)

Параметры

Описание

units

Необязательно. Единица измерения температуры: TemperatureUnits.CELSIUS (по умолчанию) или TemperatureUnits.FAHRENHEIT.

get_timeout#

get_timeout возвращает текущий установленный timeout в миллисекундах.

Usage:
drivetrain.get_timeout()

Параметры

Описание

Этот метод не имеет параметров.

Строители#

Конструкторы используются для ручного создания объектов DriveTrain ) и SmartDrive , необходимых для настройки трансмиссии вне VEXcode.

Перед созданием трансмиссии необходимо создать как минимум два объекта Motor или MotorGroup.

DriveTrain#

DriveTrain creates a drivetrain without an Inertial Sensor, GPS Sensor, or Gyro Sensor.

Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Параметр

Описание

lm

Левая двигательная или двигательная группа.

rm

правый двигатель или группа двигателей.

wheelTravel

Необязательный параметр. Окружность колес трансмиссии. Значение по умолчанию — 300 миллиметров.

trackWidth

Дополнительно. Расстояние между левым и правым колесами. По умолчанию — 320 миллиметров.

wheelBase

Дополнительно. Расстояние между передними и задними колесами. По умолчанию — 320 миллиметров.

units

Дополнительно. Единицы измерения для wheelTravel, trackWidthи wheelBase: MM (миллиметры, по умолчанию), INCHESили DistanceUnits.CM (сантиметры).

externalGearRatio

Необязательный параметр. Передаточное число, используемое для регулировки приводных расстояний, если используются шестерни. Может быть integer или десятичной дробью (floatс плавающей запятой). Значение по умолчанию — 1,0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a drivetrain with default values
drivetrain = DriveTrain(left_motor, right_motor)

# Create the motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = DriveTrain(left_motor, right_motor, 319.19, 295, 40, MM, 1)

SmartDrive#

SmartDrive создает трансмиссию, сконфигурированную с инерциальным датчиком, датчиком GPS или гироскопическим датчиком.

Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Параметр

Описание

lm

Левая двигательная или двигательная группа.

rm

правый двигатель или группа двигателей.

g

The Inertial Sensor, GPS Sensor, or Gyro Sensor used by the drivetrain.

wheelTravel

Необязательный параметр. Окружность колес трансмиссии. Значение по умолчанию — 300 миллиметров.

trackWidth

Дополнительно. Расстояние между левым и правым колесами. По умолчанию — 320 миллиметров.

wheelBase

Дополнительно. Расстояние между передними и задними колесами. По умолчанию — 320 миллиметров.

units

Дополнительно. Единицы измерения для wheelTravel, trackWidthи wheelBase: MM (миллиметры, по умолчанию), INCHESили DistanceUnits.CM (сантиметры).

externalGearRatio

Необязательный параметр. Передаточное число, используемое для регулировки приводных расстояний, если используются шестерни. Может быть integer или десятичной дробью (floatс плавающей запятой). Значение по умолчанию — 1,0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)


# Create a drivetrain with default values
drivetrain = SmartDrive(left_motor, right_motor, gyro_a)

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = SmartDrive(left_motor, right_motor, gyro_a, 319.19, 295, 40, MM, 1)