Інерційний#
Вступ#
Інерційний датчик вимірює, як рухається та повертається робот.
Інерціальний датчик використовує для цього дві частини. Гіроскоп вимірює повороти, такі як напрямок, обертання, швидкість гіроскопа та орієнтація. Акселерометр вимірює зміни в русі, такі як прискорення або уповільнення вздовж осей x, y та z.
Щоб інерціальні команди відображалися у VEXcode V5, інерціальний датчик необхідно налаштувати у вікні «Пристрої».
Нижче наведено список доступних методів:
Орієнтація — Зчитування та керування напрямком, обертанням і калібруванням датчика.
heading— Повертає напрямок, у якому спрямований датчик, від 0 до 359,99 градусів.rotation— Повертає, на скільки повернувся датчик.gyro_rate— Повертає швидкість обертання датчика на вибраній осі.orientation— Повертає кут крену, тангажу або рискання інерціального датчика.set_heading— Встановлює поточний курс інерціального датчика на нове значення курсу.set_rotation— Встановлює поточне обертання інерційного датчика на нове значення обертання.calibrate— Калібрує інерціальний датчик.reset_heading— Скидає поточний курс інерціального датчика до 0 градусів.reset_rotation— Скидає поточне обертання інерційного датчика до 0 градусів.is_calibrating— Повертає, чи калібрується інерційний датчик.changed— Реєструє функцію, яка запускається при зміні значення інерційного датчика.installed— Перевіряє, чи встановлено інерційний датчик.
Рух — Вимірювання прискорення, зіткнень та напрямку повороту.
acceleration— Повертає швидкість прискорення або сповільнення датчика на вибраній осі.collision— Реєструє функцію, яка запускається, коли інерційний датчик виявляє зіткнення.set_turn_type— Встановлює напрямок повороту, який повертає позитивні значення курсу.get_turn_type— Повертає напрямок повороту, який повертає позитивні значення курсу.
Конструктор
Inertial– Створює інерціальний датчик.
Орієнтація#
heading#
Курс – це напрямок, у якому спрямований датчик, виміряний у градусах від 0 до 359,99. heading повертає поточний курс датчика у вигляді числа з плаваючою комою.
Початковий курс становить 0 градусів. Якщо датчик повертається за межі 359,99 градусів, курс повертається до 0 градусів.
Usage:
inertial_1.heading(units)
Параметри |
Опис |
|---|---|
|
Необов’язково. Одиниця вимірювання курсу: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.heading())
rotation#
Обертання – це кут повороту датчика, виміряний у градусах. На відміну від напрямку, обертання може збільшуватися понад 359,99 градусів або зменшуватися нижче 0 градусів. На початку проекту значення обертання встановлюється на 0 градусів. rotation повертає поточне обертання інерційного датчика у вигляді числа з плаваючою комою.
Поворот праворуч збільшує обертання, а поворот ліворуч зменшує. Наприклад, два повні обертки праворуч повернуть обертання на 720 градусів. Поворот на один повний оберт ліворуч від 0 градусів поверне обертання на -360 градусів.
Usage:
inertial_1.rotation(units)
Параметри |
Опис |
|---|---|
|
Додатково. Одиниця вимірювання обертання: |
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.rotation())
gyro_rate#
Швидкість обертання гіроскопа – це швидкість обертання інерційного датчика. gyro_rate повертає поточну швидкість обертання інерційного датчика на вибраній осі у вигляді числа з плаваючою комою.
Значення може бути додатним або від’ємним залежно від напрямку обертання датчика на цій осі.
Usage:
inertial_1.gyro_rate(axis, units)
Параметри |
Опис |
|---|---|
|
Вісь, з якої повертається швидкість гіроскопа:
|
|
Необов’язково. Одиниця вимірювання швидкості гіроскопа:
|
# Display the rate of change of
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(inertial_1.gyro_rate(AxisType.ZAXIS, VelocityUnits.DPS))
drivetrain.stop()
orientation#
Орієнтація – це поточний кут інерційного датчика на вибраній осі повороту. orientation повертає крен, тангаж або рискування інерційного датчика від -180,00 до 180,00 градусів у вигляді числа з плаваючою котушкою.
Крен, тангаж та риськання описують різні способи нахилу або повороту датчика.
Usage:
inertial_1.orientation(type, units)
Параметри |
Опис |
|---|---|
|
Кут орієнтації, який потрібно повернути:
|
|
Необов’язково. Одиниця орієнтації:
|
# Display the roll, pitch, and yaw of the Brain as it
# is rotated by hand
while True:
brain.screen.clear_screen()
brain.screen.print(inertial_1.orientation(AxisType.ROLL, DEGREES))
brain.screen.next_row()
brain.screen.print(inertial_1.orientation(AxisType.PITCH, DEGREES))
brain.screen.next_row()
brain.screen.print(inertial_1.orientation(AxisType.YAW, DEGREES))
brain.screen.next_row()
brain.screen.set_cursor(1, 1)
wait(0.1, SECONDS)
set_heading#
Курс – це напрямок, у якому спрямований датчик, вимірюється в градусах від 0 до 359,99. set_heading змінює поточний курс інерціального датчика на нове значення курсу.
Наприклад, якщо датчик повернувся праворуч, встановлення курсу на 0 градусів робить це положення праворуч новим 0 градусами. Тоді датчик може відстежувати інші курси на основі цього нового напрямку.
Usage:
inertial_1.set_heading(value, units)
Параметри |
Опис |
|---|---|
|
Значення курсу в градусах, яке потрібно встановити для датчика. Це може бути значення від 0 до 359,99. |
|
Необов’язково. Одиниця вимірювання курсу: |
# Turn the robot around
inertial_1.set_heading(180, DEGREES)
drivetrain.turn_to_heading(0)
set_rotation#
Обертання – це кут повороту датчика, виміряний у градусах. На відміну від напрямку, обертання може збільшуватися понад 359,99 градусів або зменшуватися нижче 0 градусів. На початку проекту значення обертання встановлюється на 0 градусів. set_rotation змінює поточне обертання інерційного датчика на нове значення.
Наприклад, якщо датчик зробив два повних обертів праворуч, значення його обертання становитиме 720 градусів. Встановлення обертання на 0 градусів скине це обертання з 720 до 0 градусів. Потім датчик зможе відстежувати обертання на основі цього нового значення.
Usage:
inertial_1.set_rotation(value, units)
Параметри |
Опис |
|---|---|
|
Значення повороту в градусах, яке потрібно встановити для датчика. Це може бути ціле або десяткове число (число з плаваючою комою). |
|
Додатково. Одиниця вимірювання обертання: |
# Turn the robot around
inertial_1.set_rotation(-180, DEGREES)
drivetrain.turn_to_rotation(0)
calibrate#
calibrate калібрує інерціальний датчик.
Калібрування допомагає датчику правильно вимірювати повороти. Тримайте датчик нерухомо під час калібрування. Якщо датчик рухається під час калібрування, значення курсу, обертання, швидкості гіроскопа та орієнтації можуть вимірюватися неправильно.
Проєкт чекатиме на завершення калібрування, перш ніж буде виконано наступний рядок коду.
Usage:
inertial_1.calibrate()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Start calibration.
inertial_1.calibrate()
# Print that the Inertial Sensor is calibrating while
# waiting for it to finish calibrating.
while inertial_1.is_calibrating():
brain.screen.clear()
brain.screen.print("Inertial Sensor Calibrating")
wait(50, MSEC)
reset_heading#
reset_heading скидає поточний курс інерціального датчика до 0 градусів.
Після використання цього методу поточний напрямок датчика стає новим курсом 0 градусів.
Usage:
inertial_1.reset_heading()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
reset_rotation#
reset_rotation скидає поточне обертання інерціального датчика до 0 градусів.
Після використання цього методу датчик відстежує майбутні повороти, виходячи з нового значення повороту 0 градусів.
Usage:
inertial_1.reset_rotation()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
is_calibrating#
is_calibrating повертає, чи калібрується інерціальний датчик на даний момент.
True— Інерційний датчик калібрується.False— Інерційний датчик не калібрується.
Usage:
inertial_1.is_calibrating()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
changed#
changed реєструє функцію, яка викликається щоразу, коли змінюється значення інерціального датчика.
Usage:
inertial_1.changed(callback, arg)
Параметри |
Опис |
|---|---|
|
Раніше визначена функція, яка виконується при зміні значення інерційного датчика. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання функцій з параметрами для отримання додаткової інформації. |
def my_function():
brain.screen.print("Value changed!!")
# Call my_function whenever inertial_1's value changes
inertial_1.changed(my_function)
installed#
installed перевіряє, чи встановлено інерціальний датчик.
True— Інерційний датчик встановлено.False— Інерційний датчик не встановлено.
Usage:
inertial_1.installed()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
Рух#
acceleration#
Прискорення – це швидкість прискорення або сповільнення датчика. acceleration повертає прискорення інерційного датчика на вибраній осі від -4,0 G до 4,0 G у вигляді числа з плаваючою комою.
G — це одиниця вимірювання прискорення. 1 G — це прискорення, яке ви відчуваєте від сили тяжіння, сидячи нерухомо.
Значення може бути додатним або від’ємним залежно від напрямку прискорення на вибраній осі. Варіанти осей: AxisType.XAXIS, AxisType.YAXISта AxisType.ZAXIS.
Usage:
inertial_1.acceleration(type)
Параметри |
Опис |
|---|---|
|
Вісь для вимірювання прискорення:
|
# Return the acceleration for the Z axis of the Inertial Sensor
zaccel = inertial_1.acceleration(AxisType.ZAXIS)
collision#
collision реєструє функцію, яка викликається щоразу, коли інерційний датчик виявляє раптовий удар або зіткнення.
Usage:
inertial_1.collision(callback, arg)
Параметри |
Опис |
|---|---|
|
Раніше визначена функція, яка виконується при виявленні колізії. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання функцій з параметрами для отримання додаткової інформації. |
def my_function():
brain.screen.print("Collision!")
# Call my_function whenever a collision is detected
inertial_1.collision(my_function)
set_turn_type#
set_turn_type встановлює, який напрямок повороту повертає позитивні значення курсу.
Usage:
inertial_1.set_turn_type(turntype)
Параметри |
Опис |
|---|---|
|
Тип повороту, який потрібно встановити:
|
get_turn_type#
get_turn_type повертає напрямок повороту, який повертає додатні значення курсу.
LEFT— Повороти ліворуч повертають позитивні значення курсу.RIGHT— Повороти праворуч повертають позитивні значення курсу.
Usage:
inertial_1.get_turn_type()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
Конструктори#
Inertial#
Inertial створює інерційний датчик.
Usage:
Inertial(port)
Параметри |
Опис |
|---|---|
|
Розумний порт, до якого підключено інерціальний датчик, від 1 до 21. |
# Create a new object "inertial_1" with the Inertial class.
inertial_1 = Inertial(Ports.PORT1)