Трансмиссия#
Введение#
Робот VEX IQ (2-го поколения) использует трансмиссию для движения и поворотов. Трансмиссия состоит из двигателей и колес, которые работают вместе, чтобы перемещать робота.
В сконфигурированной трансмиссии может использоваться подключенный гироскопический датчик, встроенный в «Мозг» инерциальный датчик или не использоваться ни один датчик. При использовании датчика трансмиссия использует его для точного перемещения и поворота робота. В начале каждого проекта трансмиссия автоматически калибрует датчик. Во время калибровки удерживайте робота неподвижно около 2 секунд, чтобы он мог правильно двигаться и поворачивать.
На этой странице в качестве примера названия трансмиссии используется 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— Изменяет силу коррекции поворотов роботом.
Геттеры — Проверка статуса движения.
heading— Возвращает текущий курс робота от 0 до 359 градусов.rotation— Возвращает текущее вращение робота.velocity— Возвращает скорость движения робота.current— Возвращает значение электрического тока, потребляемого трансмиссией.is_moving— Возвращает значение логического значения, указывающее, движется ли робот.is_done— Возвращает значение логического значения, указывающее, завершил ли робот движение.is_turning— Возвращает значение логического значения, указывающее, поворачивается ли робот.power— Возвращает, как быстро трансмиссия расходует энергию.torque— Возвращает величину крутящего момента, используемого трансмиссией.efficiency— Возвращает, насколько эффективно трансмиссия использует мощность.temperature— Возвращает температуру трансмиссии.
Конструкторы — Создание и настройка трансмиссии вручную.
DriveTrain— Создает трансмиссию без гироскопического датчика или инерциального датчика.SmartDrive— Создает трансмиссию с гироскопическим датчиком или инерциальным датчиком.
Действия#
drive#
Привод drive перемещает робота вперед или назад бесконечно. Робот будет продолжать движение, пока ему не будет дано другое действие, например, поворот или остановка.
Usage:
drivetrain.drive(direction, velocity, units)
Параметры |
Описание |
|---|---|
|
Направление движения робота: |
|
Необязательно. Скорость вращения от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Drive slowly in reverse then stop
drivetrain.drive(REVERSE, 20, PERCENT)
wait(2, SECONDS)
drivetrain.stop()
drive_for#
drive_for перемещает робота вперед или назад на определенное расстояние. Проект будет ждать, пока робот не завершит движение, прежде чем будет выполнена следующая строка кода.
Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)
Параметры |
Описание |
|---|---|
|
Направление движения робота: |
|
Расстояние, которое проезжает робот. Это может быть целое число |
|
Необязательно. Единица измерения расстояния: |
|
Необязательно. Скорость вращения от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
|
Необязательно. |
# Drive forward and backward
drivetrain.drive_for(FORWARD, 10)
drivetrain.drive_for(REVERSE, 10)
# Quickly drive forward and backward
drivetrain.drive_for(FORWARD, 200, MM, 100, PERCENT)
drivetrain.drive_for(REVERSE, 200, MM, 100, PERCENT)
turn#
turn поворачивает робота влево или вправо бесконечно. Робот будет продолжать поворачивать, пока ему не будет дано другое действие, например, движение или остановка.
Usage:
drivetrain.turn(direction, velocity, units)
Параметры |
Описание |
|---|---|
|
Направление поворота робота: |
|
Необязательно. Скорость поворота от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()
# Quickly turn right and left, then stop
drivetrain.turn(RIGHT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.turn(LEFT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.stop()
turn_for#
turn_for поворачивает робота влево или вправо на определенное количество градусов или поворотов. Поворот осуществляется относительно текущего положения робота. Проект будет ждать, пока робот не завершит поворот, прежде чем будет выполнена следующая строка кода.
Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)
Параметры |
Описание |
|---|---|
|
Направление поворота робота: |
|
Величина поворота робота. Это может быть целое число |
|
Дополнительно. Единица измерения поворота: |
|
Необязательно. Скорость поворота от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
|
Необязательно. |
# Turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES)
# Quickly turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES, 100, PERCENT)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES, 100, PERCENT)
turn_to_heading#
Направление движения — это направление, в котором смотрит робот, измеряемое в градусах. turn_to_heading поворачивает робота, чтобы тот смотрел в определенном направлении от -359 до 359 градусов. Робот повернется по кратчайшему направлению, чтобы достичь целевого направления.
Начальный курс робота составляет 0 градусов.
Проект будет ждать, пока робот не завершит вращение, прежде чем запустится следующая строка кода.
Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)
Параметры |
Описание |
|---|---|
|
Направление, в котором должен быть повернут робот, в градусах. Это может быть целое число |
|
Необязательно. Единица измерения заголовка: |
|
Необязательно. Скорость поворота от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
|
Необязательно. |
# 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.
Проект будет ждать, пока робот не завершит вращение, прежде чем запустится следующая строка кода.
Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)
Параметры |
Описание |
|---|---|
|
Величина поворота в градусах или оборотах, на которую будет поворачиваться робот. Это может быть целое число |
|
Дополнительно. Единица измерения вращения: |
|
Необязательно. Скорость поворота от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
|
Необязательно. |
# 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)
Параметры |
Описание |
|---|---|
|
Дополнительно. Способ остановки робота:
|
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Drive forward and coast to a stop
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop(COAST)
calibrate_drivetrain#
calibrate_drivetrain — это встроенная функция, которая калибрует гироскопический датчик или инерциальный датчик, сконфигурированный с трансмиссией.
Калибровка помогает датчику правильно измерять движение. Во время калибровки удерживайте робота неподвижно около 2 секунд. Если робот будет двигаться во время калибровки, датчик может неправильно измерить движение.
Проект будет ждать завершения калибровки, прежде чем запустится следующая строка кода.
Примечание: Эту функцию нельзя использовать внутри VS Code.
Usage:
calibrate_drivetrain()
Параметры |
Описание |
|---|---|
Эта функция не имеет параметров. |
Мутаторы#
set_drive_velocity#
Параметр set_drive_velocity указывает роботу, с какой скоростью он должен двигаться. Более высокое значение в процентах увеличивает скорость движения робота, а более низкое — уменьшает.
Каждый проект начинается с того, что робот по умолчанию движется со скоростью, составляющей 50% от максимальной.
Примечание: Более высокая скорость приводит к более быстрому движению робота, но может снизить точность. Более низкая скорость приводит к более медленному движению робота, но может повысить точность.
Usage:
drivetrain.set_drive_velocity(velocity, units)
Параметры |
Описание |
|---|---|
|
Скорость вращения от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
# Drive forward at different velocities
# Default velocity
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
set_turn_velocity#
Параметр set_turn_velocity указывает роботу, с какой скоростью он должен поворачиваться. Более высокое значение в процентах приводит к более быстрому повороту робота, а более низкое — к более медленному.
Каждый проект начинается с того, что робот по умолчанию вращается со скоростью, составляющей 50% от его обычной скорости.
Примечание: Более высокая скорость приводит к более быстрому повороту робота, но может быть менее точной. Более низкая скорость приводит к более медленному повороту робота, но может быть более точной.
Usage:
drivetrain.set_turn_velocity(velocity, units)
Параметры |
Описание |
|---|---|
|
Скорость вращения от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
# Turn at different velocities
# Default velocity
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 360)
set_stopping#
set_stopping задает способ остановки робота: торможение, движение по инерции или удержание.
Usage:
drivetrain.set_stopping(mode)
Параметры |
Описание |
|---|---|
|
Как робот остановится:
|
Если этот метод не используется, робот будет применять BRAKE при остановке.
set_timeout#
Параметр set_timeout задает время, в течение которого робот будет пытаться завершить движение. Если робот не сможет завершить движение за это время, он прекратит попытки и перейдет к следующей строке кода. Это предотвращает застревание робота на определенном этапе движения.
Usage:
drivetrain.set_timeout(value, units)
Параметры |
Описание |
|---|---|
|
Время, в течение которого робот может попытаться завершить движение. Это может быть положительное число |
|
Необязательно. Единица времени: |
# Turn right after driving forward
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)
set_heading#
Направление движения — это направление, в котором смотрит робот, измеряемое в градусах. set_heading изменяет текущее направление движения робота на новое значение.
Например, если робот повернулся вправо, установка направления на 0 градусов делает это положение, в котором робот повернулся вправо, новым значением 0 градусов. Затем робот может поворачиваться в другие положения, основываясь на этом новом направлении.
Usage:
drivetrain.set_heading(heading, units)
Параметры |
Описание |
|---|---|
|
Значение курса в градусах или поворотах, которое необходимо задать для робота. Это может быть целое число |
|
Необязательно. Единица измерения заголовка: |
# 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 градусов. Затем робот сможет совершать повороты, исходя из этого нового значения.
Usage:
drivetrain.set_rotation(rotation, units)
Параметры |
Описание |
|---|---|
|
Значение поворота в градусах или оборотах, которое необходимо задать для робота. Это может быть целое число |
|
Дополнительно. Единица измерения вращения: |
# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
set_turn_threshold#
set_turn_threshold устанавливает, насколько близко робот должен приблизиться к целевому углу, прежде чем поворот будет завершен.
Меньший пороговый уровень может сделать повороты более точными, но роботу может потребоваться больше времени для завершения поворота. Больший пороговый уровень может сделать повороты более быстрыми, но они могут быть менее точными.
Usage:
drivetrain.set_turn_threshold(value)
Параметры |
Описание |
|---|---|
|
Порог поворота в градусах. Это может быть целое число |
# Set the turn threshold to 5 degrees
drivetrain.set_turn_threshold(5)
set_turn_constant#
Параметр set_turn_constant изменяет силу коррекции поворотов роботом.
Более высокое значение заставляет робота корректировать повороты сильнее. Более низкое значение заставляет робота корректировать повороты более плавно. Значение по умолчанию — 1,0.
Usage:
drivetrain.set_turn_constant(value)
Параметры |
Описание |
|---|---|
|
Постоянная поворота. Может быть десятичным числом ( |
# Increase the turn constant to 2.0
drivetrain.set_turn_constant(2.0)
Геттеры#
heading#
Направление движения — это то, в каком направлении смотрит робот, измеряемое в градусах. heading возвращает текущее направление движения робота от 0 до 359 градусов.
Начальный курс робота составляет 0 градусов.
Usage:
drivetrain.heading(units)
Параметры |
Описание |
|---|---|
|
Необязательно. Единица измерения для возврата курса: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading())
rotation#
Вращение — это величина поворота робота, измеряемая в градусах или оборотах. В начале проекта значение вращения устанавливается равным 0 градусам. rotation возвращает текущее вращение робота.
Поворот вправо увеличивает угол поворота, а поворот влево уменьшает его. Например, два полных оборота вправо вернут 720 градусов.
Usage:
drivetrain.rotation(units)
Параметры |
Описание |
|---|---|
|
Необязательно. Единица измерения для возврата вращения: |
# 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 from -127 rpm to 127 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)
Параметры |
Описание |
|---|---|
|
Необязательно. Единица измерения скорости: |
current#
current возвращает величину электрического тока, потребляемого трансмиссией, измеряемую в амперах. Ток — это количество электричества, протекающего через трансмиссию.
Более высокое значение тока означает, что привод потребляет больше электроэнергии. Это может произойти, когда робот толкает объект или пытается переместиться, застряв.
Это можно использовать для проверки того, испытывает ли трансмиссия трудности во время движения. Если ток остается высоким, трансмиссия может нагреваться или потреблять энергию менее эффективно.
Usage:
drivetrain.current(units)
Параметры |
Описание |
|---|---|
|
Необязательно. Единица измерения тока: |
is_moving#
is_moving` возвращает значение логического типа (Boolean), указывающее, движется ли робот. Это можно использовать для управления временем выполнения других действий в зависимости от движения робота.
True— Робот движется.False— Робот не движется.
Этот метод работает совместно со следующими методами Drivetrain, имеющими параметр wait : drive_for, turn_for, turn_to_heading и turn_to_rotation.
Usage:
drivetrain.is_moving()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
is_done#
is_done возвращает значение логического типа (Boolean), указывающее, завершил ли робот движение. Это можно использовать для управления временем выполнения других действий в зависимости от движения робота.
True— Робот завершил движение.False— Робот всё ещё движется.
Этот метод работает совместно со следующими методами Drivetrain, имеющими параметр wait : drive_for, turn_for, turn_to_heading и turn_to_rotation.
Usage:
drivetrain.is_done()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
is_turning#
is_turning` возвращает значение логического типа (Boolean), указывающее, поворачивается ли робот. Это можно использовать для управления временем выполнения других действий в зависимости от движения робота.
True— Робот вращается.False— Робот не поворачивается.
Этот метод работает совместно со следующими методами Drivetrain, имеющими параметр wait : turn_for, turn_to_heading и turn_to_rotation.
Usage:
drivetrain.is_turning()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
power#
power мощность, потребляемая трансмиссией, измеряемая в ваттах. Мощность показывает, как быстро трансмиссия расходует энергию.
Более высокое значение мощности означает, что трансмиссия расходует энергию быстрее. Это может происходить, когда робот толкает объект или пытается переместиться, застряв.
Это можно использовать для сравнения движений или проверки того, не испытывает ли трансмиссия перегрузки. Если мощность остается высокой, трансмиссия может нагреваться или потреблять энергию менее эффективно.
Usage:
drivetrain.power()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
torque#
Крутящий момент показывает, насколько сильно трансмиссия может толкать или тянуть при вращении колес.
Значение torque возвращает величину крутящего момента, потребляемого трансмиссией, измеряемую в ньютон-метрах (Нм) или дюйм-фунтах (InLb).
Более высокое значение крутящего момента означает, что приводная система работает с большей силой. Это может происходить, когда робот толкает объект или пытается переместиться, если он застрял.
Это можно использовать для проверки того, испытывает ли трансмиссия трудности, или для сравнения того, какое усилие требуется для выполнения различных движений.
Usage:
drivetrain.torque(units)
Параметры |
Описание |
|---|---|
|
Дополнительно. Единица измерения крутящего момента: |
efficiency#
Показатель эффективности efficiency отражает эффективность использования мощности трансмиссией в процентах от 0% до 100%.
Показатель эффективности демонстрирует, какая часть мощности трансмиссии используется для движения. Более высокое значение эффективности означает, что большая часть мощности трансмиссии используется для движения. Более низкое значение эффективности может наблюдаться, когда трансмиссия работает с большой нагрузкой, но мало перемещается, например, когда робот застрял или толкает какой-либо объект.
Это можно использовать для сравнения движений или проверки того, не расходует ли трансмиссия энергию впустую вместо того, чтобы использовать ее для движения.
Usage:
drivetrain.efficiency()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
temperature#
Параметр temperature возвращает среднюю температуру трансмиссии в выбранной температурной единице.
Температура показывает, насколько сильно нагрелись двигатели трансмиссии. Более высокая температура означает, что двигатели нагреваются во время работы. Для обеспечения полной производительности температура двигателей должна оставаться ниже 55°C.
Если двигатели перегреются, они снизят максимальный ток для самозащиты. При температуре 70°C двигатели прекратят работу до тех пор, пока не остынут.
Это можно использовать для проверки того, не перегревается ли трансмиссия во время многократных движений, длительных поездок или при соприкосновении с каким-либо объектом.
Usage:
drivetrain.temperature(units)
Параметры |
Описание |
|---|---|
|
Необязательно. Единица измерения температуры: |
Строители#
Конструкторы используются для создания в коде DriveTrain и SmartDrive Это полезно при настройке трансмиссии без использования окна «Устройства».
Перед созданием трансмиссии необходимо создать как минимум два объекта Motor или MotorGroup.
DriveTrain#
DriveTrain создает трансмиссию без гироскопического датчика или инерциального датчика.
Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
Параметр |
Описание |
|---|---|
|
Левая двигательная или двигательная группа. |
|
правый двигатель или группа двигателей. |
|
Необязательный параметр. Окружность колес трансмиссии. Значение по умолчанию — 300 миллиметров. |
|
Дополнительно. Расстояние между левым и правым колесами. По умолчанию — 320 миллиметров. |
|
Дополнительно. Расстояние между передними и задними колесами. По умолчанию — 320 миллиметров. |
|
Дополнительно. Единицы измерения для |
|
Необязательный параметр. Передаточное число, используемое для регулировки приводных расстояний, если используются шестерни. Может быть |
# Create left and right drive motor objects
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT2, 1.0, True)
'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)
# Create two motor group objects for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)
right_motor_a = Motor(Ports.PORT3, 1.0, True)
right_motor_b = Motor(Ports.PORT4, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)
'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)
SmartDrive#
SmartDrive создает трансмиссию с гироскопическим датчиком или инерциальным датчиком.
Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
Параметр |
Описание |
|---|---|
|
Левая двигательная или двигательная группа. |
|
правый двигатель или группа двигателей. |
|
The Gyro Sensor or Inertial Sensor used by the drivetrain. |
|
Необязательный параметр. Окружность колес трансмиссии. Значение по умолчанию — 300 миллиметров. |
|
Дополнительно. Расстояние между левым и правым колесами. По умолчанию — 320 миллиметров. |
|
Дополнительно. Расстояние между передними и задними колесами. По умолчанию — 320 миллиметров. |
|
Дополнительно. Единицы измерения для |
|
Необязательный параметр. Передаточное число, используемое для регулировки приводных расстояний, если используются шестерни. Может быть |
# Create the Inertial Sensor
brain_inertial = Inertial()
# Make left and right drive motors
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)
# Create a SmartDrive object with wheelTravel 200
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)
При создании интеллектуальной трансмиссии с несколькими двигателями необходимо сначала создать двигатели по отдельности, а затем сгруппировать их в группу.
# Create the Inertial Sensor
brain_inertial = Inertial()
# Create two motor groups for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)
right_motor_a = Motor(Ports.PORT5, 1.0, True)
right_motor_b = Motor(Ports.PORT6, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)
# Create a SmartDrive object with wheelTravel 200 mm
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)