В прошлой статье я рассказал как собрать светодиодную гирлянду-экран из адресных светодиодов. Однако, у такой конструкции есть вполне очевидный недостаток — необходимость работы компьютера с управляющей программой Jinx! В этой статье я расскажу как избавиться от компьютера в этой схеме и обеспечить автономную работу гирлянды.
Применение для управления гирляндой протокола ArtNet дает как огромную гибкость, так и проблему в виде наличия управляющего компьютера. Держать включенным мощный настольный компьютер ради гирлянды — не особенно то и удобно, шумно, да и электричества он потребляет достаточно много. Один из вариантов решения — переработать код управляющего контроллера таким образом, чтобы в отсутствие сигнала ArtNet экран воспроизводил какие-либо эффекты сам, либо считывал их с какой-либо внешней памяти.
Я же пошел по пути замены мощного настольного компьютера дешевым одноплантным компьютером, который воспроизводит предварительно записаную последовательность пакетов ArtNet. Я применил дешевый Orange Pi Zero в варианте с 256Мб оперативки, но можно использовать любой другой одноплатник с Linux на борту.
Создание и экспорт анимации JINX + LS Terminal
Добыть такой же можно на всеми любимом Aliexpress. Следующим шагом нужно поставить на него операционку — я выбрал Armbian. В случае другого одноплатника операционка может быть и другой, однако, если дистрибутив на основе Debian — принципиально ничего не поменяется. Внимание! Конкретно у этой модели есть проблемы с стабильностью работы встроенного модуля Wi-Fi.
Поэтому, если хочется идеальной работы — лучше соединить компьютер с роутером Ethernet-кабелем. Либо взять USB Wi-Fi модуль. Ну, или другую модель.
Установив Armbian на одноплатник и проведя базовую настройку системы и сети, переходим к программе, которая обеспечит воспроизвдеение заранее записанных пакетов ArtNet. Называется она udpreplay, и взять ее можно в виде исходных кодов с GitHub.
Для этого создадим каталог, перейдем в него и воспользуемся командой
git clone https://github.com/rigtorp/udpreplay.git
После чего перейдем в директорию src и сделаем небольшой патч в файле udpreplay.c , который не даст программе останавливатся с ошибкой если по каким-либо причинам пакет не будет отправлен. Для этого в сегменте кода
if (n != len) std::cerr <«sendto: » <strerror(errno) <std::endl; return 1; >
Просто комментируем возврат единицы, чтобы получилось так:
if (n != len) std::cerr <«sendto: » <strerror(errno) <std::endl; //return 1; >
Далее поднимаеся в базовый каталог и выполняем данную последовательность команд.
sudo apt install cmake libpcap-dev g++ cd udpreplay mkdir build cd build cmake .. make
Поздравляю, программа собрана и установлена. Осталось добавить ее в автозапуск. Для этого мы создадим сервис.
sudo nano /etc/systemd/system/led.service
В созданном файле нужно написать следующий код:
[Unit] Description=Leds After=network.target auditd.service [Service] Type=simple Restart=on-failture RestartSec=5 StartLimitIntervalSec=0 ExecStart=/usr/local/bin/udpreplay -i wlan0 -r -1 -c 40 /home/user/ny.pcapng [Install] WantedBy=multi-user.target
Назначим флаг исполнения и обновим настройки сервисов
sudo chmod +x /etc/systemd/system/led.service sudo systemctl daemon-reload sudo systemctl enable led.service
Наш сервис настроен и будет воспроисзодить файл пакетов /home/user/ny.pcapng сразу после старта. Осталось записать нужные пакеты и загрузить их на одноплатник. Для этого, на компьютере, где мы ранее поставили и настроили Jinx! ставим программу Wireshark. После чего запускаем ее, активируем захват пакетов и стартуем Jinx!.
Играем с эффектами, формируя нужную последовательность, после чего выключаем Jinx! и останавливаем запись пакетов. Сохраняем файл захвата куда-нибудь, назвав его, например ny.pcapng . Все, что сталось — передать его на одноплатник, для этого мне нравится использовать утилиту pscp.exe из пакета Putty.
pscp.exe ny.pcapng [email protected]:/home/user/ny.pcapng
Вводим пароль пользователя и дожидаемся конца передачи файла. Все, все готово! Осталось подать питание на гирлянду и одноплатник — и все весело оживет.
С Новым годом! Увидимся в новом году!
Источник: longestfoxever.win
Гирлянда светодиодная JINX WS2812b
Сегодня будем делать Новогоднюю гирлянду на адресной ленте WS 2812.
В интернете много гирлянд, но там для смены надоевшей анимации надо уметь программировать.
Я же хотел сделать так чтобы можно было менять эффекты простым накликиванием мышкой. Без знания языков программирования. И думаю у меня получилось.
Мы будем использовать связку Ардуино, модуль SD Card и адресную ленту WS 2812.
Эффекты будем создавать в программе JINX.
С помощью JINX Glediator можно управлять в режиме реального времени, а можно сохранить файлы на SD карту и с помощью Ардуино запускать файлы.
Так же есть возможность загружать в ленту аудио и видео файлы.
Вложенные файлы.
Новости
На выставке CES 2020 также было представлено новое поколение плат Arduino Portenta. Оно было разработано на требовательные промышленные приложения. Portenta H7 поддерживает код Arduino, Python и JavaScript, что делает его доступным для разработчиков с различными знаниями языков .
Производитель Arduino запускает новую серию плат Nano — Arduino Nano 33 BLE. Платы имеют те же размеры, что и плата Ардуино Нано, на чипе U-blox NINA-B306 с микроконтроллером Nordic nRF52840 и беспроводным модулем Bluetooth BLE
Источник: arduino-kid.ru
Светодиодный диско-пол на Arduino
Для изготовления диско-пола используются 36 мм RGB-светодиоды WS2801, которые контролируются через компьютер с помощью Arduino. Я выбрал именно 36 мм светодиоды WS2801 из-за их низкого профиля (глубина 5 мм). Это позволит разместить их вдоль плиток пола.
Шаг 1: Компоненты
- Arduino Uno R3
- Шилд Arduino Proto Board
- USB 2.0 A — B кабель
- Мини макетная плата
- Вилка и шнур электропитания
- 36мм светодиоды WS2801 LED
- 12V 5A сетевой выключатель
- Прозрачные, пластмассовые, поликарбонатные листы Lexan MARGARD толщиной 5 мм
- Деревянные рейки толщиной 9 мм и шириной 21 мм
- Прозрачный, белый, самоклеющийся винил
- ПК/ноутбук на ОС Windows для запуска программы Jinx!
- Провода для подключения светодиодов
Материалы для сборки каркаса вы можете выбрать по своему усмотрению. Я бы вам посоветовал использовать листы Lexan Margard, благодаря их механической прочности и износостойкости. Прозрачный винил я выбрал в последнюю минуту, но в итоге получил то, что хотел. Мне нравится именно матированный материал, к тому же он должен быть прозрачным, а не светонепроницаемым. Величина полученного рассеивания была вполне удовлетворительной, независимо от близкого расположения светодиодов к винилу.
Шаг 2: Электрическая схема
В данном проекте используется схема, подобная модулю Adafruit: https://learn.adafruit.com/36mm-led-pixels/pwiring
Я использовал небольшую макетную плату для разделения земляных проводников модуля Arduino и светодиодов. Это позволило использовать только 4 проводника для подключения светодиодов. Плюсовой проводник идет напрямую на светодиоды от источника питания. Я попросил квалифицированного электрика подсоединить вилку к сетевому выключателю источника питания (не стесняйтесь пользоваться услугами профессионалов). В качестве альтернативного источника питания устройства можно использовать блок питания на 12В от переносного ПК.
Шаг 3: Программирование Arduino
Для создания световых эффектов я запрограммировал Arduino с помощью скетча Glediator (http://www.solderlab.de/index.php/downloads/category/4-glediator).
Я подключил ноутбук напрямую через USB к Arduino, поэтому мне не понадобилось изменять скорость передачи данных, которая понадобилась бы при организации соединения по Bluetooth. Теперь загрузите скетч в микроконтроллер Arduino. Убедитесь в том, что вы выбрали правильное количество пикселей в этом месте кода:
«#define Num_Pixels 120», номера выводов указаны ниже:
int SDI = 2;
int CKI = 3;
Шаг 4: Программное обеспечение
Как я упоминал ранее, для данного проекта наиболее приемлемо использовать программное обеспечение Jinx! и скетч Glediator для управления свечением светодиодов WS2801. Я решил использовать именно Jinx!, поскольку его легко настроить. Я не использовал опцию Bluetooth соединения, поэтому смог запустить Jinx при прямом подключении к Arduino через кабель USB 2.0 A — B.
На скриншотах показаны настройки для 120 светодиодов. При этом примите во внимание, что количество используемых каналов для светодиодов/пикселей нужно умножить на 3 (R,G и B). Как вы можете заметить на экране Fast Patch, я выбрал опцию Snakelines из-за типа заказанных светодиодов. Порядок каналов GBR, а не RGB, поскольку заказанные светодиоды имели тип 36 мм WS2801 Green Blue Red (Зеленый, синий, красный).
Настройки COM порта для передачи данных в Arduino могут быть изменены в Диспетчере устройств на ОС Windows.
Для выбора желаемого эффекта нажмите Setup > Start Output (Настройка — Передать на выход) и посмотреть, как будут гореть ваши светодиоды. Последняя версия Jinx! позволяет запрограммировать несколько зон, поэтому я использовал данную функцию для различного свечения 6 зон – стробирующий эффект, бегущий «авто цвет» и «управление звуком» в стиле диско 70-х.
На Android устройстве или iPad вы можете использовать приложение управления рабочим столом для удаленного управления вашим ПК/ноутбуком.
Шаг 5: Конструкция – Каркас пола
Я построил каркас для пикселей по двум причинам: в первую очередь для равномерного распределения веса, когда вы стоите на полу, а также разделения света от каждого отдельного пикселя, чтобы цвета были более резкими.
Размер каркаса составляет 1640 мм на 930 мм. В проекте используется 120 пикселей, их можно организовать в виде матрицы 8 на 15. Деревянные планки имеют ширину 21 мм, что позволит создать квадрат размером от 90 до 100 мм вокруг каждого пикселя.
Для экономии материалов мы поместили 16 планок в длину (1640 мм) и затем поместили более короткие планки длиной 98 мм за каждым пикселем. Для размещения проводов мы прорезали небольшие прорези под каждым элементом пикселя. Все пиксели и деревянные планки были склеены с помощью пистолета для склеивания и большого количества клея!
Шаг 6: Конструкция – пол Lexan
После проведения нескольких экспериментов я остановился на листах Lexan Margard, которые имеют защиту от «истирания» и фактически являются прозрачным, «небьющимся» плексигласом. Я выбрал листы толщиной 5мм. Благодаря каркасу с размером ячеек 10 см данная конструкция сможет выдержать стулья и высокие каблуки.
Шаг 7: Рассеивающий винил
На последнем этапе данного проекта используется рассеивающий материал. Я использовал прозрачный, самоклеющийся винил. Данный материал позволяет светодиодам светиться ярко, и в то же время оставаться невидимыми для глаз. Как вариант, можно использовать матовый винил.
Шаг 8: Заключение
Листы Lexan, с расположенным под ним прозрачным винилом, необходимо разместить наверху каркаса и приклеить по краям силиконом.
Испытайте новый эффект свечения «Chases» с помощью программного обеспечения Jinx! Я настроил различную последовательность срабатывания (посмотрите видео проекта). Jinx также позволяет изменить ярлык для рабочего стола для запуска эффекта (смотрите Руководство Jinx). Добавьте данный ярлык в папку автозагрузка ОС Windows и светодиоды будут загораться в требуемой последовательности при загрузке Windows.
Прикрепленные файлы:
- glediator_v2_0_3.zip (1305 Кб)
Теги:
topa_biser
Опубликована: 13.01.2015
0
Вознаградить Я собрал 0 0
Оценить статью
- Техническая грамотность
Источник: cxem.net