Управління світлодіодною стрічкою WS2801 з використанням Raspberry Pi і iOS

Всім привіт!
Ця стаття містить вихідні коди програми для операційної системи iOS, мета якого управління світлодіодною стрічкою WS2801, підключеної до Raspberry PI.


У якості бази для цього посту стала стаття pbelov — «Управляємо світлодіодною стрічкою за допомогою Raspberry Pi і Android» habrahabr.ru/post/203532. Якщо потрібно ознайомитися з базовими принципами підключення стрічок з чіпами WS2801 до Raspberry PI, краще почати читання з вихідної статті Павла.

Деякий час тому захопився організацією освітлення в будинку. Пошук готових програмних рішень дав свої результати, однак хотілося більшої свободи в кастомізації RGB-стрічки. Зокрема, існуючі рішення були позбавлені можливості налаштовувати кастомні анімації, рухомі рядки або перетікання одного кольору в інший. З цієї причини було вирішено взятися за створення власного програми з розширеними функціями налаштування кольорів, порядок кольорів у стрічці і їх плавну анімацію.

Репозиторій проекту github.com/PawelMolodkin/HomeLed
У кореневій папці репозиторію знаходиться клиенский iOS проект для XCode, а в папці ledserver проект серверного додатка для IntelliJ IDEA.
У папці ledserver/putty знаходяться полегшують життя скрипти, написані для автоматизації заливки і налагодження серверного додатка на raspberry.

Клієнтська частина

Так виглядає програма цілком.
image

Перша комірка налаштовує колір всієї стрічки
image

Друга комірка служить для створення списків квітів.
image
Можна послідовно вибрати будь-які кольори, потім зберегти список, наділивши його ім'ям. Збережені списки знадобляться для налаштування анімації

Третя клітинка поєднує в собі дві функції: лінійну анімацію і анімацію плавного чергування списків квітів, створених у другій клітинці.
image
Тублер «Включити анімацію» запускає лінійну анімацію. Спиннером можна змінювати швидкість лінійної анімації.
З анімаціями списків трохи складніше.
Спочатку у вас повинно бути збережено кілька списків квітів у другій клітинці. Потім тапа на кнопку «Анімація кольору». У ньому додаємо потрібні списки в тій послідовності, в якій хочете, що б кольору змінювалися. Потім повертаємося з діалогу додавання список. Тепер тиснемо «Зберегти» і вводимо ім'я нової анімації.
Що б активувати збережену анімацію, натискаємо «Завантажити» і вибираємо потрібну нам анімацію списку кольорів

Серверна частина
Запуск сервера відбувається командою
java -jar ledserver.jar 50

Де цифра 50 — число діод в стрічці.
Сервер прослуховує UDP порт 8090. UDP був обраний для більш простої інтеграції сервера в локальну мережу, так як він налаштований на прослуховування широкомовного каналу, отже якщо ваш iPhone і Raspberry підключені до одного роутера, навіть не доведеться вводити вірний IP-адреса Raspberry в iOS, сервер все одно отримає свої повідомлення від клієнта.

Налагодження
Для зручності розробки на Desktopе і налагодження на віддаленій Raspberry PI, створіть Remote конфігурацію налагодження в IDEA.

image
В якості 'external tool' вибрати 'Run External Tool', далі скрипт putty/launch-led-server.bat. Пам'ятаєте, в скрипті launch-led-server.bat слід прописати вірні IP-адреси вашої Raspberry. Так само на raspberry повинен бути доданий ssh публічний ключ, що б putty змогло допомогою pagent автоматично авторизуватися для заливки свіжого .jar і його використання.

Дякую за увагу!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.