Автор Тема: MIDI контроллер на энкодерах  (Прочитано 4193 раз)

0 Пользователей и 1 Гость просматривают эту тему.

EternalEngine

  • Гость
MIDI контроллер на энкодерах
« : Октября 20, 2009, 02:30:26 pm »
Хочу сделать интерфейс для синта на энкодерах типа того что на картинке.

Чувствую что изобретаю велосипед, так что нужна ваша помощь.

Моя идея такова:
На каждый контроллер поставить инкрементный энкодер + mega48 + 10 светодиодов.
Все их привязать по SPI к центральному контроллеру который будет генерировать MIDI сообщения.

Вопрос номер раз. Хватит ли 24 тика на оборот для регулировки таких параметров как Cutof, Attac, Decay, и т.п..

Вопрос номер два. Потянет ли SPI порт Меги ~50 таких контроллеров.

Вопрос номер три. Можно ли сделать как нибудь проще.

Ну и самый главный вопрос - где взять дешёвые энкодеры на 24 (а лучше больше) тиков?
 

Diz

  • Гость
MIDI контроллер на энкодерах
« Ответ #1 : Октября 20, 2009, 03:44:56 pm »
Проще купить готовый контроллер, типа того же бехра (использовать в чистом виде, либо допилить).

Целый МК на энкодер как-то разорительно - можно ведь повесить
несколько энкодеров на МК.

Либо, если частоты опроса хватит(надо прикидывать), то прямо посадить энкодеры на  сдвиговые регистры '165, а светодиоды на '595 и обойтись одним МК. Пропуски при быстром вращении для миди-управлялки не особо критичны.

Если взять энкодеры с кнопкой, то можно использовать ее для плавного/грубого режима. Нажали и крутим - большие скачки параметров, отпустили -
маленькие. Или наоборот.

Можно применить вот такие энкодеры(сам дела не имел).
http://www.platan.ru/cgi-bin/qwery.pl/id=3...166&group=32405

EternalEngine

  • Гость
MIDI контроллер на энкодерах
« Ответ #2 : Октября 20, 2009, 09:16:32 pm »
Спасибо! Я эти энкодеры минимум по 80р находил.)
вобще должно получиться что-то типа:

EternalEngine

  • Гость
MIDI контроллер на энкодерах
« Ответ #3 : Октября 20, 2009, 09:59:59 pm »
Как ни странно, но с регистрами дороже выходит и корпусов больше в 8 раз.)

Выходит придётся делать по контроллеру на каждую группу (20 штук). SPI порт меги вытянет такую нагрузку?

Да и кстати не можешь просветить по поводу работы SPI меги в ведомом режиме?

Алгоритм такой:
Центральный контроллер посыляет запрос (8 бит)
В ведомом контроллере срабатывает прерывание и готовится пакет для отправки (16 бит) и записывается в регистр.
Центральный контроллер посылает запрос на приём данных и сдвишгает регистр.
Всё. Ждём следующего опроса.

Если есть пример работы по прерыванию SPI то я был бы очень признателен, т.к. со слэйв режимом ни разу дела не имел.

EternalEngine

  • Гость
MIDI контроллер на энкодерах
« Ответ #4 : Октября 21, 2009, 12:53:24 am »
Или можно сделать как вариант по подобию норд лида.
Обычный потенциометр со шкалой.
Тогда вопрос - выдержит ли 74hc595 8 светодиодов?
и сколько таких регистров можно повесить параллельно на порт меги?
« Последнее редактирование: Октября 21, 2009, 12:58:25 am от EternalEngine »

Diz

  • Гость
MIDI контроллер на энкодерах
« Ответ #5 : Октября 21, 2009, 09:59:16 am »
SPI потянет, но, возможно, не на максимальной скорости из-за возросшей емкости линии. Но всегда можно поставить на линию один-два буфера типа '125 и разгрузить порт.

SPI на прерываниях на avr никогда не делал, смысла не вижу.
Если работать на максимальной скорости, то байт уходит за 16 тактов -
этого едва хватит, чтобы нормально войти-выйти из прерывания :-)

Насчет алгоритма обрати еще внимание на I2C-шину. Скорость будет гораздо
ниже (что не критично), зато получишь автоматом адресацию/синхронизацию.
Командуешь 'слейв номер 8, сообщите значение энкодера 3'. И клокаешь/выгребаешь. Все за одну транзакцию. Если с I2C eeprom работал, то примерно так же.

8 светодиодов '595 выдержит. Чтение даташита вслух 5$ :-)
Ток через пин <20 мА, суммарный ток <75 мА. Если на каждый светодиод
заложить 3-4 мА, то нормально. Если мало, можно поставить TPIC6C595
(там мощные выходы с открытом стоком). Либо '595 + ULN2003.
« Последнее редактирование: Октября 21, 2009, 09:59:52 am от Diz »