elchupanibrei (elchupanibrei) wrote,
elchupanibrei
elchupanibrei

Category:

LED DISCO - Arduino + Processing вместе веселее

Еще один скелет в моем шкафу. Валяется у меня уже около года и даже показывает какие-то эффекты. В планах было причесать код клиента, написанного на processing. Завернуть что надо в функции, добавить графическую оболочку с помощью библиотеки controlP5 и уже после выложить в эти ваши интернеты. Жизнь как всегда внесла коррективы, но об этом в другой раз. Что сейчас. В планах переписать клиентскую часть под JAVA, даже учебник купил. Лежит возле кровати 3-ю неделю и собирает пыль. Поэтому когда сие произойдет я и сам не знаю. Пока выкладываю как есть. Ну что поехали?


Aduino_Processing_Disco_Light_web

Меня давно тянуло собрать цветомузыкальную установку. В школьные годы даже была удачная попытка - простейшая теристорная ЦМУ, кто нюхал канифоль то знает. Шли годы, росли требования, менялись жизненные приоритеты, но желание не пропадало. Dial-Up сменился DSL, но на запрос ”ЦМУ” Google как и 5 лет назад хранил полное молчание. А хотелось вот чего:

1.Каналов чем больше тем лучше
2.Широкий динамический диапазон (количество градаций яркости каждого канала)
3.Автоматическая регулировка усиления (АРУ) каждого канала или хотя бы - покрутил один раз и забыл на полгода
4.В общем хотелось чего-то однокристального, цифрового и простого.

Из хотелок вытекало, что без PIC/ATMEL и быстрого преобразования Фурье (FFT) не обойтись. Для меня - человека слабо понимающего в прерываниях и тактах, много станиц описания микропроцессоров приводят в уныние и нагнетают тоску. В паутине натыкаюсь на статью "Кошачий Глаз/Cats Eye". Устройство превосходное, кроме одного маленького “но” – программировать ATMEL нечем. Даже программатор Громова был не вариант - LPT порт в моем PC отсутствовал как класс, но идея использовать PC для FFT, сжатия динамического диапазона и выполнения всей черновой работы и выдавать в USB/COM порт только номеров каналов и значение яркостей - показалась мне гениальной, так как последние 10 лет я слушаю музыку исключительно с компьютера.

Прочесав интернет решил остановиться на связке Arduino + Processing. Первый имеет практический нулевой порог вхождения. Вам не надо иметь глубокие знания в архитектуре микропроцессоров ATMEL. Программатор тоже не нужен - программная оболочка Arduino и уже зашитый в микропроцессор bootloader сделает все за вас. Не надо знать языки программирования - три строчки и вы уже мигаете светодиодом LED13. В вашем распоряжении 6+14 програмируемых вход/выходов (справедливо для Arduino Duemilanove). Тонны библиотек поддерживающих от ультразвуковых датчиков расстояния до твердотельных гироскопов. Отличный англоязычный форум помогающий новичкам. В общем если вы хотите начать работать с микропроцессорами, но не знаете как - начните с Arduino/Freeduino. Из недостатков я бы отметил только один – низкая квалификация большинства активных участников в интернете. “Говнокод” шарашит по новичкам и плохие привычки становятся правилами. Так что копируя мой код подумайте, а нельзя ли сделать его проще/лучше.

Языки Arduino и Processing очень просты и имеют общего прадедушку и ”C” синтаксис. Зная как писать скетч/sketch в Arduino, вы без труда разберетесь и в Processing. После и до AVR Studio не далеко.

Ниже приведен скриншот скетча для Arduino. Он не претендует на эталон, так как это мой первый проект. Если вы не хотите спалить выходы Arduino, подключайте светодиоды последовательно с токооганичивающими резисторами номиналом - 470Ом.

Arduino_sketch_web

Скетч Pocessing-а, состоит из самого скетча ”LED_Disco.pde” и дополнительного класса ползунка ”slider.pde”. Так же понадобится библиотека для работы со звуком - ”Ess”. Взять ее можно отсюда: http://www.tree-axis.com/Ess/.  Выглядит кусок скетча так.

Processing_sketch_web

Перед запуском клиентской части нужно произвести настройку захвата звука со стерео микшера Винды. Очень хорошо и подробно данная процедура описана в статье о "Кошачем Глазе". Ознакомиться с ней можно тут: http://radiokot.ru/circuit/light/run/35/.

Исходники для Arduino и Processing можно взять тут: http://rusfolder.com/32638761
Tags: arduino
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments