|
Делаем Хромактион
Статьи публикуются по мере поступления. Для упорядоченного тематического
поиска воспользуйтесь блоком "Карта сайта"
CHROMATICON на самом деле представляет собой октавное устройство отображения, и его не следует путать со схемами, которые часто называют органами цвета. Традиционно схемы цветных органов, преобразующие звук в свет, представляют собой активные полосовые фильтры, состоящие из конденсаторов, резисторов и операционных усилителей. Эти фильтры разделяют низкие, средние и высокие частоты, которые можно использовать для освещения светодиодов с различной длиной волны. Последняя схема цветного органа, которую я пытался собрать, была куплена после просмотра крутого видео на YouTube под названием «Circuit Skills». Видео было для комплекта, который продавался примерно за 40 долларов и содержал довольно много деталей. По какой-то причине наличие такого количества деталей заставило меня почувствовать, что она должна быть лучше, чем последняя, которую я построил. После того, как казалось, что на создание и настройку уйдет целая вечность, его производительность не оправдала моих ожиданий. Как и другие подобные схемы, которые я построил в прошлом, я считаю, что полное суммирование частот таким способом несколько неинтересно. Персонализация этих цепей обычно означает просто выбор различных цветовых комбинаций огней для трех полос, а масштабируемость ограничена силой и количеством огней. Именно здесь CHROMATICON и схемы органов цвета расходятся. В схемах цветных органов шаблоны, которые могут отображаться, фиксируются физическим расположением светодиодов. Однако в CHROMATICON отображаемые узоры контролируются программным обеспечением. Вместо того, чтобы вяло реагировать на ввод музыки, CHROMATICON оживает с каждой сыгранной нотой, и каждая песня отображается каким-то уникальным образом. Это заставило меня возродить интерес к моей музыкальной коллекции, и мне не терпится увидеть, как будет отображаться каждая песня. Ниже приводится простой обзор основ сочинения музыки, который может помочь в понимании моего подхода к моей технике преобразования звука в свет. Традиционная музыка состоит из отдельных частот, составляющих семь нот или диатоническую шкалу, состоящую из нот до, ре, ми, фа, соль, ля и си. на самом деле 12 нот в хроматической гамме, записанные как C, C#, D, D#, E, F, F#, G, G#, A, A# и B. На фортепиано эти 12 нотных гамм повторяются от первой октавы (CDEFGAB) до седьмой октавы (CDEFGAB) плюс минорная терция (от A0 до C8) на клавиатуре из 88 клавиш. Октава — самый простой интервал в музыке. Это интервал между нотами в одной октаве и такой же нотой в более низкой или более высокой октаве. Диапазон частот между нотами от одной октавы до другой составляет половину или удвоенную частоту ноты. Например, нота ля четвертой октавы имеет частоту 440 Гц. Нота ля на октаву выше (A5) имеет частоту 880 Гц, а нота ля на октаву ниже (A3) — 220 Гц. Учитывая, что октава является такой фундаментальной частью создания музыки, для меня имеет смысл построить схему, которая может визуализировать ноты, играемые во всем диапазоне октав, используемых для сочинения музыки. Сердцем этой схемы является PICAXE, но она может быть построена с использованием любого процессора, способного измерять частоту. Микросхемы PIC, PICAXE и Stamp могут измерять частоту с помощью команды COUNT или PULSIN . Я не тестировал схему с семейством Atmel (Arduino), но полагаю, что у нее есть похожая команда Pulse(IN) . Работа схемы предельно проста. Линейный выход аудиоисточника подключается к входному контакту 08M2 с помощью конденсатора 0,1 мкФ через ограничительный резистор. PIC 20M2, выбранный для этого проекта, позволяет использовать до 15 выходов для управления светодиодами и один контакт, необходимый для аудиовхода. При использовании этого метода для преобразования звука в свет существует два лагеря дизайнеров. С одной стороны, путем жесткого подключения светодиодов можно получить больше шаблонов, используя меньшее количество портов ввода/вывода. Альтернативным методом является индивидуализация соединений со светодиодами. Этот метод позволяет быстрее исчерпать линии ввода-вывода, но обеспечивает большую гибкость в отображении шаблонов светодиодов, просто изменив программное обеспечение. Вот как была спроектирована описанная здесь схема. Следуя схеме, показанной на рисунке 1 , линия левого или правого канала от источника звука подключается к выводу C.6 PIC с помощью конденсатора емкостью 1 мкФ. Единственная разница между этой схемой и минимальной схемой заключается в использовании дополнительного массива Дарлингтона для удовлетворения большего количества операций ввода-вывода.
РИСУНОК 1. Пример конструкции системы с использованием микроконтроллера PIC 20M2.
Для дисплея подойдет любой светодиод средней мощности. Средний диапазон выходной мощности обычно составляет от 2500 до 8000 мкд. Светодиоды, используемые в этой конструкции, относятся к этому диапазону, и все они имеют максимальный номинальный ток около 22 мА. Светодиоды пульсируют и никогда не включаются дольше, чем на 50 мс. Это снижает ток примерно до 15 мА и позволяет подключать диоды параллельно без использования токоограничивающих резисторов. Вы можете включить резисторы во время экспериментов, и их следует добавить между выходами транзисторов Дарлингтона и катодной стороной светодиодов. Обязательно используйте LINE OUT от источника звука, а не усиленный выход. Существует минимальный порог напряжения для входа (примерно 1 В от пика до пика). Лучше всего начать с максимальной настройки LINE OUT на устройстве-источнике, а затем уменьшить ее по мере необходимости по личному вкусу. На рис. 2 приведен пример расположения светодиодов для CHROMATICON. Плата, используемая для дисплея, представляет собой макетную плату размером 4 x 6 дюймов с металлизированными сквозными отверстиями. Имея 15 линий ввода-вывода, существует множество вариантов организации светодиодов. Если вы подключаете более одного светодиода на линию, подключайте дополнительные источники света параллельно. Отдельные и сгруппированные диоды подключаются к розеткам SIP с восемью контактами на каждой стороне платы, установленными в центре, как показано на рисунке 2 .
РИСУНОК 2. Соединение для светодиодов и крупный план проводки дисплея.
Единственный контакт, который имеет значение для согласования со схемой драйвера, — это линия питания +5 В. Остальные подключения к светодиодам не должны следовать какому-либо строгому порядку и должны выполняться по возможности, стараясь избежать использования перемычек. На рис. 3 представлена фотография схемы драйвера, которая использовалась в прототипе. Драйвер содержит всю электронику, необходимую для схемы.
РИСУНОК 3. Сторона компонентов схемы драйвера.
Компоненты на этой плате были соединены вместе с помощью серебряных токопроводящих чернил, но подойдет любой метод соединения. На рис. 4 показана задняя сторона или сторона межсоединений платы драйвера. Соединения для прототипа были сделаны проводящими чернилами, но можно использовать любой метод соединения. Детали расположены очень близко друг к другу, что облегчает их соединение.
РИСУНОК 4. Сторона проводки платы драйвера.
На рис. 5 показан отраженный рисунок чернил для дизайна. Соединения сзади должны быть отражены, чтобы обеспечить правильное подключение контактов 1 для микросхем. В качестве альтернативы этот же шаблон можно использовать для пайки проволочных шин для соединения компонентов.
РИСУНОК 5. Сторона подключения платы драйвера.
Маршруты имеют цветовую кодировку для разделения питания, земли и сигналов. На рис. 6 показан вид платы сбоку с правильным расположением штекерных разъемов. Их необходимо установить таким образом, чтобы штырьки были обращены в указанном направлении для подключения к гнездовым разъемам на плате дисплея.
РИСУНОК 6. Проводные соединения с платой драйвера.
Проводка для схемы подведена к основанию держателя документов за платой дисплея. Он состоит из кабеля для программирования, аудиовхода и источника питания для схемы, как показано на рисунке 6 . Вы можете использовать экранированный кабель для подключения к аудиоразъему 3,5 мм для аудиовхода. Подключение порта программирования требует специального подключения к разъему, как описано в руководстве PICAXE. Четыре батарейных блока AAA подключены непосредственно к плате и служат выключателем питания для схемы. Если хотите, вы можете заменить или добавить источник питания 5 В, например, от порта USB или другого выпрямленного источника для питания схемы без модификации электроники. Запаса NiMH хватит примерно на неделю, после чего его нужно будет подзарядить. На рис. 7 показан пример собранных компонентов. Драйвер дисплея подключается к задней части платы дисплея в виде щита с помощью заголовков SIP. Когда драйвер подключен к плате дисплея, вся сборка крепится к вертикальной панели держателя документов, также показанной на рис. 7 .
РИСУНОК 7. Дисплей и плата драйвера, подсоединенные к передней части держателя документов.
Два восьмиконтактных штекерных разъема, расположенных на плате драйвера, питают плату дисплея 15 линиями ввода/вывода и положительное питание через два разъема. Резьбовые стойки используются для крепления дисплея и щитка водителя к раме держателя документов. Программное обеспечение для схемы довольно простое. Мы в основном используем PIC в качестве счетчика частоты с низким разрешением. Я начал писать это программное обеспечение, используя команду COUNT для фактического измерения буквальной частоты. Это бы сработало, если бы мы просто измеряли статические тона, но для динамической музыки оказалось слишком медленно. Альтернативой является использование PULSIN .Команда, которая измеряет длину входящих импульсов и выдает соответствующее число от нуля до 255. Это менее изящно, но в конце дня выборки октавы достигается тот же чистый результат. Вы просто должны быть готовы сначала преобразовать целевой диапазон частот в соответствующие 256-битные значения, а затем использовать это преобразованное значение в своих условных операторах. На самом деле это проще, чем кажется. Чтобы преобразовать вывод с помощью команды PULSIN , запустите окно DEBUG и введите частоту в PIC, используя следующий пример кода:
DO ; begin loop<br /> PULSIN C.6, 1, W0<br /> <br /> ; measure the frequency on pin C.6 and put<br /> ; result in variable W0<br /> DEBUG W0 ; start DEBUG monitor<br /> LOOP ; do again
Окно DEBUG покажет список всех ваших переменных. Если входная частота была 2400 Гц, преобразованное значение 19 — это то, что было сохранено в W0, как показано на рисунке 8 . Вместо того, чтобы использовать фактическую частоту в Гц для октавного диапазона, вы должны записать преобразованное значение как для нижнего, так и для верхнего предела октавного диапазона, а затем использовать эти значения в своих условных операторах.
РИСУНОК 8. Пример процесса преобразования частоты.
Программное обеспечение, сопровождающее этот проект, уже содержит переведенные значения. Вы можете перепроверить калибровку, особенно если вы вносите какие-либо изменения в прилагаемые схемы. Команда измерения частоты PULSIN требует только трех аргументов: порта или номера вывода для входа, состояния , из которого выполняется измерение, и переменной , используемой для хранения значения частоты. Эта команда измеряет длину импульса на входном контакте. В зависимости от переменной State он измеряется либо по переднему фронту входного сигнала, либо по заднему фронту, указанному путем объявления значения 0 или 1 в командной строке. Измеренный результат помещается в переменную по выбору. Например:
PULSIN C.6, 1, W0 <br /> ; measure the low to high transitions on C.6<br /> ; & stores in W0
Тактовая частота микроконтроллера по умолчанию 4 МГц более чем достаточна для измерения слышимых частот. Используя таблицу установленных частот для музыкальных нот, результат, хранящийся в переменной W0 , можно использовать для инициирования некоторого события, такого как включение назначенного светодиода или группы светодиодов. Мы можем использовать список частот, составляющих хроматическую шкалу для любой октавы, например, пример, показанный в таблице 1 , используется для шкалы четвертой октавы.
Note |
Frequency (Hz) |
C4 |
261.63 |
C#4/Db4 |
277.18 |
D4 |
293.66 |
D#4/Eb4 |
311.13 |
E4 |
329.63 |
F4 |
349.23 |
F#4/Gb4 |
369.99 |
G4 |
392.00 |
G#4/Ab4 |
415.30 |
A4 |
440.00 |
A#4/Bb4 |
466.16 |
B4 |
493.88 |
ТАБЛИЦА 1. Частоты нот для 4-й октавы.
Используя этот список и с помощью генератора тона, вы можете составить опись переведенных чисел для каждой октавы. Для списка в таблице 1 перевод будет выглядеть примерно так:
C 4 = 261 герц в переводе = 17 (начало 4-й октавы)
B 4 = 493 герц в переводе = 37 (конец 4-й октавы)
Чтобы зажечь светодиод или группу светодиодов с определенной длиной волны, включающей диапазон частот, вам нужно только предоставить условное утверждение IF/THEN для желаемого диапазона. Ниже приведен фрагмент кода, который заставит группу из четырех желтых светодиодов, показанных на схеме, загореться, если входная частота дискретизации находится в диапазоне от 260 до 493 Гц:
ПРИМЕР РАЗЛИЧИЯ ДЛЯ 4-Й ОКТАВЫ:
If W0 > 16 and W0 < 38 THEN<br /> ; any notes between 260Hz<br /> ; to 494Hz
HIGH Y_UL,Y_UR,Y_LL,Y_LR : PAUSE<br /> DELAY:LOW Y_UL,Y_UR,Y_LL,Y_LR <br /> ; light these 4 LEDS
Этот оператор IF/THEN зажигает четыре светодиода, подключенных к портам B.0-B.3, если семплируются какие-либо ноты в пределах четвертой октавы. Вы можете пойти еще дальше, чтобы усилить эффект преобразования звука в свет, разделив октаву на несколько шаблонов желтого освещения. Мы можем добиться этого, зажигая верхний левый (Y_UL) и нижний правый (Y_LR) светодиоды, если это самая низкая часть октавы, и верхний правый и нижний левый светодиоды, если это самая высокая частота. Зарезервировав только центральную часть октавы для освещения всех четырех огней, можно создать очень интересный эффект. Это помогает назначать имена для портов, которые указывают на их физическое расположение. Этот же метод можно использовать для обозначения того, когда проигрываются ноты из других октав. Использование светодиодов одного цвета, расположенных в различных узорах, создает еще один интересный эффект. Я считаю, что использование достаточного количества светодиодов для создания квадратных, диагональных или крестообразных рисунков может дать наилучшие эффекты с наименьшим количеством светодиодов. Расположение светодиодов, показанное на рисунке 2 , является примером предлагаемого расположения. Программное обеспечение, доступное для загрузки, было написано специально для расположения диодов, показанного на рисунке 5 .. Код хорошо задокументирован и должен служить отправной точкой для макета вашего собственного дизайна. Эту конструкцию можно масштабировать несколькими способами. Одним из способов освобождения линий ввода-вывода является жесткое подключение светодиодных шаблонов. Это позволит вам иметь больше узоров. Другой метод заключается в подключении большего количества светодиодов параллельно к существующим линиям ввода/вывода. Каждый ULN2803 рассчитан на ток до 500 мА. Продолжительность того, как долго светодиод остается открытым во время работы, контролируется значением, хранящимся в переменной DELAY . В предоставленном листинге программы задержка установлена на 50 миллисекунд, но вы можете использовать разные времена задержки для диапазонов распознаваемых частот . Может быть заметна разница при использовании более длительного времени включения для более высоких частот и более короткого времени для более низких частот.
СПИСОК ДЕТАЛЕЙ
ITEM |
QTY |
DESCRIPTION |
BRD1 |
1 |
Proto Board |
BRD1 |
1 |
Proto Board |
SCKT1 |
1 |
20 Pin Socket |
SCKT2 |
2 |
18 Pin Socket |
IC2,3 |
2 |
ULN2803 |
J1,2 |
2 |
3.5mm Audio |
Z1 |
1 |
2.7V Zener Diode |
C2 |
2 |
.01 µF Capacitor |
R1 |
1 |
10K 1/4W Resistor |
R2 |
1 |
22K 1/4W Resistor |
R3 |
1 |
100 Ohm Resistor |
R4 |
1 |
10 Ohm Resistor |
SP |
4 |
1/2” Standoffs |
PH |
8 |
4-40 Screws |
D1-8 |
8 |
Green LED |
D9-14 |
6 |
Blue LED |
D15-18 |
4 |
Yellow LED |
D19-22 |
4 |
Pink LED |
D23 |
1 |
Red LED |
HDR1 |
1 |
40 Pin Male SIP |
HDR2 |
1 |
40 Pin Female SIP |
IC1 |
1 |
PICAXE 20M2 |
BATT |
1 |
4AAA Batt Holder |
HLDR |
1 |
Document Holder |
MISC |
DOWNLOADS