AVARGESNANO.NAROD.RU

MIDI DJ CJ CONTROLLER version EASY

MIDI DJ CJ Controller EASY

Давно хотелось иметь в распоряжении пару "крутилок" для экспериментов с FruityLoops, поискал в интернете и понял, что достать такую штуку дешевле 3000 рублей в принципе не получится, вопрос "оно мне очень надо ???" не дал потратить сумму. Тогда и решил пару лет спустя вернуться в радиолюбительство и сделать самоделку на микроконтроллере. А раньше паял только логику к155, в общем, схемы имеющиеся в сети с кучей деталей не очень обрадовали, кварца тоже не было, тогда и решил упростить имеющиеся схемы до минимума. Самое главное она уже у меня успешно работала к вечеру первого дня, учитывая время на написание программы для микросхемы.

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

Схема:

MIDI DJ CJ CONTROLLER version EASY

Процесс работы устройства следующий: микроконтроллер примерно 40 раз в секунду считывает положение каждой крутилки и если положение изменилось, то новые данные пересылает по миди в компьютер. Положение крутилки определяется по замеру падения напрежения на соотвественном переменном резисторе, далее это значение оцифровывается, проходит програмный фильтр помех и затем высылается в цифровой форме по миди протоколу на скорости 31250 Гц.
Питание происходит прямо от гэйм порта звуковой карты. Кстати, проверьте есть ли этот порт у вашей карты. Программирование от ЛПТ порта простейшим методом 5 проводков - на схеме обозначено красным, если вам кто-то прошьёт микросхему другим способом то эту часть схемы можно выкинуть.
Микроконтроллер Atmega16-16PU работает на частоте 1 МГц от встроенного генератора, переменные резисторы R1,R2 - у меня китайская копия наших СП3-4, номиналы не зависят друг от друга и могут быть от 10 до 100 кОм, меньше 10 кОм не желательно - гэйм порт не расчитан на большой ток по питанию схемы. Важно только чтобы R1,R2 были максимально новые, старые затёртые переменники при кручении дают большую помеху. Резистор R3 любой например МЛТ-0.125, как вариант его можно вообще не ставить, но это немного более рискованно для гэйм порта, то есть номинал от нуля Ом до 200 примерно, если поставить больше, тогда порт перестанет чувствовать МИДИ сигнал. Конденсатор C1 - любой керамический 0.1..0.47 мкФ, он защищает микроконтроллер от высокочастотных помех по питанию, которые он сам себе может создать. Печатной платы нет - всё аккуратно припаивается к микроконтроллеру тонкими проводками, только надо следить чтобы провода на которых +5 вольт никуда не приконтачились случайно. Если устройство заработает не поленитесь сделать плату. Я же её не сделал, потому, что планирую дальше добавить пару кнопок и ещё пару крутилок, в принципе на этом микроконтроллере вполне возможно сделать порядка 64 кнопок и ещё столько же крутилок. Провода от переменных резисторов до микросхемы должны быть максимально короткими и располагаться как можно дальше от источников помех, как блоки питания, телевизоры итд. Провода идущие к лпт порту не рекомендуется делать длинее 20 см, также по причине помех.

Программа и прошивка:

MIDI DJ CJ Controller EASY.zip

Программа на языке Си, написана при помощи CodeVisionAVR C Compiler, добрая половина когда сгенерировалась автоматически при создании проекта в компиляторе. Чтобы прошить чистую новую Atmega16-16PU (фьюзы менять мы не будем - останутся именно те, которые идут по умолчанию в новом микроконтроллере) нужно подключить её к ЛПТ порту и к миди порту (от него происходит питание), затем берем программу прошивалку, я использую uniprof, в нёй надо сначала нажать кнопку lpt pins и настроить в соответствии со схемой нашего устройства, при этом галочки "inverse" ставить не нужно, далее микропроцессор определяется как mega16, затем надо открыть HEX прошивку и нажать PROG, потом нажать TEST, если пишет что "идентично" то порядок, закрываем программатор, открываем фрутилупс, выбираем вход миди с порта звуковой карты, потом начинаем крутить любую крутилку и видим что "светодиод" MIDI в фрутилупсе начинает мигать. Если он мигает даже когда вы не трогаете крутилку, значит у нас помеха, то есть вы не впаяли один из переменных резисторов или их номиналы слишком велики, попробуйте уменьшить номинал (но не меньше 10 кОм), использовать экранированный провод. Я экспериментировал на операционке Windows XP SP2, за висту и семерку не ручаюсь - может блокировать доступ к портам, особенно LPT. Надо сказать с программированием микроконтроллера по LPT первое время у меня были проблемы, но всё стало понятно при использовании программки XPLPT - она показывает на какой ножке ЛПТ порта какой сигнал, например при программировании на ножку RESET контроллера должен уходить ноль, а если поставить единицу, то схема начинает работать по программе. Для мониторинга миди сообщений, приходящих на компьютер хороша программа MIDI-OX.

В итоге имеем желанное и работоспособное устройство вложив немного времени и всего порядка 200 рублей на детали. А дальше можно подумать хватает двух крутилок или собрать схему посложнее. Лично для меня самой трудной проблемой стало найти подходящий красивый корпус для устройства.

P.S. Все упомянутые программы и непонятные термины ищите в гугле, они там есть.

AVARGESNANO.NAROD.RU

Hosted by uCoz