isx писал(а):Это не из-за ацп, а от такого количества мультиплексоров. Мощнее нужен МК.
Здравствуйте.
Наткнулся на данную ветку форума собрав на макетке MIDI-DJ-CJ-CONTROLLER-2
опишу что получилось ниже, а вопросы вынесу в начало поста.
1) Ни у кого случаем нет исходника от MIDI-DJ-CJ-CONTROLLER-2 ?
2) Ни у кого случаем нет исходника от MIDI-DJ-CJ-CONTROLLER-3 (желательно под WinAvr) с установленным свежим USB блоком?
3) Какова логика работы с энкодером? Принимаем значение от компа и копию храним у себя, а если энкодер крутили то выдаем
принятое ранее значение с инкрементом или декриментом? Или как в комповой мышке направление и значение смещения?
4) Какие значения управляющих байтов в пакете оптимально использовать под свои энкодеры, кнопки и файдеры?
В MIDI-DJ-CJ-CONTROLLER-2 были задействованы B0 5A 3C = Control90 60, B0 5B 01 = ReverbDepth 1 и т.д.
Описание - на winXP программа контроля от MIDI-DJ-CJ-CONTROLLER-2 не видит девайс в упор
(как на чистых ХР 32х SP1 или SP2 так и последних звериных сборках SP3, зато работает и в win 7 32х и в win 8 64х).
USB блок интегрированный в MIDI-DJ-CJ-CONTROLLER-2 - допотопный. И отсюда проблемы со спячкой и выдачей конфиг
дескриптора (смотрел на USBlyzer2.1) на всех вин, а под winXP работает не со всеми программами (просто не видит USB коннекта).
Почему сам не пересоберу исходник от MIDI-DJ-CJ-CONTROLLER-3 ?
1) Я СИ не знаю 2) Посмотрев код MIDI-DJ-CJ-CONTROLLER-2 на асме пришел к выводу что на асме его можно написать в 3 раза
компактнее и как следствие результат будет в 2 раза быстрее.
Для чего мне MIDI-DJ-CJ-CONTROLLER-2 под winXP?
Смотрю обмен между программами контроля и железкой все тем же USBlyzer2.1 и переделываю свой исходник на асме с мк
имеющим аппаратный USB 2.0 (AT90usb162) под данный тип обмена.
Почему у всех на 40 каналов тормоза?
Но на 40 каналов тормозит не столько медленный софтовый USB, не тормознутый код на СИ написанный без прерывания по АЦП
или недостаток частоты тактирования (16 мегагерц для проекта выше крыши) а тормознутый встроенный в мегу АЦП и еще более
тормознутый коммутатор, которых не хватает быстро переживать 40 каналов.
Что я хочу сделать?
На данный момент я прорабатываю вопрос возможности создать USB - MIDI клавиатуру для программы qlcplus 4.7.0
Но что бы данную клавиатуру можно было бы использовать в качестве самостоятельной DMX консоли
И далее возможно несколько вариантов - сложный и понятный = со своими мозгами на меге и файлами на SD карточке
и простой зато неизученный c утрамбованной в арм пакет qlcplus 4.7.0 запихнутый в Cubieboard A20 с той же самой SD карточкой.
На чем можно реализовать?
Исходя из возможности заказа печатных плат и возможности вырезать любой корпус на лазерном прессе и покрасить его в любой цвет
порошковой краской, прихожу к выводу о целесообразности модульной конструкции (в первой сборке 10 файдеров + 20 энкодеров
+ 20 кнопок в энкодерах + 20 самостоятельных кнопок + 4 оси + 116 светодиодов) вся обвязка I2C шинкой.
пока теоретически конструкцию вижу вида:
По краям два тачевых модуля которые нужны для одновременного контроля угла поворота и склонения двух DMX голов с двух рук.
(на профессиональных DMX консолях под это приспособлен джойстик или трекбол) Т.е. нечто на подобие продаваемого Vmetr но
на 2 координаты = 2 оси обслуживающие каждый 48 светодиодов и 2х координатный мультитачевый емкостной тачскрин на bf6852a.
Дисплея под тачем не будет (все равно все управление на ощупь т.к. все внимание за синхронизацией эффектов на сцене)
Под тачем размещу только 2 линейки светодиодов и подсвеченную панельку из орг. стекла с цифрами 0-9.
по центру несколько (в первой версии два) аналоговых модулей на основе меги16 несущих на борту 5 файдеров (ползунковых резистора),
10 кнопок (в первой версии макс и мин значение файдера при нажатии) и 10 светодиодов (под каждой кнопкой).
(только 5файдеров на мегу, что бы получить минимальное время опроса всех файдеров работая с встроенным в мегу АЦП)
над каждым аналоговым модулем модуль энкодеров на основе меги16 несущий на борту 10 энкодеров.
В качестве ведущего модуля плата на AT90usb162 ведущая по I2C шине все остальное на нее повешенное.
выше была теория, а практически - если время на реализацию у меня будет + у знакомых необходимость в миди клавиатуре не отпадет.
Городить большой проц, внешнее АЦП и кучу проводов к кучи элементов управления - считаю бессмысленным, проще
в готовую плату запаять готовые компоненты, запихнуть их в вырезанный прессом = готовый корпус и не возиться с проводами
и напильником совсем.
Ничего не забыл?