Светодиодная анимация с веб-управлением с Raspberry Pi и Arduino
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Приложения и онлайн-сервисы
|
Об этом проекте
Обзор проекта
Arduino Light Animation (ALA) - это библиотека Arduino для управления светодиодами и запуска красочных анимаций с минимальными усилиями. Библиотека предоставляет более 30 предустановленных анимаций и несколько цветовых палитр. Дополнительную информацию о библиотеке ALA вы можете найти в моем блоге.
В этом проекте представлена плата Raspberry Pi 3, которая будет предоставлять веб-страницу, позволяющую управлять анимацией, цветами и скоростью со смартфона или ПК с помощью веб-браузера. Вот короткое видео об AlaWeb в действии.
Для этого проекта необходимо несколько компонентов.
- WS8212 Светодиодная лента RGB :Эти полоски содержат несколько светодиодов RGB, к которым можно обращаться индивидуально с помощью однопроводного интерфейса, что позволяет полностью контролировать цвет каждого светодиода RGB.
- Ардуино :Знаменитая плата микроконтроллера будет запускать мою библиотеку ALA для управления светодиодной лентой, получающей команды от Raspberry PI через последовательный порт USB. Вы можете использовать платы Arduino Uno, Nano и Mega.
- Raspberry PI :Этот небольшой компьютер будет предоставлять веб-страницу для управления параметрами освещения и анимации.
Проект довольно простой, если вы знакомы с платами Arduino и Rapberry PI. Я разделил проект на два этапа, чтобы помочь вам в процессе настройки.
Электропроводка
Светодиодные ленты WS8213 очень просты в подключении. Вам просто нужно достаточно энергии, чтобы управлять всеми этими светодиодами. Для очень коротких лент (не более 10 светодиодов) вы можете даже подключать их напрямую к USB-порту, но для более длинных лент необходимо обеспечить хороший источник питания. В качестве отправной точки я предлагаю использовать вывод Arduino 5V для питания светодиодной ленты, как вы можете видеть на видео выше.
- Вывод Arduino GND на WS2812 GND
- Вывод 5V Arduino на 5V WS2812
- Вывод 6 Arduino на вывод WS2812 Ctrl / Din
Если вы хотите использовать больше пикселей, вы должны обеспечить большую мощность. Расчет прост. Каждый светодиод RGB потребляет 60 мА при полном ярком белом. Например, для проезда полосы длиной 2 м с 60 светодиодами на метр вам понадобится источник питания 5 В, обеспечивающий 2 м * 60 пикселей / м * 60 мА =7,2 А.
Подключите блок питания, плату Arduino и полосу WS8212 следующим образом.
- Подключите GND к Arduino GND и WS2812 GND.
- Питание 5 В на вывод 5 В Arduino и 5 В WS2812
- Вывод 6 Arduino на вывод CTRL WS2812
Обратите внимание, что запитывая вывод Arduino 5V, вы подаете питание на Arduino, поэтому вам не нужно подключать его ко второму источнику питания на цилиндрическом разъеме. Будьте очень осторожны при использовании этой схемы подключения, потому что вывод 5V идет в обход регулятора напряжения и защиты. Для получения дополнительной информации вы можете прочитать это руководство.
Подробнее о схеме подключения светодиодных лент WS8212 читайте в этом руководстве.
Настройка Arduino
Подключите плату Arduino к USB-порту вашего ПК. Откройте IDE Arduino и запустите Диспетчер библиотек (Эскиз> Включить библиотеку> Управление библиотеками), чтобы установить последнюю версию библиотеки ALA . .
Откройте RgbStripSerial пример (Файлы> Примеры> ALA> RgbStripSerial) и убедитесь, что NUM_PIXELS постоянное определение соответствует количеству светодиодов в вашей полосе RGB. Помните, что если вы хотите проехать более 10 пикселей, вы должны использовать улучшенную схему подключения.
Теперь вы можете загрузить эскиз на свою доску, нажав Ctrl + U из Arduino IDE или выбрав Загрузить действие в меню эскиза. Если у вас возникли проблемы с загрузкой скетча, проверьте тип платы и порт в меню "Инструменты".
Откройте Serial Monitor Arduino (Инструменты> Serial Monitor), и вы увидите приветственное сообщение, подобное этому.
Установите конец строки «Newline» в правом нижнем углу и убедитесь, что скорость передачи установлена на 9600.
Теперь попробуйте следующие команды (выделены жирным шрифтом) без пробелов:
- A =101 - включить светодиоды
- A =251 - запустить анимацию «сканер ларсона».
- P =2 - устанавливает палитру радуги.
- A =242 - другая анимация
Круто, правда?
Вы можете поэкспериментировать с различными командами и комбинациями, следуя этой краткой справке:
- A =[код анимации] - Установить анимацию. Доступные коды анимации перечислены в заголовочном файле AlaLed.h.
- B =[яркость] - Установите яркость. Он должен быть в диапазоне [0–100].
- D =[продолжительность] - Установите продолжительность цикла анимации в миллисекундах. Стандартные значения от 500 до 5000.
- C =[цвет] - Установите цвет. Это должно быть шестнадцатеричное представление RGB, например E8A240.
- P =[палитра] - Установить палитру. Он должен быть в диапазоне [0–5].
Теперь можно управлять анимацией со смартфона.
Настройка Raspberry PI
В этой части проекта мы настроим плату Rapberry Pi для запуска небольшого веб-сервера для управления светодиодной лентой из веб-браузера. Обратите внимание, что это же приложение может работать на любом ПК с установленным Python 3.
Обязательным условием является то, что ваш Raspberry PI уже настроен и работает под управлением последней версии Raspbian OS (я тестировал ее с помощью Stretch) и подключен к Интернету.
Сначала нам нужно установить несколько библиотек для Python 3 с помощью следующей команды:
sudo pip3 установить pyserial flask
Создайте домашний каталог для своего проекта:
mkdir / home / pi / AlaWebcd / home / pi / AlaWeb
Загрузите репозиторий AlaWeb git в каталог LightStrip и извлеките его.
wget https://github.com/bportaluri/AlaWeb/archive/master.zipunzip master.zip
Все программное обеспечение готово и настроено. Подключите порт USB Arduino к Raspberry PI. Приложение AlaWeb, которое вы только что скачали, будет взаимодействовать с платой Arduino через последовательное соединение USB.
cd AlaWeb-mastersudo python3 AlaWeb.py
Приложение AlaWeb выведет список всех последовательных портов USB и попытается автоматически обнаружить Arduino. Если цикл продолжает повторяться, прервите выполнение и попробуйте передать имя порта следующим образом (при необходимости заменив идентификатор порта):
sudo python3 AlaWeb.py / dev / ttyACM0
Если все в порядке, вы должны увидеть что-то вроде этого.
Откройте веб-браузер и подключитесь к отображаемому URL-адресу. Вы получите веб-страницу с кнопками, позволяющими управлять светодиодной лентой из веб-браузера.
Наслаждайтесь!
Код
AlaWeb
AlaWeb - это веб-сервер tini, написанный на Python и Flask для управления анимацией из веб-браузера. Https://github.com/bportaluri/AlaWebALA
Arduino Light Animation (ALA) - это библиотека для плат Arduino, которая упрощает разработку световой анимации с использованием светодиодов и светодиодных лент. Посетите эту страницу для получения дополнительных сведений:http://yaab-arduino.blogspot.it/p/ala.htmlhttps://github.com/bportaluri/ALAСхема
Производственный процесс
- Создайте пожарный извещатель за считанные минуты с помощью Samsung SAMIIO, Arduino UNO и Raspberry Pi
- Аэропоника с Raspberry Pi и датчиком влажности
- Создание роботов с Raspberry Pi и Python
- Создайте своего робота для видеостриминга, управляемого через Интернет, с помощью Arduino и Raspberry Pi
- Робот Raspberry Pi с веб-управлением и видео
- ЖК-панель с Arduino для симулятора полета
- Переключатель / светодиодная панель с Arduino для FS2020
- Arduino с Bluetooth для управления светодиодом!
- Четвероногий Arduino
- Управление серводвигателем с помощью Arduino и MPU6050