elchupanibrei (elchupanibrei) wrote,
elchupanibrei
elchupanibrei

Category:

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

“Мы что-нибудь придумаем” - Команда разработчиков Arduino

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

Aduino_Processing_Disco_Light_web

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

1. Каналов – чем больше тем лучше.  (максимальное 6. См Призма Ньютона)
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 не далеко. Так же к достоинствам можно отнести кроссплатформеность - одним движением мыши можно скомпилировать любой скеч для утонченных вледельцев  компьютеров APPLE.

    Ниже приведен скриншот скеча для 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