Программирование на Blockly
Документация по RoboIntellect SDK (RI SDK)
Функциональный RI SDK API исполнительных устройств

Вращение по импульсу с заданным таймером

RI_SDK_exec_RServoDrive_RotateByPulseOverTime

Описание метода

Вращение сервопривода определенное значением импульса до тех пор, пока не поступит команда остановки сервопривода, новая команда на вращение или пока не закончится таймер.

Image

Выполняет вращение сервопривода с направлением и скоростью заданным с помощью импульса в микросекундах (0-3000 мкс).

Размер рабочего диапазона для mg996r - по часовой стрелке 1020 мкс (от 400 до 1420 мкс), против часовой стрелки 1020 мкс (от 1540 до 2560 мкс). Максимальная скорость при вращении по часовой стрелке достигается при минимальном значении из рабочего диапазона, для вращения против часовой наоборот, минимальное значение из рабочего диапазона вращает сервопривод с минимальной скоростью. Для управляющего сигнала между диапазонами вращение не происходит.

Даже в рамках одной и той же модели сервопривода существует погрешность, допускаемая при производстве, которая приводит к тому, что рабочий диапазон длин импульсов отличается. Для точной работы каждый конкретный сервопривод должен быть откалиброван: путём экспериментов необходимо подобрать корректный диапазон, характерный именно для него. С помощью метода инициализации кастомного сервопривода вращения можно инициализировать сервопривод с откалиброванными характеристиками.

Блок может работать в синхронном или асинхронном режиме.

При синхронном режиме программа, которая вызвала данную функцию, сначала ожидает её выполнение, а потом продолжает вызовы других команд. При асинхронном режиме функция вызывается, но ожидания её завершения не происходит. Другие команды могут перекрыть её выполнение и функция не отработает.

Для своей работы блок поворота сервопривода использует метод библиотеки RISDK.

Примеры

В данном примере осуществляется вращение сервопривода по часовой стрелке с максимальной скоростью, соответствующее минимальному значению управляющего импульса для поворота по часовой стрелке (400 микросекунд). Вращение осуществляется в течении 5000 мкс т.е. 5 секунду.

Image

В результате работы программы может быть выведена такая строчка: « Сервопривод вращения №0 | Синхронно вращение по импульсу 400 мкс. c таймаутом 5000 мс. »

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

Image

В результате работы программы будут выведены такие строчки:

«Асинхронная группа действий "Вращение" началась. »
«Сервопривод вращения №0 | Асинхронно вращение по импульсу 400 мкс. c таймаутом 5000 мс. »
«Сервопривод вращения №0 | Остановлен. »
«Асинхронная группа действий "Вращение" закончилась. »


22 просмотров0 комментариев

Комментарии (0)

Для участия в обсуждении вы должны быть авторизованным пользователем
Разделы
Программирование на Blockly
Документация по RoboIntellect SDK (RI SDK)
Функциональный RI SDK API исполнительных устройств

Навигация

ВойтиРегистрация