Трансмісія#

Вступ#

Робот 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

The direction the robot should face, in degrees. This can be an integer or decimal (float) from -359 to 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 повертає, чи завершив рух робот, у вигляді логічного значення. Це можна використовувати для керування часом інших дій на основі руху робота.

  • True — Робот завершив рух.

  • False — Робот все ще рухається.

Цей метод працює разом із наступними методами Drivetrain, які мають параметр wait : drive_for, turn_for, turn_to_heading та turn_to_rotation.

Usage:
drivetrain.is_done()

Параметри

Опис

Цей метод не має параметрів.

is_moving#

is_moving повертає інформацію про те, чи рухається робот, у вигляді логічного значення. Це можна використовувати для керування часом інших дій на основі руху робота.

  • 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 повертає швидкість руху робота.

Він може повертати швидкість у відсотках від -100% до 100%, у RPMабо у VelocityUnits.DPS (градусів за секунду). Додатне значення означає, що робот рухається вперед. Від’ємне значення означає, що робот рухається назад.

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 створює трансмісію без Інерціального датчика, GPS-датчика або Гіроскопічного датчика.

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

Інерційний датчик, GPS-датчик або Гіроскопічний датчик, що використовується трансмісією.

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)