Activity

Встраивание переключателя полетных режимов собранного по схеме Алексея Козина в аппаратуру Cheerson CX-20.

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

Встраивание переключателя полетных режимов собранного по схеме Алексея Козина в аппаратуру Cheerson CX-20.

Тогда отключаем провод, который раньше шел на ползунок резистора, то есть тот, который, как я понимаю, у Вас S и меряем напряжение на висящем в воздухе выходе переключателя (естественно по отношению к минусу питания). Если и в таком случае будет всего до 0,34, то я бы для начала вывесил 14-ю ногу контроллера и посмотрел осциллографом что на ней творится, но Вам предлагаю обратиться к изготовителю, возможно брак. Это, конечно, если подключения произведены правильно.

Встраивание переключателя полетных режимов собранного по схеме Алексея Козина в аппаратуру Cheerson CX-20.
gosha57;bt131523

Должно ведь быть от 0 - 3,4В ?

Про нижнюю границу не помню, но скорее всего, да, в районе нуля, а верхняя - напряжение питания, то есть 3,3 В. А подстроечные кнопки на переключателе есть? Как меняется напряжение если их нажимать?

Встраивание переключателя полетных режимов собранного по схеме Алексея Козина в аппаратуру Cheerson CX-20.

Для начала отделим мух от котлет. Если восстановить подключения в приемнике, то есть вход пятого канала на контроллере вернуть на выход пятого канала на приемнике и пощелкать тумблерами на аппаратуре, то какой максимальный диапазон по пятому каналу мы видим в MP?

Встраивание переключателя полетных режимов собранного по схеме Алексея Козина в аппаратуру Cheerson CX-20.

То ли я Вас не понимаю, то ли Вы действительно не понимаете разницу между понятиями дискретный и аналоговый сигнал. Попробую объяснить, то как я вижу ситуацию по Вашей проблеме, но позвольте позанудствовать. Без претензии на грамотность, просто как это вижу я, человек занимающийся системами автоматизации. Сначала по определению понятий. Дискретный сигнал имеет только два состояния “о” и “1”, условно говоря “выключено” и “включено”. Аналоговый же сигнал может иметь любое значение в пределах своей шкалы, то есть позволяет производить плавную регулировку. В нашем деле оба этих варианта причудливым образом переплетаются и конвертируются один в другой, возможно поэтому Вы сбиты с толку на каком этапе какой из сигналов работает. Вот смотрите, начнем с конца. Каждый из полетных режимов в полетном контроллере имеет только два значения: включен или выключен. Фактически это дискретные состояния и управлять ими было бы можно, если бы у нашей аппаратуры управления было шесть дискретных каналов. (Это очень условно, на самом деле хватило бы трех, да даже одного, но для простоты картины пусть будет шесть.) Но у нас, во-первых, нет шести дискретных каналов, а есть один аналоговый, а во-вторых, нам не требуется включение одновременно более одного режима, что позволяет передавать контроллеру сигнал о выборе одного из полетных режимов по одному аналоговому каналу. Как это происходит. В этом аналоговом канале передаются импульсы определенной частоты, но изменяемой ширины: наименьшая ширина импульса соответствует низу шкалы аналогового сигнала, а наибольшая ширина импульса - верху шкалы. В полетном контроллере каждому из полетных режимов присваивается не просто определенная ширина этого импульса, а диапазон ширн: от стольки-то до стольки-то миллисекунд будет один полетный режим, а от стольки-то до стольки-то другой. Теперь взглянем на аппаратуру управления. Она у нас семиканальная, то есть мозги аппаратуры имеют семь аналоговых в ы ходов на радиопередатчик, именно мозги аппаратуры формируют ширины импульсов для каждого из каналов, а формируют они их на основании состояния своих входов. Входа тоже бывают аналоговые и дискретные. Например, все стики и крутилки это аналоговые каналы, но интерфейс этого аналогового сигнала уже другой: на выходе с потенциометра стика (и соответственно на входе в мозги) мы имеем сигнал напряжение 0-3.3 В, а мозги этот сигнал конвертируют в соответствующую длину импульса. Что мы имеем используя переключатель Алексея Козина подключенный вместо одной из крутилок? Выбор и фиксация одной из шести кнопок это дискретная операция; в памяти переключателя каждой кнопке присвоено определенное выходное напряжение, то есть переключатель конвертирует это дискретное состояние в сигнал напряжение по шкале от нуля до напряжения питания. Программное обеспечение переключателя позволяет присвоить каждой кнопке свое выходное напряжение (это ответ на Ваш второй вопрос); далее мозги аппаратуры конвертируют этот уровень напряжения на своем входе в определенную ширину импульса, то есть тоже в аналоговый сигнал, но другого принципа; контроллер принимает этот сигнал, смотрит на ширину импульса и включает тот полетный режим в диапазон которого попадает данная ширина. Ширина импульса может колебаться в определенных пределах, но если она не превышает привязанного к режиму диапазона режим не переключится. Теперь о штатных тумблерах аппаратуры управления. Я, как уже говорил, с ними не разбирался. Есть, конечно определенная вероятность того, что они переключают определенные наборы сопротивлений как Вы и думаете, а мозги получают информацию о их состоянии с аналогового входа, как в случае со стиками и крутилками, но где-то на подсознательном уровне я считаю, что это не так. Это было бы неправильно, нетехнологично и вобще, так никто не делает в наш век цифровых сигналов. Я считаю, что мозги аппаратуры управления принимают сигнал о положении тумблеров на свои дискретные входа, а конкретно на три дискретных входа. Внутри мозгов зашит алгоритм какую ширину импульса выдавать на пятый аналоговый выход в зависимости от положения этих дискретных входов. Вот и все. У дискретного сигнала нет понятия “серединка”, он либо в “коле”, либо в “нуле”. Куда вы собрались подавать изменяемое напряжение?
Это мои мысли. Но Вы всегда можете покопаться самостоятельно и вдруг там действительно аналоговый сигнал с переключением уровнем напряжения. Посмотрите.

Встраивание переключателя полетных режимов собранного по схеме Алексея Козина в аппаратуру Cheerson CX-20.

Я не разбирался с принципом работы штатных переключателей, но судя по всему просто взять и встроить вместо них переключатель с большим количеством фиксированных позиций не удастся. Скорее всего там переключение и микширование тумблеров сделано программно, а не путем переключений между сопротивлениями, как предполагаете Вы. По сути внутри аппаратуры уже встроен такой переключатель, как мы обсуждаем, и у нас нет возможности аналогового управления им, только дискретное. То есть, если склепать простенькое устройство фактически на любом микроконтроллере, которое бы преобразовывало нажатие одной из шести кнопок в комбинацию своих дискретных выходов имитируя позиции тумблеров, то можно было бы и заменить штатные тумблера, но схема Алексея Козина имеет только аналоговый выход и встроить ее можно только вместо крутилки.

Встраивание переключателя полетных режимов собранного по схеме Алексея Козина в аппаратуру Cheerson CX-20.

И, кстати, про использование штатного трехпозиционного переключателя. Для переключения режимов мне он теперь не нужен, но ему тоже применение нашлось. У меня он теперь используется для переключения экранов minimOSD.

Встраивание переключателя полетных режимов собранного по схеме Алексея Козина в аппаратуру Cheerson CX-20.

Так будет, почему бы нет? Только на шестипозиционнике один резистор со стороны GND лишний, но, как бы сказать, это нетехнологично. Во-первых, ушли от двух тумблеров, пришли к двум галетникам. Да, чуть более наглядно, но все-равно скучно. ))) Во-вторых, прямого доступа к выбранному режиму мы все-равно не получаем: последовательный перебор либо по трехпозиционному, либо по шестипозиционному переключателю. Ну а в-третьих, механические контакты подвержены окислению, дребезгу и прочим бякам, поэтому работать будет, но насколько удобно и безотказно - вопрос.
UPD. Насчет штатного переключателя, если его не отключать от схемы и не подключать вместо крутилки, ничего не скажу. Работу их алгоритма я не изучал, может и прокатит. Все, что я написал выше, относится к тому, как если бы мы использовали галетные переключатели, подключенные вместо одной из крутилок без использования схемы Алексея Козина.

Встраивание переключателя полетных режимов собранного по схеме Алексея Козина в аппаратуру Cheerson CX-20.

Сделать можно на чем угодно, где есть невостребованные крутилки. Тут вопрос был только в “неадекватном” поведении каналов крутилок на Cheerson’е. Абсолютно точно это было сделано производителем специально, преследовались какие-то цели для управления подвесом, но мы то используем эти каналы не по их значальному предназначению, и нам эта багофича мешала. Статья посвящена тому как это обойти. Если у Новы нет такого поведения каналов крутилок, то и обходить нечего, можно воспользоваться первоначальным кодом от Алексея Козина.

Переключатель режимов ардупилота

Собрал свою версию переключателя на ардуинке для встраивания в аппаратуру от коптера китайского происхождения Cheerson CX-20.
orig
orig
Напряжения питания, кстати у меня 3.3 В, все работает без проблем. Проблема вылезла в другом.
На каналах крутилок стоит непонятный мне алгоритм, по которому после первой подачи питания, при превышении крутилкой середины своего диапазона, реальное положение крутилки перестает иметь значение, а на выходе формируется максимальный сигнал. Снимается этот режим кратковременной установкой крутилки в верхнее положение, после чего сигнал становится адекватным ее положению. С переключателем это выглядело так: после подачи питания, при нажатии на кнопки 1-3, сигнал канала соответствовал нажатой кнопке, а при нажатии на кнопки 4 и 5, я получал на выходе максимальный сигнал, который должен был появляться только после нажатия на кнопку 6, но после хотя бы кратковременного нажатия шестой кнопки и четвертая с пятой начинали работать корректно.

www.youtube.com/watch?v=YcH1hzj9MuQ

При этом, каналы, закрепленные за стиками, такого алгоритма не имеют, но использовать то мы можем только каналы крутилок, как невостребованные. Как победить это в самой аппаратуре я не знаю, а раз не можем победить, то попытаемся подстроиться. При неоценимой поддержке автора проекта Алексея Козина, за что огромное ему спасибо, была внесена поправка в код переключателя. Теперь после включения, переключатель на несколько секунд сразу встает в положение максимального выходного сигнала, а после издает звуковой сигнал готовности к работе и переходит в режим минимального выходного сигнала (первая кнопка). Тем самым мы автоматически сбрасываем этот странный алгоритм аппаратуры и заставляем ее работать адекватно.

Информация от Алексея Козина для тех, кто захочет повторить данную схему в аппаратуре Cheerson CX-20 или имеющих такую же проблему. Необходима правка кода:

Внутри

в процедуре setup
найдите такие строки
digitalWrite(SelBtn,0);

analogWrite (AnalogOut, BtnLevel(SelBtn));

и вставьте между ними чтоб получилось так
digitalWrite(SelBtn,0);

analogWrite (AnalogOut, 255); //максимальный сигнал
delay (3000); //задержка 3 секунды

analogWrite (AnalogOut, BtnLevel(SelBtn));

В результате получилось так

www.youtube.com/watch?v=tgQ3NTX4Djk

Алексей, громадное Вам спасибо за этот проект и за помощь в его реализации.