MIDI контроллер
- khomych
- Мучитель микросхем
- Сообщения: 423
- Зарегистрирован: Сб фев 21, 2009 16:11:32
- Откуда: Харьков
- Контактная информация:
MIDI контроллер
привет!
вот, недавно начал изучать музыкальные проги (в частности Ableton Live) и столкнулся с первой проблемой: без миди контроллера работать с прогой довольно проблематично. проанализировав рынок готовых контроллеров решил отказаться от буржуйских девайсов по причине их дороговизны при низкой функциональности.
решил замутить сам. был выбран МК ATMEGA8. принцип работы: МК периодически считывает с переменных резисторов напряжение (старшие 7 бит) и посылает через аппаратный UART три байта (ControllerChange, Controller number, value). собственно с этим проблем не испытываю. проблема с переменниками. в данном случае их пока шесть штуккаждый подключен в отдельному каналу АЦП. резюки по 100 КОм линейная зависимость.они немного фонят. тобиш иногра значение и АЦП колеблется в пределах +/- 2 единицы, иногда и больше. но бывает и без фона. походу проблема с резюками. схема включения МК из даташита: питание аналоговой части через указаный LC фильтр, параметры работы АЦП менял по разному (опорное напр., частота) и это на "фон" резисторов никак не влияло, как конили так и фонят. кстати резюки СП3-4аМ (кака, да?). вопрос собственно про резисторы. можно ли как нибудь эти подправить (типа их смазкой забить какойнибудь) или меньшего сопротивления поставить (50, 10, 5 КОм) или мож поставить буржуйские переменники (но какие? фирмы, модели). и как мне резюки в матрицу соединить . допустим 18 шт( 6 каналов АЦП - "строки", три пина контроллера - "столбцы", ну Вы поняли..)я пытался, но у мну был странный фон и глюки....помогите кто чем может ..ггггг.....
п.с. пишу в CodeVisionAVR. проблем с кодом особо не испытываю, хотя токо начал изучать. в инете нашел подобный проект на pic16f877 (кажись). его не предлагать из-за некоторых причин.
вот, недавно начал изучать музыкальные проги (в частности Ableton Live) и столкнулся с первой проблемой: без миди контроллера работать с прогой довольно проблематично. проанализировав рынок готовых контроллеров решил отказаться от буржуйских девайсов по причине их дороговизны при низкой функциональности.
решил замутить сам. был выбран МК ATMEGA8. принцип работы: МК периодически считывает с переменных резисторов напряжение (старшие 7 бит) и посылает через аппаратный UART три байта (ControllerChange, Controller number, value). собственно с этим проблем не испытываю. проблема с переменниками. в данном случае их пока шесть штуккаждый подключен в отдельному каналу АЦП. резюки по 100 КОм линейная зависимость.они немного фонят. тобиш иногра значение и АЦП колеблется в пределах +/- 2 единицы, иногда и больше. но бывает и без фона. походу проблема с резюками. схема включения МК из даташита: питание аналоговой части через указаный LC фильтр, параметры работы АЦП менял по разному (опорное напр., частота) и это на "фон" резисторов никак не влияло, как конили так и фонят. кстати резюки СП3-4аМ (кака, да?). вопрос собственно про резисторы. можно ли как нибудь эти подправить (типа их смазкой забить какойнибудь) или меньшего сопротивления поставить (50, 10, 5 КОм) или мож поставить буржуйские переменники (но какие? фирмы, модели). и как мне резюки в матрицу соединить . допустим 18 шт( 6 каналов АЦП - "строки", три пина контроллера - "столбцы", ну Вы поняли..)я пытался, но у мну был странный фон и глюки....помогите кто чем может ..ггггг.....
п.с. пишу в CodeVisionAVR. проблем с кодом особо не испытываю, хотя токо начал изучать. в инете нашел подобный проект на pic16f877 (кажись). его не предлагать из-за некоторых причин.
- khomych
- Мучитель микросхем
- Сообщения: 423
- Зарегистрирован: Сб фев 21, 2009 16:11:32
- Откуда: Харьков
- Контактная информация:
да схемы нет. все примитивно до немогу. попытаюсь на словах. контроллер питается от гейм порта зкувовухи (запитывал также от ЮСБ), на питании электролит 1000микр, аналог.притание МК через LC фильтр (из даташита) на PC0-PC6 подключены ползунки резисторов. крайние выводы резисторов на землю и питание. провода не экранированные, т.к. оч короткие. корпуса резисторов естественно на земле.
о работе АЦП. запускаю одиночное преобразование. жду прерывания от АЦП. выполняю рассчет, отправляю в ЮАРТ, вывожу на дисплей состояние (дисплей для отладки), выбираю другой канал АЦП, выхожу назад. ну еще коегде задержки добавлены. прога тоже примитивная до невероятия.
о резисторах. вот допустим он начинает фонить (видно по LED - индикатор активности миди и дисплее (он, как говорилось више временный)) стоит слегка коснуться ручки и все успокаивается. на крайних положениях ползунка фона нет.
что посоветуете с резюками делать? эти шесть то я выброшу. какие купить? десятиклоомные СП3 или мож буржуйские? просто разница в цене немаленикая 2-3 раза дороже. а мне их нада штук тридцать...
кстати в музыкальном магазине видел "такие же буржуйские" резюки как и на рынке но по цене 10-20 уе. за штуку, что это? мож они освящены в Ватикане??? или чем обусловлена такая цена?
о работе АЦП. запускаю одиночное преобразование. жду прерывания от АЦП. выполняю рассчет, отправляю в ЮАРТ, вывожу на дисплей состояние (дисплей для отладки), выбираю другой канал АЦП, выхожу назад. ну еще коегде задержки добавлены. прога тоже примитивная до невероятия.
о резисторах. вот допустим он начинает фонить (видно по LED - индикатор активности миди и дисплее (он, как говорилось више временный)) стоит слегка коснуться ручки и все успокаивается. на крайних положениях ползунка фона нет.
что посоветуете с резюками делать? эти шесть то я выброшу. какие купить? десятиклоомные СП3 или мож буржуйские? просто разница в цене немаленикая 2-3 раза дороже. а мне их нада штук тридцать...
кстати в музыкальном магазине видел "такие же буржуйские" резюки как и на рынке но по цене 10-20 уе. за штуку, что это? мож они освящены в Ватикане??? или чем обусловлена такая цена?
- khomych
- Мучитель микросхем
- Сообщения: 423
- Зарегистрирован: Сб фев 21, 2009 16:11:32
- Откуда: Харьков
- Контактная информация:
вот проект на ПИК контроллере. нашел в инете.что вы скажете о подключении переменников? какой то странный делитель напряжения или я чегото неврубаюсь?
- Вложения
-
- MIDI Контроллер.zip
- весь проект
- (107.45 КБ) 3033 скачивания
-
- sch.jpg
- (58.11 КБ) 3729 скачиваний
-
YurkaM
- Нашел транзистор. Понюхал.
- Сообщения: 151
- Зарегистрирован: Пн сен 01, 2008 14:49:03
- Откуда: Казахстан
Обычное подключение. Матрица. По аналогии с клавиатурной матрицей. На RD0, RD1, RD4 (столбцы) поочерёдноо выводится "1". Через потенциометры (R4) и развязывающие диоды (D4) нарпяжение подаётся на строки и считывается АЦП.
Сам проект не смотрел, возможно там даже матрица смешанная из кнопок и потенциометров...
Насчёт фона. Не пробовал конденсаторы цеплять между массой и входами АЦП? 0.1мкф...1мкф.
Ещё возможно неудачная разводка земли на плате. Ну и если никаких програмных хитростей нету, то всегда обудут существовать "пороговые" положения потенциометров когда 1 разряд прыгает туда-сюда при малейшей помехе.
Сам проект не смотрел, возможно там даже матрица смешанная из кнопок и потенциометров...
Насчёт фона. Не пробовал конденсаторы цеплять между массой и входами АЦП? 0.1мкф...1мкф.
Ещё возможно неудачная разводка земли на плате. Ну и если никаких програмных хитростей нету, то всегда обудут существовать "пороговые" положения потенциометров когда 1 разряд прыгает туда-сюда при малейшей помехе.
Последний раз редактировалось YurkaM Сб фев 21, 2009 19:05:08, всего редактировалось 1 раз.
khomych писал(а):кстати в музыкальном магазине видел "такие же буржуйские" резюки как и на рынке но по цене 10-20 уе. за штуку, что это? мож они освящены в Ватикане??? или чем обусловлена такая цена?
То они бабки так зарабатывают на музыкантах, переписывая цены друг у друга из прайсов.
Китайские за 50 центов, в большинстве своем не хуже.
- khomych
- Мучитель микросхем
- Сообщения: 423
- Зарегистрирован: Сб фев 21, 2009 16:11:32
- Откуда: Харьков
- Контактная информация:
насчет кандеров неполучится. в моем случае (только шесть переменников, у каждого свой канал АЦП) еще можно. я ставил на 100 нф уже ощущалось смазывания, вялость ручки а в ллучае ,когда на каждом канале будут висеть несколько резюков, что будет "смешивание" значение, т.к. они поочередно будут активироваться. насчет матриц, принцип я понял, пока еще не паял.сначала надо бы резюков прикупить.
кстати, кто нибудь таки сделал переходник MIDI<>USB я видел такие темы на форуме, но так и не понял чем всё закончилось....
кстати, кто нибудь таки сделал переходник MIDI<>USB я видел такие темы на форуме, но так и не понял чем всё закончилось....
- khomych
- Мучитель микросхем
- Сообщения: 423
- Зарегистрирован: Сб фев 21, 2009 16:11:32
- Откуда: Харьков
- Контактная информация:
что посоветуете насчет программной фильтрации значений?
допустим
char old[6], num; //old[num] - предыдущее значение с num каналаАЦП
.......
.......
adc_data=ADCH; //загружаю старший байт значения
if(old[num]/2 != adc_data/2) //отослать токо при изменении положения
{
SendMidi(0,num,adc_data/2); мне надо токо 7 бит данных и обязательно чтоб старший бит был равен 0
ClrDisp();
ShowDigit(adc_data/2);
//delay_ms(20);
}
old[num]=adc_data;
даже если переписать SendMidi(0,num,adc_data/4*2); то все равно проскакивает "фон"
допустим
char old[6], num; //old[num] - предыдущее значение с num каналаАЦП
.......
.......
adc_data=ADCH; //загружаю старший байт значения
if(old[num]/2 != adc_data/2) //отослать токо при изменении положения
{
SendMidi(0,num,adc_data/2); мне надо токо 7 бит данных и обязательно чтоб старший бит был равен 0
ClrDisp();
ShowDigit(adc_data/2);
//delay_ms(20);
}
old[num]=adc_data;
даже если переписать SendMidi(0,num,adc_data/4*2); то все равно проскакивает "фон"
- khomych
- Мучитель микросхем
- Сообщения: 423
- Зарегистрирован: Сб фев 21, 2009 16:11:32
- Откуда: Харьков
- Контактная информация:
с фильтрацией пока подождем
подкиньте идеи как переменники в матрицу соединить (6 х 3)....
походу их придется "развязать" через диоды. как учитывать падение напруги на диодах? величина падения на разных диодах одинаковая или колеблется (плюс минус проценты).
чтото склоняюсь к теме что на каждые 6 резюков ставить свой контроллер и потом их синхронизировать..... идея конешн бредовая но я уже теряюсь...
подкиньте идеи как переменники в матрицу соединить (6 х 3)....
походу их придется "развязать" через диоды. как учитывать падение напруги на диодах? величина падения на разных диодах одинаковая или колеблется (плюс минус проценты).
чтото склоняюсь к теме что на каждые 6 резюков ставить свой контроллер и потом их синхронизировать..... идея конешн бредовая но я уже теряюсь...
- khomych
- Мучитель микросхем
- Сообщения: 423
- Зарегистрирован: Сб фев 21, 2009 16:11:32
- Откуда: Харьков
- Контактная информация:
меня в той схеме смущают резисторы 620К. не многовато ли. слишком уж сжимают диапазон изменения напруги на входах АЦП. а насчет Vref если на ножку Vref подать напряжение питания через такой же диод? должно компенсировать падение.... пока еще не пробывал
мож автор ошибся в обозначении и надо резисторы (постоянные) по 620 Ом ???????
мож автор ошибся в обозначении и надо резисторы (постоянные) по 620 Ом ???????
-
YurkaM
- Нашел транзистор. Понюхал.
- Сообщения: 151
- Зарегистрирован: Пн сен 01, 2008 14:49:03
- Откуда: Казахстан
Ничё они не сужают. Как раз, чем больше их номинал, тем меньше они влияют на напряжение, снимаемое с движка R4. Но вообще, конечно 620к - многовато, будет ловить помехи всякие. Эти резисторы должны быть где-то на порядок больше, чем R4. ИМХО нормально будет 47к при R4=4.7к.
ps: Может ты не так рассмотрел картинку - там левый вывод R4 идёт на землю.
ps: Может ты не так рассмотрел картинку - там левый вывод R4 идёт на землю.
- khomych
- Мучитель микросхем
- Сообщения: 423
- Зарегистрирован: Сб фев 21, 2009 16:11:32
- Откуда: Харьков
- Контактная информация:
делать было нечего.... собрал матрице из 100 КОм, подчистил прогу и на удивление нормально работает. матрица 6х3. фона почти нет. иногдапоявляется на проблемых резисторах, по ходу из за хренового контакта.
сначала поставил нагрузочные постоянники по 1МОм но толку от них небыло. решил прикольнуться и поставил вместо них по 51 КОм (в два раза меньше чем переменники). получил интересную зависимость угол поворота/напряжение: почти на всем диапазоне что то вроде линейной а в самом конце резко прыгает вверх. мне так удобней в виде специфики той проги, в которой работаю.
проблему падения напруги на диодах решил вводом в прогу коэффициента (1.124). продывал на вход Vref через диод давать напряжение питания, но все равно чуть не хватило, а с более "сложным" делителем извращаться не стал.
паны на будущее:
сменить переменники на нормальные по 5-10 КОм
добавить также фейдеры (позунковые)
понатыкать кнопок
вернуть устройству дисплей
и всунуть все в другой (побольше) корпус
выпить коньяка
сначала поставил нагрузочные постоянники по 1МОм но толку от них небыло. решил прикольнуться и поставил вместо них по 51 КОм (в два раза меньше чем переменники). получил интересную зависимость угол поворота/напряжение: почти на всем диапазоне что то вроде линейной а в самом конце резко прыгает вверх. мне так удобней в виде специфики той проги, в которой работаю.
проблему падения напруги на диодах решил вводом в прогу коэффициента (1.124). продывал на вход Vref через диод давать напряжение питания, но все равно чуть не хватило, а с более "сложным" делителем извращаться не стал.
паны на будущее:
сменить переменники на нормальные по 5-10 КОм
добавить также фейдеры (позунковые)
понатыкать кнопок
вернуть устройству дисплей
и всунуть все в другой (побольше) корпус
выпить коньяка
Кстати вот тут интересный ресурс по миди, довольно известный
http://www.ucapps.de/
http://www.ucapps.de/