История одного маленького pet-проекта 🔮
Система предназначена для отображения изображений на квадратной светодиодной матрице в режиме реального времени. Благодаря обновлению в формате realtime
становится возможным воспроизведение потоковых изображений. Система позволяет управлять несколькими матрицами одновременно
При разработке системы её дизайн старался быть выполнен по принципам плагинной архитектуры. Есть ядро, осуществляющее основную бизнес логику - отрисовку изображения. В качестве ядра используются сервисы sender и matrix. А поверх них уже выстраиваются плагины
Сделано это было в угоду расширяемости, так как планируется реализовать несколько разных плагинов
Ядро скрывает за собой сложную бизнес логику по установке цвета на светодиод, предоставляя наружу простой интерфейс взаимодействия
sender
Сервис, прослушивающий очередь сообщений, по заранее определенному протоколу.
При получении сообщения валидирует его, приводит в более низкоуровневый вид (байтовую последовательность) и отправляет через MQTT broker в сервис matrix
для визуализации
matrix
Скрипт для микроконтроллера, прослушивающий MQTT broker
. При получении сообщения парсит его и зажигает необходимые светодиоды на матрице.
Более подробную информацию по каждому из сервисов можно найти в его документации
- matrix Скрипт микроконтроллера по управлению светодиодами
- sender Сервис сериализации и отправки данных на матрицу
- builder Сервис сборки и прошивки микроконтроллера
- hub Сервис хранения информации о матрицах и пользователях
- bridge Плагин для взаимодействия с ядром матрицы по протоколу
HTTP
- canvas Клиент для плагина взаимодействия по
HTTP