Jump to content
  • Sign Up
  • Language

Recommended Posts

Световое светодиодное шоу

Светодиодный маркер для фризлайта, рисования светом

anim-small.gifled_strips_flags.jpgled_strips_erin2.jpg

Невероятный спектакль огней из совершенно безопасных материалов, можно представить благодаря светодиодным огням. Следует отметить, что на первый взгляд простое изделие на самом деле выполнить достаточно сложно. Потому, прежде чем начать, ознакомьтесь с полным списком работ и необходимых материалов, взвесьте свои силы и возможности, а уже после приступайте к творческому процессу. В руках великолепных исполнительниц led шоу, очень легко вращаются обычные наборы цветных огней. Проблема заключается в сложности пайки и необходимости соблюдать максимальную точность в размерах. Эти прирученные фейерверки не боятся ни солнца ни дождя.

Хотя схема не является сложной, она должен вмещаться в очень небольшое пространство, потому, будут нужны острые инструменты хорошо заточенные и очищенные, проволоки, различный клей и в наибольшей мере - терпение и настойчивость. Вот схема, согласно которой следует проводить работу по соединению деталей. Схема состоит из двух 16-пиксельных DotStar полос, микроконтроллеров, LiPoly батареи и одной кнопки включения. Зарядка и программирование производятся через порт USB. То есть, после окончания успешной работы, вы сможете создавать различные рисунки одним предметом.

led_strips_poi-circuit.pngled_strips_erin1.jpgled_strips_erin4.jpgled_strips_candy.jpg

Пошаговое описание процесса можно найти в источнике: https://learn.adafruit.com/genesis-poi-dotstar-led-persistence-of-vision-poi/overview

Смотрите  также:

 

Share this post


Link to post
Share on other sites

Движущаяся фризлайт установка своими руками

фризлайт.jpg

Световые рисунки при помощи контроллера Raspberry Pi

Световая картина художественной светотехники получается при фотографировании пейзажа с большой выдержкой экспозиции с движущимися огнями и световыми эффектами. Традиционно, эти изображения делали вручную при помощи фонарика с различными цветовыми фильтрами. Но в последнее время, стали доступны микроконтроллеры с адресными светодиодами (светодиодными лентами) RGB, которые привнесли в эту идею новый высокотехнологичный поворот.

Несколько таких проектов были представлены на технических блогах. Особенно популярным стал проект “The Mechatronics Guy” на блоге LightScythe by Gavin, который использует контроллер Arduino и двухметровую штангу со светодиодами. Полученные фотографии, запечатлели интенсивное движение света различных цветов в одном мгновении, в потрясающих формах, и это действительно просто потрясающе!

рисование светом×светографика×Freezelight×фризлайт×реклама.jpg

Большие, красочные изображения требуют много памяти ... и это та область, где нам надо  больше памяти, чем может обеспечить Arduino. Мы предполагали, что контроллер Raspberry Pi может сделать этот процесс проще. Но даже мы не были готовы к тому, что это будет настолько просто…

led контроллер фризлайт.jpg

Используемые компоненты и их соединение:

Взаимодействие адресной светодиодной ленты «Adafruit’s Digital Addressable RGB LED» с контроллером Raspberry Pi происходит очень просто, и требует только несколько соединений между контроллером, светодиодной лентой и источником питания постоянного тока.

Примечание: Контакт MOSI на контроллере подключается к контакту DI на светодиодной ленте, и контакт SCLK подключается к контакту CI. Общая схема подключения приводится на рисунке ниже:

рисование светом×светографика×Freezelight×фризлайт×реклама_2.png

Вместо того, чтобы подавать питание через разъем Micro USB контроллера Raspberry Pi, 5 Вольт постоянного тока требуется подавать отдельно (через специальный разъем DC Jack). Потому что светодиодные ленты потребляют значительно больший ток, чем может обеспечить интерфейс USB. Блока питания мощностью 2А достаточно для 1 метра светодиодной ленты, так как наш блок питания значительно больше - 10А, то мы можем запитать до 5 метров светодиодной ленты (плюс контроллеры Raspberry Pi, в обоих случаях).
Примечание: +5V и земля от источника питания подключается к контактам 5V и GND, как на светодиодной ленте, так и на контроллере Raspberry Pi.

рисование светом×светографика×Freezelight×фризлайт×реклама_3.jpg

Первоначальный опытный образец был собран с использованием многожильного комплекта Pi Cobbler. Так как готовый проект будет много двигаться и подвергаться вибрациям, да и сам макет не является самой надежной вещью, пришлось принести в жертву 26-контактный IDC кабель ради науки, чтобы создать кабель специально для коммутации контроллера Raspberry Pi, светодиодной ленты и блока питания. Он  гораздо более устойчив к вибрациям и человеческому фактору (нерадивым рукам).

контроллер×рисование светом×светографика×Freezelight×фризлайт×реклама_4.jpg

Примечание: Для проверки и настройки в дальнейшем удобно использовать быстросъемные разъемы для подключения светодиодных лент. Мы использовали два 4-х контактных разъема JST с выведенными проводами. Эти разъемы имеют специальный ключ на фишке, поэтому вы никогда не подключите их в обратном направлении, что предотвратит ваши светодиоды от сгорания.

led контроллер фризлайт_2.jpgled контроллер фризлайт_3.jpg

Программное обеспечение

Примечание: Цифровые светодиодные ленты требуют широкой полосы пропускания данных, поэтому  вы не можете просто использовать библиотеки GPIO для работы. Вы должны установить аппаратные библиотеки SPI, они не входят в стандартную прошивку, поэтому потребуется обновление прошивки, рекомендуем использовать прошивки Occidentalis!

Первым делом мы начали с установки программного обеспечения “Occidentalis”. Руководство по его установке под названием «Adafruit Raspberry Pi Educational Linux Distro»  доступно по ссылке:

https://learn.adafruit.com/adafruit-raspberry-pi-educational-linux-distro/overview

При его установке есть некоторые особенности, оно работает под ОС Linux, но оно сделает этот проект намного проще, в том числе появится аппаратная поддержка SPI. Но все равно это быстро и легко.

Наш фризлайт сценарий светового рисунка опирается на модуль «Image Python», который не установлен по умолчанию. Для его установки, подключите модуль Raspberry Pi к компьютеру, подключитесь к интернету и введите:

sudo apt-get install python-imaging

Команды Occidentalis будут являться встроенными командами SSHD, что делает очень легким передачу изображения с компьютера на контроллер Raspberry Pi. Например, в окне терминала на моём компьютере Mac я набираю следующую команду:

scp image.png [email protected].local:

Или же для передачи изображения можно использовать безопасный FTP клиент:

led контроллер фризлайт_4.jpg

Полный сценарий Python:

#!/usr/bin/python# Light painting / POV demo for Raspberry Pi using# Adafruit Digital Addressable RGB LED flex strip.# ----> http://adafruit.com/products/306import RPi.GPIO as GPIO, Image, time# Configurable valuesfilename  = "hello.png"dev       = "/dev/spidev0.0"# Open SPI device, load image in RGB format and get dimensions:spidev    = file(dev, "wb")print "Loading..."img       = Image.open(filename).convert("RGB")pixels    = img.load()width     = img.size[0]height    = img.size[1]print "%dx%d pixels" % img.size# To do: add resize here if image is not desired height# Calculate gamma correction table.  This includes# LPD8806-specific conversion (7-bit color w/high bit set).gamma = bytearray(256)for i in range(256):	gamma[i] = 0x80 | int(pow(float(i) / 255.0, 2.5) * 127.0 + 0.5)# Create list of bytearrays, one for each column of image.# R, G, B byte per pixel, plus extra '0' byte at end for latch.print "Allocating..."column = [0 for x in range(width)]for x in range(width):	column[x] = bytearray(height * 3 + 1)# Convert 8-bit RGB image into column-wise GRB bytearray list.print "Converting..."for x in range(width):	for y in range(height):		value = pixels[x, y]		y3 = y * 3		column[x][y3]     = gamma[value[1]]		column[x][y3 + 1] = gamma[value[0]]		column[x][y3 + 2] = gamma[value[2]]# Then it's a trivial matter of writing each column to the SPI port.print "Displaying..."while True:	for x in range(width):                spidev.write(column[x])                spidev.flush()		time.sleep(0.001)	time.sleep(0.5) 

Сценарий должен быть запущен как "root" процесс, потому что он обращается к GPIO оборудования, а именно:

sudo python lightpaint.py

После открытия устройства SPI (для общения со светодиодной лентой), сценарий загружает изображение, используя модуль «Python Image», преобразуя его в формат RGB, если это необходимо. Интерпретация языка Python, не самая быстрая вещь, но это лучше чем неоднократно обрабатывать каждую строку или столбец изображения на лету, весь образ предварительно обработан только из родного формата RGB в формат аппаратно-специфический, который требуется для работы светодиодной ленты, который состоит из массива байтов. Затем мы можем быстро сбросить каждый из этих массивов непосредственно к порту SPI без дальнейшей обработки. Расшифровка и передача всех  этих промежуточных данных немыслима на Arduino!

Программное обеспечение использует высоту изображения в качестве разрешения, поэтому если у вас используется 64 светодиода, то и ваши загружаемые  изображения должны иметь высоту 64 пикселя.

Движущаяся установка

После того, как  вы освоите изготовление ручной установки, вы можете перейти к следующему уровню сложности. Ваша ровная световая панель, будет заменена кругом, для того, что бы предать готовой фотографии интересное трехмерное качество. Ваш светодиодный круг будет установлен на велосипед, чтобы обеспечить плавное движение и покрыть более длинные расстояния. В результате езды в темное время суток на кадре с длинной экспозицией, вы получите экструдированную трубку в 3D-пространстве. Сам велосипед исчезнет на фотографии, так как очень мало времени находится в одной точке и не имеет такой яркости как светодиоды.

Круглое приспособление собрано из ПВХ трубы и обруча, а затем окрашено из краскопульта в черный матовый цвет, чтобы его не было заметно на фотографии. Готовая установка устанавливается в задней части велосипеда.

контроллер×рисование светом×светографика×Freezelight×фризлайт×реклама_5.jpg

Для питания светодиодов и компьютера был использован аккумулятор и инвертер. Абсурдность преобразования 12В постоянного тока в 110В переменного и обратно в 5В постоянного с лихвой компенсируется большим запасом мощности, в итоге мы имеем мощный портативный источник питания.

Чтобы покрыть круг светодиодами, мы использовали адресную светодиодную ленты с 96-ю светодиодами. Хорошо закрепите все элементы вашей установки на вашем велосипеде, хоть он и будет похож на марсианский корабль.  

контроллер×рисование светом×светографика×Freezelight×фризлайт×реклама_6.jpgконтроллер×рисование светом×светографика×Freezelight×фризлайт×реклама_7.jpg

Эти первые изображения были получены довольно быстро, и мы не слишком сильно подбирали темное место. Если все правильно спланировать и подобрать хорошее место для выполнения фотосъемки, то результаты могут быть намного изысканнее и гораздо более фантастические.
Это 10 – 15 секундные экспозиции.

рисование светом×светографика×Freezelight×фризлайт_01.jpgрисование светом×светографика×Freezelight×фризлайт_02.jpgрисование светом×светографика×Freezelight×фризлайт_03.jpgрисование светом×светографика×Freezelight×фризлайт_04.jpgрисование светом×светографика×Freezelight×фризлайт_05.jpg

Общее время выполнения проекта,  с нулевым опытом работы со средой Python, при виде работающих демо-проектов, фотографий и учебника - около двух дней. Великие вещи находятся в движении!

Источник: adafruit

Share this post


Link to post
Share on other sites

Картины, нарисованные светодиодным светом

Для того чтобы рисовать световые картины, проект использует светодиодную ленту и контроллер Arduino. Идея этого проекта, в основном возникла из подобного проекта LightScythe, но вот способ реализации оказался совершенно другой.

Рисование светом, фризлайт_1.jpg

Список деталей:

·         Светодиодная лента Digital RGB LED Weatherproof Strip - LPD8806 32 LED – 2 метра (64 светодиода)

Рисование светом, фризлайт_2.jpg

·         Контроллер Arduino Uno – R3

Рисование светом, фризлайт_3.jpg

·         Плата адаптера для карты памяти Micro SD, для хранения растровых изображений + сама карта Micro SD

Рисование светом, фризлайт_4.jpg

·         Жидкокристаллический дисплей 1.8" Color TFT LCD display with MicroSD Card Breakout - ST7735R

Рисование светом, фризлайт_5.jpg

Вот так выглядят все эти компоненты в собранном виде:

Рисование светом, фризлайт_7.jpgРисование светом, фризлайт_6.jpg

Принципиальная схема:

Вот так выглядит примерная схема. В ней есть еще много возможностей для усовершенствования!

фризлайт, рисование светом_8.png

Программный код:

Внимание! Этот код просто полная неразбериха, но если вы хотите понять суть, как работает прошивка, то этот код сильно поможет.

Для контроллера Arduino: 1.txt

Математические вычисления Matlab: 2.txt

Порядок действий при использовании:

·         Сначала растровые изображения загружаются на карту Micro SD, и затем карта устанавливается в плату адаптера  Micro SD.

·         Подключается питание от батареи к контроллеру Arduino и ЖК-экрану.

·         Первая кнопка на пульте управления используется для переключения между изображениями. Снимки отображаются на ЖК-дисплее вместе с соответствующей информацией.

·         Вторая кнопка используется для записи растровых изображений для вывода на светодиодную ленту в правильном порядке, чтобы выполнить рисование светом.

·         Когда светодиоды начинают отображать растровое изображение, я начинаю потихоньку идти вперед, предварительно настроив свою камеру на съемку с долгой экспозицией.

Генерирование растровых изображений:

Чтобы подготовить растровые изображения, я использую скрипт MatLab, что является довольно сложным способом, но мне нравится быть в курсе событий.

Сначала изменяется размер изображений. Так как светодиодная лента имеет 64 светодиода, то любое изображение, которое ими отображается, должно быть 64 пикселя в высоту. Ширина изображения может быть любой.

После изменения размера, изображение поворачивается на 90 градусов. Причина этого в том, что растровые данные хранятся построчно по горизонтали. При рисовании светом, мне нужно, чтобы изображение, построчно отображалось по вертикали. Повернуть изображение программно, намного проще, чем сделать это руками.

Генерирование изображений с 7-битной цветовой гаммой

Каждый из 64 светодиодов содержит  красный, синий, и зеленый светодиод.  Светодиодная лента, использует  7-битную широтно-импульсную модуляцию для получения дополнительных цветов. Исходя из этого, считаем  7 бит - это 128 уровней для каждого светодиода.  128 в третьей степени - это 2 миллионов цветов! Замечательно!

Ранее, я использовал светодиодные ленты с другим чипом, который позволял каждому светодиоду, только лишь включить или выключить определенный цвет,  это предоставляло только 8 цветов на пиксель. Что такое 8-ми цветное изображение! Этого было явно недостаточно, чтобы воплотить мои творческие идеи, используя полноцветные изображения. На фото ниже, снимок который я сделал при помощи старой светодиодной ленты, где я использовал эффект сглаживания, чтобы отобразить картинку при помощи только 8-ми цветов:

Рисование светом, фризлайт_9.jpg

Гамма-коррекция:

При использовании ШИМ со светодиодами, важно использовать гамма – коррекцию. Это необходимо потому, что зависимость между люминесценцией и яркостью не является линейной. Более подробно ознакомится с этим эффектом, а также посмотреть расчеты, можно по ссылке:

http://www.maxim-ic.com/app-notes/index.mvp/id/3667

В основном, значения цветов должны быть исправлены со значением  гаммы 2.5.

Вот изображение без гамма – коррекции:

Рисование светом, фризлайт_10.jpg

А вот то же самое изображение с  гамма – коррекцией:

Рисование светом, фризлайт_11.jpg

Как вы видите, цвета исчезают гораздо меньше с гамма - коррекцией изображения.

Единственный недостаток этого, это то,  что вы можете потерять много данных на темных пикселях, но это, как правило, не слишком заметно.

Контроллер Arduino, может самостоятельно выполнять гамма – коррекцию, но это требует большой вычислительной мощности. Поэтому, я выполняю эту операцию заранее на компьютере.

LCD экран:

Изначально, я использовал только два светодиода для отображения статуса контроллера Arduino, и чтобы усовершенствовать проект, добавил к нему LCD – экран. Он работает намного лучше, чем я ожидал! Ввиду того, что он разделяет интерфейс  SPI  с платой адаптера  Micro SD, им приходится работать по очереди.

Рисование светом, фризлайт_12.jpg

На экране отображаются следующие параметры:

  • Имя файла растрового изображения (BMP)
  • Ширина растрового файла в пикселях
  • Количество времени, которое потребуется, чтобы записать весь образ в светодиодную ленту
  • Максимальный мгновенный ток, который понадобится  светодиодной ленте для отображения изображения
  • Текущий уровень заряда батареи
  • Предварительный просмотр изображения

Галерея нарисованных изображений:

Рисование светом, фризлайт_17.jpgРисование светом, фризлайт_16.jpgРисование светом, фризлайт_18.jpgРисование светом, фризлайт_13.jpgРисование светом, фризлайт_15.jpgРисование светом, фризлайт_14.jpg

Источник: scott-bot

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...