Гірос#

Вступ#

Гіродатчик — це датчик руху, який виявляє обертання навколо однієї осі. Він може вимірювати, на скільки повернувся робот, що дозволяє йому відстежувати орієнтацію та напрямок руху.

На цій сторінці як приклад назви гіроскопічного датчика використовується drivetrain_gyro За потреби замініть її власною налаштованою назвою.

Нижче наведено список усіх доступних методів:

Дії — Калібрування або налаштування напрямку та обертання гіроскопа.

  • calibrate — Калібрує гіроскопічний датчик для стабільного відстеження курсу.

  • set_heading — Встановлює курс гіроскопа на задане значення.

  • set_rotation — Встановлює значення обертання гіроскопа.

  • reset_heading — Встановлює напрямок гіроскопа на 0.

  • reset_rotation — Встановлює обертання гіроскопа на 0.

Отримувачі — зчитують напрямок, обертання та стан гіроскопічного датчика.

  • heading — Повертає поточний заголовок.

  • rotation — Повертає кумулятивне обертання.

  • rate — Повертає кутову швидкість навколо осі x, y або z.

  • is_calibrating — Повертає, чи калібрується гіроскопічний датчик.

  • installed — Повертає, чи підключено гіроскопічний датчик до мозку.

Зворотний виклик — Запускає код, коли гіроскоп виявляє рух або зміну.

  • changed — Реєструє функцію, яка викликається, коли гіроскоп виявляє зміну.

Конструктори — ініціалізація та налаштування гіроскопічного датчика вручну.

  • Gyro — Створює гіроскопічний датчик.

Дії#

calibrate#

calibrate калібрує гіроскопічний датчик. Усі наступні рядки чекатимуть на завершення калібрування перед виконанням. Калібрування – це внутрішня процедура, яка вимірює та компенсує шум і дрейф датчика протягом заданого періоду. Протягом цього часу гіроскопічний датчик повинен залишатися повністю нерухомим (тобто на стабільній поверхні без будь-яких зовнішніх рухів). Рух під час калібрування призведе до неточних результатів.

Usage:
calibrate()

Параметр

Опис

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

# Start Gyro Sensor calibration
drivetrain_gyro.calibrate()
# Print after calibration
while drivetrain_gyro.is_calibrating():
    wait(0.1, SECONDS)
brain.screen.print("Done!")

set_heading#

set_heading встановлює напрямок гіроскопічного датчика на певне значення.

Usage:
set_heading(value, units)

Параметри

Опис

значення

Значення заголовка, яке потрібно встановити.

одиниці

Необов’язково. Одиниця вимірювання, що використовується для позначення нового курсу:

  • DEGREES (за замовчуванням)
  • TURNS
# Turn the robot around
drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)

set_rotation#

set_rotation встановлює обертання гіроскопа на певне значення.

Usage:
set_rotation(value, units)

Параметри

Опис

value

Значення заголовка, яке потрібно встановити.

units

Необов’язково. Одиниця вимірювання, що використовується для представлення нового значення обертання:

  • DEGREES (за замовчуванням)
  • TURNS
# Turn the robot around
drivetrain_gyro.set_rotation(-180)
drivetrain.turn_to_rotation(0)

reset_heading#

reset_heading скидає курс гіроскопічного датчика до 0.

Usage:
reset_heading()

Параметри

Опис

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

# Turn the robot before and after resetting the heading
drivetrain.turn_to_heading(90, DEGREES)
wait(0.5,SECONDS)
drivetrain_gyro.reset_heading()
drivetrain.turn_to_heading(90, DEGREES)

reset_rotation#

reset_rotation скидає обертання гіроскопа до 0.

Usage:
reset_rotation()

Параметри

Опис

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

# Turn the robot before and after resetting the rotation
drivetrain.turn_to_rotation(-90, DEGREES)
wait(0.5,SECONDS)
drivetrain_gyro.reset_rotation()
drivetrain.turn_to_rotation(-90, DEGREES)

Геттери#

heading#

heading повертає поточний напрямок гіроскопа.

Usage:
heading(units)

Параметри

Опис

units

Необов’язково. Одиниця вимірювання, що використовується для позначення курсу:

  • DEGREES (за замовчуванням)
  • TURNS
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.heading())

rotation#

rotation повертає поточне обертання гіроскопічного датчика.

Usage:
rotation(units)

Параметри

Опис

units

Необов’язково. Одиниця вимірювання, що використовується для позначення обертання:

  • DEGREES (за замовчуванням)
  • TURNS
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.rotation())

rate#

rate повертає поточну швидкість зміни обертання гіроскопа у вказаних одиницях вимірювання.

Usage:
rate(units)

Параметри

Опис

units

Необов’язково. Одиниця вимірювання, що використовується для позначення швидкості гіроскопа:

  • DPS (за замовчуванням)
  • RPM
  • PERCENT
# Display the rate of change of 
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(drivetrain_gyro.rate())
drivetrain.stop()

is_calibrating#

is_calibrating перевіряє, чи калібрується гіроскопічний датчик.

  • True — Гіроскоп калібрується.

  • False — Гіроскопічний датчик не калібрується.

Usage:
is_calibrating()

Параметр

Опис

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

# Start Gyro Sensor calibration.
drivetrain_gyro.calibrate()
# Print after calibration
while drivetrain_gyro.is_calibrating():
    wait(0.1, SECONDS)
brain.screen.print("Done!")

installed#

installed повертає логічне значення, яке вказує, чи підключено гіроскопічний датчик до мозку.

  • True — Гіроскопічний датчик підключений до мозку.

  • False — Гіроскопічний датчик не підключений до мозку.

Usage:
installed()

Параметри

Опис

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

# Display a message if the Gyro Sensor is
# installed.
if drivetrain_gyro.installed():
    brain.screen.print("Installed!")

Зворотний виклик#

changed#

changed реєструє функцію зворотного виклику для випадку зміни курсу гіроскопа.

Usage:
changed(callback, arg)

Параметри

Опис

callback

Функція зворотного виклику, яка викликається при зміні напрямку гіроскопічного датчика.

arg

Необов’язково. Кортеж аргументів для передачі функції зворотного виклику.

def gyro_changed():
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain_gyro.heading()) 
# Display the heading when the gyro detects a change
drivetrain.turn_for(RIGHT, 90, DEGREES, wait=False)
drivetrain_gyro.changed(gyro_changed)

Конструктори#

Конструктори використовуються для ручного створення об’єктів Gyro , які необхідні для налаштування датчика гіроскопа поза VEXcode.

Gyro#

Gyro створює гіроскопічний датчик.

Usage:
Gyro(smartport)

Параметр

Опис

smartport

Розумний порт, до якого підключено гіроскопічний датчик, записується як PORTx, де x – номер порту.

# Create the Brain
brain = Brain()
# When constructing Gyro Sensor "drivetrain_gyro" with a 
# SmartDrive "drivetrain"
drivetrain_gyro = Gyro(Ports.PORT1)
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, drivetrain_gyro, 200)

drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)