Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Динамическое LED-художество в форме треугольника: сборка RGB-дисплея на 45 светодиодов с Arduino UNO

Компоненты и материалы

Инструменты

О проекте

Проект вдохновлен двумя предыдущими работами автора: 5×5×5 RGB-кубом на APA-106 (осталось ~75 лишних светодиодов) и проектом «Servo Motor Art» в форме треугольника, создававшем интересные визуальные паттерны. Решено было объединить идеи: 45 светодиодов APA-106, расположенных в равностороннем треугольнике, управляются от одного пина Arduino через библиотеку Adafruit NeoPixel.

Аппаратная часть

Светодиоды крайне яркие — яркость выставлена на 30 из 255. При таком уровне потребление всего устройства укладывается в 1 А (USB-порт Arduino), внешний блок питания не обязателен.

Монтажная плата

  1. В фанере просверлены 45 отверстий Ø8 мм с шагом 1 дюйм (25.4 мм) по вершинам равностороннего треугольника (боковая грань 12 дюймов).
  2. Светодиоды APA-106 имеют 4 вывода: GND (длинный), Data In, VCC (+5V), Data Out (у плоской стороны корпуса). Выводы сгибаются по схеме: GND — с двойным изгибом для идентификации.
  3. Топология цепи данных: данные идут змеей — в нечетных рядах слева направо, в четных — справа налево. Это диктует разводку шин питания: в нечетных рядах GND идет вверх, VCC — вниз; в четных — наоборот.
  4. Разводка выполнена оголенным луженым проводом 22 AWG. Рекомендуется собрать шину GND справа, VCC — слева, тогда данные не будут перепрыгивать через питание.
  5. Arduino UNO закреплен на плате на пластиковых стойках (горячий клей).

Программная часть

Библиотека Adafruit NeoPixel предоставляет функции setPixelColor(index, color) и show(). Цвет кодируется 32-битным числом (8 бит на канал R,G,B). Автор использует свою палитру: числа 1–42 — радужные цвета, 0 — черный (выкл.), 43 — белый (вкл.).

Нумерация светодиодов в коде идет по рядам сверху вниз, слева направо (не змеей). Написана обертка mySetPixelColor(myIndex, paletteColor), переводящая логическую нумерацию в физическую.

Все анимации — табличные. В памяти программы (PROGMEM) хранятся таблицы:

Общий знаменатель 24, 15, 6 — 120. Функция rotate() за 120 шагов поворачивает содержимое всего треугольника на 360°. Меняя стартовый паттерн, направление и скорость — получаются десятки эффектов.

Скетч разбит на 4 вкладки в Arduino IDE:

  1. declarations — таблицы, константы, setup()
  2. main_loop — последовательность вызова анимаций
  3. animations — реализация эффектов через rotate()
  4. utils — вспомогательные подпрограммы

Текущая версия шоу содержит 26 анимаций, общая длительность цикла — 5 минут. Архив с кодом, тестовым скетчем и инструкцией по NeoPixel есть в разделе «Code» (ZIP).

Схемы и 3D-модели

Производственный процесс

  1. Тригонометрия прямоугольного треугольника: ключевые понятия и формулы
  2. Закон синусов и закон косинусов: решение любого треугольника
  3. Программируемые логические контроллеры (ПЛК): современное цифровое управление для промышленных систем
  4. Динамическое выделение памяти в C: освоение malloc, calloc, realloc и free
  5. Walabasquiat: интерактивное генеративное искусство на Walabot, Raspberry Pi и Android
  6. Динамическая память в C++: стек против кучи
  7. G.AL® C330 Dynamic: высокопрочный алюминиевый сплав для прецизионных применений
  8. G.AL® C210 Dynamic: премиальная среднепрочная алюминиевая плита с высокой однородностью и низкими напряжениями
  9. Освоение горизонтального фрезерования: повышение производственной эффективности
  10. Динамические и насосы положительного смещения: ключевые различия