Скоро Новый Год, и если у вас есть пара часов свободного времени, можно сделать hi-tech украшение для новогодней елки, пальмы или мандаринового дерева. Подробности и инструкция — в материале Selectel.slc.tlSelectel — свежееВ основе конструкции — светодиодная гибкая лента NeoPixel 32x8, Raspberry Pi и хорошее настроение. Ну и да, понадобится немного кода на Python.Что нужно для работыИтак, для создания новогоднего настроения потребуются:Raspberry Pi 3, Raspberry Pi 4 или Raspberry Pi Zero W с GPIO разъемом.Источник питания, мышь, монитор, клавиатура и HDMI кабель для Raspberry Pi.Гибкая лента 32x8 NeoPixel RGB LED Matrix.Набор джамперов (M-to-F, M-to-M и F-to-F).5В источник питания.Конденсатор 1000 µF.Еще можно взять полоску ткани для рассеивания света LED-лент.Напечатанная на 3D-принтере основа для всей конструкции.Часть 1. Подготовка RGB-матрицыНа этом этапе нужно будет припаять пару контактов и воспользоваться примером кода от Adafruit’s NeoPixel Uberguide. Для нашего проекта нужно два источника питания — для «малинки» и светодиодной ленты. Для последней нужно будет подключить не только питание, но и данные. Здесь все просто.При желании можно добавить еще полоску ткани, чтобы рассеивать яркий свет светодиодов.Подключаем данныеБерем любую «землю» от «малинки» и подключаем ее к GND-линии данных светодиодной ленты.Подключаем источник питанияЭто можно сделать либо при помощи обычного кабеля, по схеме, уже показанной выше, либо воспользоваться USB-кабелем. В этом случае нужно выполнить подключение вот по этой схеме.Теперь давайте проверим матрицу, запустив код от Adafruit.Запускаем «малинку», подключаем питание RGB-матрицы, открываем терминал и устанавливаем зависимости:sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel sudo python3 -m pip install --force-reinstall adafruit-blinkaЗагружаем код из репозитория автора статьи:git clone https://github.com/carolinedunn/RGBTreeTopperВыбираем папку scrollingTextMask:cd RGBTreeTopperЗапускаем тестовый код fillMatrix.py:sudo python3 32-fillMatrix.pyЕсли получилась радуга, как на гифке выше, все работает, можно двигаться к следующему этапу. Если что-то пошло не так, скорее всего, какие-то контакты неверно подключены.Советы: Если система не работает с пином 21 GPIO «малинки», попробуйте пины 10, 12 или 18. Затем нужно открыть 32-fillMatrix.py из папки scrollingTextMask и обновить вывод GPIO. В этом случае нужно будет соответствующим образом изменить и другие файлы проекта.Останавливаем скрипт при помощи комбинации Ctrl+C.slc.tlSelectel — IT-инфраструктура для бизнесаЧасть 2. Зажигай!Теперь в терминале, который все еще открыт, набираем команду:sudo python3 treeTopper.pyВ папках, которые мы взяли с GitHub, есть папка «fire», которая содержит 10 картинок в формате jpeg. Вот что делает код treeTopper.py:Объявляет библиотеки, которые используются в коде. Внимание нужно обратить на PIL (Pillow Imaging Library), это библиотека, которая добавляет возможность обработки изображений в интерпретатор Python.Сообщает Pi, куда отправлять данные на матрицу, указав 21 пин GPIO (строка 8).Указывает параметры матрицы, включая размер, яркость и время паузы между демонстрацией каждой из картинок (строки 9-13).Создает массив с данными тех самых 10 JPEG файлов в последовательном порядке (строки 28-32).Анализирует пиксели изображений и преобразовывает их в RGB-матрицу с выводом изображения на матрицу RGB (строки 35-41).Делает паузу на 0.2 секунды, затем повторяет процесс для следующего изображения (строка 42).Процесс выполняется до момента выполнения комбинации Ctrl+C.А если хочется собственных картинок?Параметры должны быть следующими:Формат — JPEG.Ширина — 32 пикселя.Высота — 8 пикселей.Каждый файл нужно сохранять под названиями 1-10.JPG в соответствующую папку. Для отображения картинок нужно задать новый путь к картинкам. При желании можно сменить и последовательность их отображения.Запуск при загрузкеКак только мы подготовили все изображения, используем Python для запуска скрипта при загрузке устройства. Лучший вариант — Crontab.В консоли открываем Crontab: crontab -eВводим 1 и нажимаем Enter.Таким образом открывается новый файл crontab. Внутри опускаемся вниз и enter ->sudo python3 /home/pi/RGBTreeTopper/treeTopper.py @reboot sudo python3 /home/pi/RGBTreeTopper/treeTopper.pyНажимаем Ctrl+X, а затем crontab для сохранения.Выключаем «малинку» и отключаем все, что собрали.Часть 3. Финальная сборкаНа этом шаге уже можно продемонстрировать новогодний огонек на вершине не менее новогодней елки.Печатаем корпус на 3D-принтере.Пропускаем в нужные места провода и фиксируем их.Изгибаем LED-матрицу, сильно давить не нужно.Водружаем конструкцию на вершину елочки. Включаем и радуемся.Кстати, автор в курсе, что изобретение по форме напоминает рулон туалетной бумаги.Она шутит, что на фоне происходящего в 2020 году это вполне адекватно. Но вообще ее можно и изменить — конструкция при желании легко модифицируется, так что рулон бумаги превращается… да во что угодно.➝ Подписывайтесь на блог Selectel, будем вместе создавать новогоднее настроение.Читать далее:➝ Raspberry Pi 400: что это, кому и зачем может пригодиться? ➝ Как создать Telegram-бота для самого точного прогноза погодыslc.tlSelectel — IT-инфраструктура для бизнеса#Selectel #разработка #raspberrypi #DIY #selectelDIY
Почему нет комментариев? Прикольно же)
Да, должна подойти!