Promobot Education

Logo

Платформы

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

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

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

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

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

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

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

Поддержка

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


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

Работа посредством ModBus

Состав сенсорной сети Modbus робототехнической системы «Промобот» образован 4 связанными каналами, распределение устройств по которым выполнено по функциональной принадлежности к определенным частям робота. Каждое устройство в modbus-сети имеет индивидуальный адрес.

address_mode

Состав устройств сети робототехнической системы показывает наличие преимущественно сервоприводов для управления движениями робота. Робот содержит плату для управления светодиодной матрицей «Лица». «Уши» робота снабжены специальной светодиодной лентой с многосегментными светодиодами.

Каждое устройство modbus-сети робота содержит определенное количество регистров различного назначения. Рассмотрим организацию регистров сервопривода. Устройства такого типа имеют типовую для «Промобот» структуру регистров. Состав устройства определен 57 регистрами. Основными для управления сервоприводом робота являются регистры с номерами 41, 42, 43, 46, 47, 48, 52. Назначение регистров показано в табл. 3. Каждый регистр имеет тип Holding register.

Рассмотрим расположение и назначение устройств modbus-сети.

register

Устройства правой руки робота:

Ведущим устройством на данном этапе работы является плата Main_Board с программным обеспечением Servo_control. Окно программы содержит следующие области:

servo_control

Для выполнения работы с сетью Modbus в полунатурном режиме следуйте инструкциям:

  1. Выполним подключение персонального компьютера к исполняющему компьютеру Main_Board робота.
    • Подключите робота к WiFi-точке доступа локальной сети лаборатории. Для этого используйте инструкции из руководства пользователя Promobot: на дисплее робота перейдите в меню настроек сети, выберете беспроводную сеть лаборатории и введите пароль, дождитесь вывода внешнего IP-адреса маршрутизатора робота.
    • Откройте на компьютере программу VNC Viewer и создайте подключение по IP-адресу маршрутизатора робота и номеру порта 9455. Используйте пароль mainboard для подключения к VNC-серверу.
  2. Отключим на роботе программное обеспечение мастера и запустим для работы в рамках лабораторной программу Servo_control.
    • Запустите командную оболочку bash и выполните команду отключения программного обеспечения мастера: sudo svc –d /etc/service/mboard Это необходимо, так как в сети может быть только одно устройство-мастер. Для отключения приложения используется ключ –d, для включения –u, рестарт -t. Если приложение было включено до работы, не забудьте после выполнения лабораторной работы снова запустить его.
    • Запустите пользовательскую программу мастер «Servo_control» через интерпретатор bash, предварительно сменив директорию:
      cd /home/student/lab/
      ./demo_control
      

Работа с Modbus-сетью в полунатурном режиме.

Начните изучение сервоприводов с наиболее безопасных устройств 21, 31.

Разберите форматы запросов Modbus RTU к ведомым устройствам сети. В качестве примера рассмотрите запрос на управление сервоприводом 31 левой руки, установление задания управления в 1000. Для управления сервоприводом необходимо сначала установить в 1 значение регистра 41 (значение разрешения работы двигателя) пакетом '1f 06 0029 0001 9A7C'. После этого можно выставлять уставку двигателю (регистр 42) 1000 запросом '1f 06 002A 03E8 AB02'. Обратите внимание, что программа в поле «Send packet» автоматически рассчитывает контрольную сумму CRC и ее вводить не нужно.

  1. Команда всего кольца (9) – задает режим работы всех светодиодов. Возможные режимы работы: 0 – выключение, 1 – включение, 2 – плавное включение и последующее горение, 3 – плавное выключение из включенного состояния, 4 – мигание.
  2. Период одного цикла (10) – задает время работы светодиодов. Период мигания, время плавного включения/выключения.
  3. Максимальная яркость (11,12,13) – задает максимальную яркость [0;100] (посредством широтно-импульсной модуляции, ЩИМ) для каждого цвета (красный, голубой, зеленый, RGB)) для всех светодиодов.
  4. Максимальная яркость сектора (16,19,22,25… 40) – задает максимальную яркость [0; 100] для каждого из 9 секторов светодиодной ленты.
  5. Показания сенсора (48) – показания с датчика прикосновения.

Алгоритм подразумевает необходимость конфигурирования параметров режима подсветки. Рассмотрим пример мигания красным цветом всей подсветки с периодом 2 с:

  1. Запись во все регистры «Максимальная яркость сектора» значение 60.
  2. Запись в регистр «Максимальная яркость» красного (регистр 11) – яркость красного цвета светодиодов 80.
  3. Запись в регистр «Период одного цикла» – период мигания (мс) 2000;
  4. Запись в регистр «Команда всего кольца» – цикличное мигание светодиодами (значение 4).
  5. Для остановки мигания записать в регистр «Команда всего кольца» значение 0.