Уже начался чемпионат мира по футболу 2014 и к этому событию я сделал светодиодное табло для пивбара.
Имелась в наличии светодиодная лента на базе управляемых RGB светодиодов WS2812 (5м 150 светодиодов). Также необходимы Arduino Mega, Bluetooth-модуль HC05, SD-шилд для Arduino, SD-карта. Для установки команд и результата - Android телефон и планшет
Почему использовал ленту WS2812? Главной особенностью ленты является возможность управления по однопроводному скоростному последовательному цифровому каналу большим массивом (более 1000 диодов при скорости 30fps), при этом каждый из них может быть установлен в любой цвет, независимо от прочих. Глубина цвета - 24 бита (более 16 млн. цветов). На табло необходимо показать флаг первой команды, затем флаг второй команды, а затем счет.
Сначала режем ленту на отрезки по 15 штук, получается 10 отрезков, отрезки клеим на ДСП, расстояние между отрезками 3см (подбиралось по расстоянию между светодиодами на ленте)
В результате получаем прямоугольник 15x10
Начал с поиска флагов всех стран-участников ЧМ-2014. Удалось найти только 16x11. Теперь разбираемся с форматом изображения. Изучение форматов gif, png, jpg и bmp привело к выводу, самым удобным форматом для перевода содержимого файла картинки в данные для пикселей светодиодной ленты будет формат bmp-24. После служебных заголовков идет массив растра, на каждый пиксел изображения отводится 3 байта, которые определяют 3 компоненты цвета Blue, Green, Red. Они идут именно в таком порядке. Но это еще не все! Во-первых, строки идут от нижней к верхней, во-вторых, если размер строки не кратен 4 он дополняется байтами 0xFF.
Берем скачанные картинки 16x11, переводим их в формат bmp (в Windows обычным редактором Paint), а затем делаем из них картинки размером 15x10 (я делал в программе Microsoft Picture Manager). Файлы будем хранить на SD-карте.
Схема электрическая
Теперь пишем скетч для Arduino. Используем библиотеки SD (стандартная для работы с файловой системой SD-карты) и Adafruit_Neopixel
Раз в 200 мс вызывается программа вывода информации на ленту (данные хранятся в 2 массивах) + массивы для хранения изображения цифр
Есть 9 режимов:
- въезд 1 флага снизу
- отображение флага
- уход 1 флага вниз
- въезд 2 флага сверху
- отображение флага
- уход 2 флага вверх
- въезд счета (одна цифра слева, другая справа)
- отображение счета
- удаление счета (темный экран)
- на шаг 1
При получении данных по Bluetooth изменение команд (подгрузка данных в массивы из файлов на SD-карте и счета)
Для управления данными для табло - выбор команды 1, команды 2 и текущего счета будем использовать телефон или планшет с операционной системой Android. Данные передаются по Bluetooth. Приложение на Android максимально простое. Соединение по Bluetooth c конкретным модулем HC05, выбор команд, счета и отправка данных на модуль HC05.
К сожалению на ленте 3 сгоревших светодиода, заменить пока нечем, пришлось вносить корректировки в скетч, но ленту обещали привезти на заказ, надеюсь заменить до окончания чемпионата.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
Модуль | Arduino Mega | 1 | Поиск в магазине Отрон | |||
Bluetooth-модуль | HC05 | 1 | Поиск в магазине Отрон | |||
SD-шилд для Arduino | 1 | Поиск в магазине Отрон | ||||
SD-карта | 1 | Поиск в магазине Отрон | ||||
Фотодиод | 3 | Поиск в магазине Отрон | ||||
Резистор | 150 Ом | 3 | Поиск в магазине Отрон | |||
RGB светодиодная лента | WS2812 | 1 | 5 метров 150 светодиодов | Поиск в магазине Отрон | ||
Выключатель | 1 | Поиск в магазине Отрон | ||||
Скачать список элементов (PDF)
Прикрепленные файлы:
- argentina_jamaika8.zip (3 Кб)
- football2014.apk (698 Кб)
- football2014.zip (2648 Кб)
Комментарии (0) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация