Promobot Education

Logo

Платформы

RoboxКомплект из сервопривода и датчика расстояния

RookyРука-манипулятор

V.4Лабораторный стенд Promobot

Программное обеспечение

RRStudioПростое написание алгоритмов

TestDevicesТестирование оборудования и проверка связи

Настройка WSL2Windows Subsystem for Linux

Поддержка

TelegramНаписать в чат технической поддержки


Перейти в профиль на GitHub

Сервопривод

servo

Сервопривод является высокопроизводительным исполнительным механизмом, разработанным специально для нужд робототехники. Данный сервопривод может использоваться для создания подвижных механизмов повышенной сложности, например, роботов-манипуляторов, pan-tilt модулей и т.п.

Основные характеристики сервопривода:  
Микроконтроллер ARM CORTEX-M3 (72 [MHz], 32Bit)
Датчик положения 14 бит AS5047
Алгоритм контроля 2-х контурное подчиненное ПИД-регулирование
Обратная связь Положение, скорость, ток
Напряжение питания 12 В
Ном. потребление (без нагрузки) 125 мА
Ном. потребление (удержание) 2.5 А
Крутящий момент удержания (12 В) 30.21 кг/см
Передаточное соотношение 1:32
Скорость холостого хода (12 В) 40 об./мин.

Структура типового взаимодействия с сервоприводом:

motor_struct

Структура регулятора сервопривода:

motor_control

ℹ️ Описание библиотек и примеров работы

Описание регистров сервопривода

Номер
Название
Описание
Формат
Чтение/запись
0 Адрес modbus
int R/W
1 Скорость modbus Табличная скорость порта делённая на 600 int R/W
3 Настроечный регистр Регистр отвечающий за настройки сервопривода int R/W
10 Регистр PID Speed P Настройка коэффициента P PID регулятора скорости float R/W
12 PID Speed I Настройка коэффициента I PID регулятора скорости float R/W
14 PID Speed D Настройка коэффициента D PID регулятора скорости float R/W
16 PID Pos P Настройка коэффициента P PID регулятора позиции float R/W
18 PID Pos I Настройка коэффициента I PID регулятора позиции float R/W
20 PID Pos D Настройка коэффициента D PID регулятора позиции float R/W
22 Speed limit Предельное значение скорости вращения вала в об/мин float R/W
40 Регистр команд Команды управления сервоприводом int (hex) R/W
41 Включение питания (torque) Включения питания сервовприводов int R/W
42 "Установка задачи" В зависимости от настройки ПИД регуляторов пишется задача для регулятора или просто ШИМ (0-1000) int R/W
45 Регистр ошибок Текущий статус сервопривода (ошибки) int R
47 Позиция сервопривода Текущее положение сервопривода, ticks int R
48 Скорость сервопривода Скорость вращения вала сервопривода, об/мин int R
49 Ток сервопривода Текущий потребляемый сервоприводом ток, мА int R

Описание настроек через настроечный регистр

Каждый бит регистра «Управление настройками» (4) отвечает за определенный функционал платы: Индекс бита(начиная с 0):

0 - Не используется
1 - Включение выключение пида по скорости
2 - Включение выключение пида по положению

Описание команд управления сервоприводом

Список возможных команд для записи в Регистр команд (40):

1 - «0xDEAD» команда перезагрузки платы.

2 - «0xAAAA» полностью размыкает обмотки от платы. По умолчанию, когда torque в нуле (регистр 41 = 0), обмотки замкнуты друг на друга для торможения.

3 - «0xACDC» разрешает запись в ЕЕПРОМ единично, после записи одного из регистров сбрасывается.

Описание ошибок

Каждый бит регистра «Регистр ошибок» (45) отвечает за индикацию определенной ошибки:

0 - Ошибка связи.
1 - Отсутствие платы с датчиками холлов. Не подключена плата.

2 - Ошибка полярности двигателя, если ШИМ положительный, а скорость отрицательная, то выводится ошибка. 
    ПИД регуляторы при неправильной полярности работают не корректно.

3 - Ошибка по току. Появляется при превышении тока.

4 - Ошибка магнита. Появляется при неправильном зазоре (положении) магнита относительно датчика положения.

5 - Обрыв связи с датчиком AS5047 по SPI. 
    Может появляться при отсутствии платы внешнего датчика положения или при поломке платы.

6 - Ошибка DRV8302 fault. Появляется когда на пине драйвера управления двигателем ошибка. Пин fault в 0.

7 - Бит причины выключения регистра «Разрешения работы двигателя» (41). 
    При выключении через регистр остается в 0, при выключении двигателя по ошибке устанавливается в 1. 
    При разрешении работы двигателя устанавливается в 0.

8 - Бит необходим для контроля самопроизвольной перезагрузки устройства. 
    При разрешении работы двигателя устанавливается в 1 и сбрасывается только перезагрузкой устройства.