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

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

Схема

Разработанная автором светодиодная матрица на 256 независимых каналов работает под управлением IBM PC через параллельный порт. Всего четыре логические микросхемы и 32 транзистора связывают LPT порт с матрицей светодиодов. Несмотря на кажущуюся простоту схемы, матрица позволяет рисовать любые световые анимированные картинки, что выгодно отличает её от простейших бегущих строк, лишенных такой возможности. После запуска управляющей программы сигнал INIT параллельного порта устанавливает счётчик DD1 в начальное состояние, при этом становится активным первый выход дешифратора DD4, который открывает транзистор VT1 и подготовливает к включению первую линейку из 16 светодиодов (HL1 : HL113, HL129 : HL241). Резисторы R17 - R32 являются токоограничительными, от их сопротивления зависит яркость светодиодов. Далее на LPT порт поступает первый байт данных (DATA0 - DATA7), которые сигналом STROBE заносятся в параллельный регистр DD2, а следующий байт - в регистр DD3 сигналом AUTOFD. В зависимости от записанной в регистры информации открываются соответствующие транзисторы VT17 - VT32, которые зажигают необходимые светодиоды первой выбранной линейки. Через некоторое время в регистры записываются нули, сигнал SLCT IN переключает счётчик, дешифратор активирует следующую линейку светодиодов. Если перед переключением счётчика не произвести сброс регистров, то информация из этой линейки потянется в соседнюю, а так как устройство работает по принципу динамической развёртки, этого достаточно, чтобы получить неприятные наложения по экрану, так называемые "тянучки". Далее вновь производится запись очередных данных в регистры, и так далее, пока не будет выведена вся информация на светодиодную матрицу. Затем цикл повторяется, порции данных с определенной скоростью сменяют друг друга, вырисовывая запрограммированные картинки.

Светодиодная матрица собрана на двухсторонней печатной плате размером 168х168 мм. 
На ней расположены все элементы схемы, светодиоды собраны в матрицу. При помощи угловой колодки DB-25M матрица подключается к компьютеру стандартным LPT кабелем. Разъём MOLEX позволяет запитать устройство от обычного блока питания ПК, что может оказаться очень удобным при установке матрицы в боковую стенку системного блока - этакий вариант продвинутого "моддинга". При сборке устройства вначале необходимо распаять все детали кроме светодиодов. Затем производится монтаж первого ряда светодиодов параллельно регистрам. Чтобы светодиоды были все на одном уровне, необходимо воспользоваться пластиковой или картонной полоской толщиной 1мм и размерами 12х130 мм, которая при сборке вставляется между ножками светодиодов и служит ограничителем между светодиодом и платой. Далее запускается программа и контролируется работоспособность установленных светодиодов. Затем монтируется второй ряд и т.д. Здесь необходимо предупредить, что любой монтаж а также подключение - отключение разьёмов недопустимо при включенном компьютере, это может повлечь за собой выход из строя LPT порта, а так как в современных компьютерах они интегрированы в материнскую плату, то и её судьба предрешена. И вообще, для подобных экспериментов лучше приобрести отдельную LPT-карту. Печатная плата в формате Sprint-Layout 4. При желании можно выполнить матрицу на 10 - миллиметровых светодиодах с увеличением рабочего поля до 32x32 см или же на светодиодных кластерах с ещё большим размером экрана (дискотечный вариант), но при этом необходимо использовать более мощные ключевые транзисторы. При расчете тока необходимо учитывать что к каждому транзистору VT1 -VT16 одновременно может быть подключено до 16 светодиодов (кластеров). 
В конструкции желательно использовать сверхяркие светодиоды, хотя и на наших АЛ307 смотрится вполне прилично.

Программное обеспечение написано на VISUAL BASIC 6.0 и в связке с используемым бесплатным драйвером портов dlportio.dll позволяет работать во всех версиях WINDOWS (95 - XP). Программа тестировалась на разных компьютерах начиная с Pentium - 233 Mhz и заканчивая Pentium-IV 2000 Mhz. Исполняемый файл matrix.exe не может работать сам по себе. (К сожалению, это неудобство выбранного языка программирования компенсируется малым временем разработки приложений.) Для его работы необходимо наличие или установленного VB 6.0, или его основных компонентов (asycfilt.dll, COMCAT.DLL, DLPORTIO.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll, VB6STKIT.DLL, comdlg32.ocx, MSCOMCTL.OCX, MSCOMM32.OCX, stdole2.tlb). В принципе, в среде VB можно сделать полноценную инсталляционную программу. Библиотеку dlportio.dll необходимо скопировать в папку Windows/System. Программному обеспечению было уделено особое внимание. Для удобства оператора программа эмулирует виртуальную светодиодную матрицу, где щелчком мыши можно включить или выключить необходимый светодиод, а также произвести над всей матрицей желаемые манипуляции. Тоже самое происходит и с настоящими светодиодами. По аналогии с высокими языками программирования данный подход написания эффектов можно смело назвать визуальным. Файлы примеров находятся в папке "Sprite".

В блоке интерфейса SPEED производится регулировка скорости переключения эффектов. 
Блок IMAGE позволяет инвертировать картинку, сдвигать вверх, вниз, вправо, влево, вращать по часовой стрелке и против, отражать по вертикали - горизонтали, копировать и вставлять спрайт, а также включать или выключать все светодиоды. ANIMATION создаёт новый эффект, сохраняет созданный, открывает существующий (расширение " led "), добавляет и удаляет спрайты в проекте, осуществляет перемещение по спрайтам с индикацией их максимального количества и текущего спрайта. Здесь же можно запустить выбранный эффект, отключить вывод видео на виртуальный или реальный экраны. Особо следует отметить кнопку "Slideshow". При её активизации выбирается обычный текстовый файл с расширением " pat ", в котором указана последовательность воспроизводимых эффектов. Таким образом можно создавать целые световые композиции. Ну и конечно же о недостатках: Как известно, WINDOWS не является системой реального времени, и поэтому добиться стабильных временных задержек довольно проблематично. Под WINDOWS 95-МЕ работает достаточно стабильно, а вот под ХР есть нюансы. Желательно добавить приоритет в диспетчере задач. А ещё лучше выходной файл отправлять через последовательный порт на контроллер, который и решает стабильные временные задержки в динамической развёртке, что реализовано в последующих проектах. Можно довольно просто добавить синхронизацию с музыкой (используя библиотеку bass.dll). Проект открыт, повторяйте, усовершенствуйте, делитесь спрайтами. Удачи!

Автор - Василий Рубашка.  По материалам сайта radiokot.ru