Раздвоитель канала передатчика

Мой первый электронный проект, идея которого исходила не от меня. Maximus43 и AlcoNaft43 предложили мне сделать девайс, который как бы добавляет дискретный канал к уже имеющимся в передатчике. Например, для управления OSD надо 2 дискретных канала, а у нас на пульте есть один только свободный и один или несколько неиспользуемых переключателей. Как быть?

Вариант с одним трехпозиционным переключателем от Maximus43: Переключатель связываем с каналом, например, CH7. Нейтраль - оба выходных канала в 1ms (минимум). Переключатель вниз - один выходной канал в 2000ms (максимум). Переключатель вниз - другой выходной канал в 2ms. Получается что только один выходной канал может быть активен, что удобно для OSD но не подходит для других применений, например:
a) управления светом и сиреной;
b) включение посадочных огней и разворота камеры вниз для посадке на коптере; 😁
c) переключение видеовыхода с ходовой камеры на фотокамеру и нажатие затвора и т.д.
Поэтому первоначальная идея была расширена возможностью сконфигурировать любой выходной канал как триггерный, например, первое опускание переключателя включает канал, а второе - выключает.

Вариант от AlcoNaft43 требует двух двухпозиционных переключателей, двух свободных программируемых миксов и навыков их конфигурирования. При этом девайс считывает все 4 возможных комбинации переключателей, замиксенных в один канал, и преобразует их в два выходных канала.

Итак, девайс может конфигурироваться при помощи кнопки, нажатой при подаче питания. Настраивается режим работы: с одним переключтелем или с двумя, триггерный или моментальный режим каждого канала, и реверс на каждом канале.

Девайс сделан на PIC 12F675 (можно скомпилировать для 12F629). Состоит из двух светодиодов, 3-х резисторов, одного конденсатора и кнопки. Есть возможность выкинуть кнопку и резистор, которая управляет меню конфигурации, и задать все нужные режимы прямо в прошивке. Ну а светодиоды и резисторы можно и так выкинуть, они скорее для красоты. Так что из необходимого остается контроллер и конденсатор. Печатная плата сделана так, что части с ненужными деталями можно отрезать и останется кусочек размером 2x1 см.

Девайс симулирован в Proteus, печатная плата сделана по лазерно-утюжной технологии (мой первый опыт в ЛУТ, между прочим). Исходный код писан на PICC 9.60. В архиве прошивка, схема, файл Proteus, исходник, листинг, батник сборки, печатная плата, и настройки миксов для варианта с двумя переключателями (2sw.settings.txt).

narod.ru/disk/6045352001/DoubleChannel2.rar.html

Выложено на code.google.com/p/andrey-prikupets-projects/
DoubleChannel2.rar

При включении девайс сигналирует режим работы светодиодами: если мигнул только один - режим с одним переключателем, если оба мигнули - то с двумя. Пока логично 😉

Конфигурационное меню:
Если при включении нажать кнопку (включить, держа кнопку нажатой), девайс входит в конфигурирационное меню.

Первым в меню выбор режим работы (1 переключатель или два выключателя). При этом светодиоды быстро мигают - если 1 переключатель, но мигают по очереди; если 2 выключателя, то мигают одновременно. Нажатие (и отпускание, естественно) кнопки переключает этот режим на противоположный. Настойки немедленно сохраняются в энергонезависимую память.

После 5 миганий, если ничего не нажато, начинается настройка реверса выходного канала A. При этом светодиод канала A быстро мигает, а светодиод канала B показывает состояние реверса (если канал A не реверсирован, он не горит и наоборот). Нажатие на кнопку меняет реверс.

После 5 миганий, если ничего не нажато, начинается настройка реверса выходного канала B. При этом уже светодиод канала B быстро мигает, а светодиод канала A показывает состояние реверса (см. выше, как именно). Нажатие на кнопку меняет реверс.

После 5 миганий, если ничего не нажато, начинается настройка триггерного режима выходного канала A. При этом светодиод канала A медленно мигает, а светодиод канала B показывает состояние “триггерности” (если канал A не в триггерном режиме, он не горит и наоборот). Нажатие на кнопку меняет “триггерность”.

После 5 миганий, если ничего не нажато, начинается настройка триггерного режима выходного канала B. При этом светодиод канала B медленно мигает, а светодиод канала A показывает состояние “триггерности” (см. выше). Нажатие на кнопку меняет “триггерность”.

После последнего пункта меню делается пауза в 2 секунды и меню возвращается в начало. Чтобы выйти из меню, выключите питание 😎

Примечание: Триггерность не работает в режиме с двумя выключателями, чтобы не свести с ума пилота, и потому что в этом нет смысла - и так есть возможность независимо включать и выключать каналы. Но в конфигурационном меню настройка триггерности все равно присутствует. 😒

  • 2678
Comments
targetorsk

До конца не вкурил.
Т.е. миксуем, к примеру, 3-х позиционик и крутилку, на 7 канале цепляем 2 сервы через девайс.
Если переключатель в 0 то крутилка ни на что не действует, Если переключаем в -100 и возвращаем назад то команды крутилки идут в канал А, если переключатель в +100 и назад, то в канал В. правильно?

Просто вводит в замешательство ваша фраза
-“Переключатель вниз - один выходной канал в 2000ms (максимум). Переключатель вниз - другой выходной канал в 2ms.”
здесь где то должно быть вверх?

А как быть если крутилка уйдет в значение ±100 ? как будет воспринято устройством, или нужно ограничить крайние точки на 90%.
P.S. Прочитал настройку микса стало понятнее 😃

Prikupets

Про крутилку я не задумывался, девайс делался под переключатели. При двух переключателях каждый независимо управляет свом “вирутальным” каналом.

В странной фразе читаем так:
Переключатель вверх - один выходной канал в 2ms (максимум). Переключатель вниз - другой выходной канал в 2ms."
Сорри, был уставши, когда публиковал.