RGB лента
Под платой расположено 24 RGB светодиода модели WS2812
WS2812 — это три RGB-светодиода и микросхема-драйвер для управления этими светодиодами, собранные в одном SMD корпусе. Корпус каждого светодиода имеет 4 вывода: два вывода данных и два вывода питания. Выводы данных предыдущих светодиодов соединены со входами следующих, создавая цепочку светодиодов, управляемых через один пин микроконтроллера.
В новых роботах в Arduino DUE загружена демонстрационная прошивка работы с лентой. backlight_demo
Если переключатель D29 включен, то RGB-лента начинает работать в демо-режиме. Для отключения демо-режима необходимо выключить переключатель D29 и нажать на кнопку D15 для выключения всех светодиодов. Одновременная работа демо-режима и управления через ROS ленты невозможна.
Работа со светодиодной лентой через ROS
Управление светодиодной лентой возможно через топики
/backlight/all [std_msgs/msg/ColorRGBA]
Установить один цвет для всех светодиодов:
# Установить красный цвет всей ленты
ros2 topic pub /backlight/all std_msgs/msg/ColorRGBA 'r: 1.0
g: 0.0
b: 0.0
a: 1.0'
/backlight/array [turtlebro/msg/ColorRGBAArray]
Установить по отдельности цвет каждого светодиода, пример: ~/turtlebro_ws/src/turtlebro/scripts/leds.py
Работа со светодиодной лентой через Arduino
Лента подключена к пину D30 встроенного контроллера Arduino. Число светодиодов — 24. Для управления светодиодами мы рекомендуем использовать библиотеку FastLed.
Пример работы ленты backlight_demo
Управление lifecycle RGB-ленты
Если запущена нода (leds_lifecycle.launch.py) для демонстрации работы светодиодной ленты через ROS и python. Отключить работу демонстрации RGB-ленты можно, используя механизм lifecycle:
# Отключить демонстрацию
ros2 lifecycle set leds_lifecycle deactivate
# Включить демонстрацию
ros2 lifecycle set leds_lifecycle activate
или выключить загрузку ноды leds_lifecycle из запуска в файле turtlebro_ws/src/turtlebro/launch/turtlebro.xml
<!-- Убрать строчку -->
<include file="$(find-pkg-share turtlebro)/launch/leds_lifecycle.launch.py"/>