Multivox: управление объёмными светодиодными дисплеями Rotovox и Vortex на Raspberry Pi 4

Это код, который в настоящее время используют для управления объемными дисплеями.
Он поддерживает два тесно связанных устройства, которые настраиваются в src/driver/gadgetsкаталоге:
- Rotovox — это сфера размером 400 мм, состоящая из двух панелей размером 128×64, расположенных вертикально рядом друг с другом.
- Vortex — это сфера диаметром 300 мм, состоящая из двух панелей размером 128×64, расположенных горизонтально, спина к спине.
Rotovox имеет более высокое вертикальное разрешение и лучшую горизонтальную плотность; Vortex ярче и имеет более высокую частоту обновления.
Детали Vortex, пригодные для 3D-печати, доступны здесь.
Аппаратное обеспечение
Этот код изначально был написан для одного дисплея, а затем специфичный для устройства код был несколько абстрагирован для поддержки второго аналогичного устройства. Существуют довольно хорошо заложенные предположения об аппаратном обеспечении:
- Он состоит из двух светодиодных панелей HUB75, вращающихся вокруг вертикальной оси.
- Панели используют либо адресацию ABCDE, либо адресацию сдвигового регистра ABC.
- Для синхронизации вращения используется один GPIO (фотодиод или аналогичный) — высокий уровень для 180°, низкий уровень для 180°.
- Работает на Raspberry Pi 4.
Назначение GPIO и компоновка панели определены в src/driver/gadgets/gadget_<name>.h. GPIO работает через доступ к отображению памяти. Если вы используете другую модель Raspberry Pi, вам потребуется внести изменения BCM_BASEв код GPIO. Я не проверял это, и, вероятно, следует предположить, что это не работает.
Ввод осуществляется через Bluetooth-геймпад. Я использую контроллер Xbox, и система ввода основана на его раскладке по умолчанию.
Аудиовыход также осуществляется через Bluetooth. С более качественными кодеками у меня не получилось, но протокол гарнитуры работает.
Скачать Multivox можно на github.





