Примеры работы с элементами PowerBoard
Плата питания PowerBoard позволяет работать с пользовательскими элементами управления, такими как кнопки и пищалка. Обмен данными с платой осуществляется по CAN, при этом внутри используется Cyphal поверх FDCAN.
Информация о доступных паблишерах, сервисах и их идентификаторах портов приведена в README репозитория PowerBoard на GitHub: https://github.com/VBCores/VBCore_PowerBoard
Важно:
- ID ноды PowerBoard по умолчанию — 9
- Взаимодействие с платой возможно:
- напрямую по Cyphal;
- либо через ROS 2 с использованием пакета cyphal_ros2_bridge.
В данном разделе мы рассмотрим примеры прямого взаимодействия с PowerBoard через Cyphal, используя утилиту Yakut.
Необходимая подготовка
Перед тем как переходить к примерам, рекомендуется ознакомиться с основами протокола Cyphal и инструментом Yakut. Это особенно важно, если вы разрабатываете робототехническую систему с несколькими устройствами, обменивающимися данными по CAN — в таких системах Cyphal существенно упрощает интеграцию и отладку. Полезные материалы:
- Что такое Cyphal и зачем он нужен https://docs.vbcores.ru/docs/Cyphal/cyphal-can
- Инструкция к установке Yakut https://docs.vbcores.ru/docs/Cyphal/yakut
- Примеры использования основных команд Yakut https://docs.vbcores.ru/docs/Cyphal/commands-yakut
После установки необходимого ПО и знакомства с базовыми принципами работы Cyphal можно переходить к практическим примерам.
Доступные сервисы и паблишеры PowerBoard
В README репозитория PowerBoard приведён список активных сервисов и паблишеров. Пример того, как эта информация может выглядеть, показан на скриншоте ниже:

Получение состояния батареи
Чтобы получить информацию о состоянии батареи, необходимо подписаться на соответствующий порт.
Для этого используем команду sub, указав ID порта и тип сообщения:
y sub 7993:voltbro.battery.state
После выполнения команды данные о состоянии батареи будут выводиться в терминал в реальном времени.
Управление подсветкой кнопок
Для управления цветом подсветки кнопок используется сервис led_service, который расположен на порту 172.
Напомним, что ID ноды PowerBoard по умолчанию равен 9 (если параметр node_id не был изменён).
Пример вызова сервиса для изменения цвета кнопки:
y call 9 172:voltbro.hmi.led_service '{interface: 1, r: 255, g: 0, b: 255}'
Параметры запроса:
- interface — номер кнопки (0 или 1);
- r, g, b — значения компонентов цвета в формате RGB (от 0 до 255).
После выполнения команды цвет подсветки выбранной кнопки изменится согласно заданным значениям.
Управление пищалкой
Помимо кнопок, PowerBoard позволяет управлять пищалкой (beeper) с помощью сервисного вызова. Для этого используется сервис beeper_service, расположенный на порту 258. Пример вызова сервиса:
y call 9 258:voltbro.hmi.beeper_service '{ frequency: 1, duration: 1}'
Параметры запроса:
- frequency — частота звукового сигнала (условная величина, задающая тон сигнала);
- duration — длительность звукового сигнала в секундах.
После выполнения команды пищалка издаст звуковой сигнал с заданной частотой и продолжительностью. Такой способ управления удобен, например, для:
- индикации событий (включение питания, ошибка, нажатие кнопки);
- отладки логики работы устройства;
- подачи простых звуковых уведомлений.