Перейти к основному содержимому

Примеры работы с элементами 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 можно переходить к практическим примерам.

Доступные сервисы и паблишеры 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 — длительность звукового сигнала в секундах.

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

  • индикации событий (включение питания, ошибка, нажатие кнопки);
  • отладки логики работы устройства;
  • подачи простых звуковых уведомлений.