Включение/выключене с 1 канала нескольких нагрузок. Возможно-ли?

vasia
gosha57:

получаем “второй пульт” для управления всеми примочками, сколько бы там каналов не было !
Надо только отключить защиту мозга от срабатывания ФС

Не совсем понятно как реализовано…
На мой взгляд система работает возможно так:

  1. Ставим на борт дешифратор (если управляемых устройств толька пара то на пульте шифратор не нужен) Arduino;
    2.Подключаем ко входам дешифратора на 3 входа 3 канала с приемника, один канал -ключ переключения нагрузок, 2 канала - крутилки
    3.к выходам дешифратора например на 2 выхода сервы от пантитл, на другие 2 выхода RU и ELE.
    Работает приблуда так : ключ на пульте в 1ом положении - дешифратор коммутирует каналы с крутилками на пан-титл
    во 2ом положении на RU и ELE
    в общем ничего судьбоносного. За исключением того факта, что отьедаем сразу 3 канала и получаем по ним тормоза. Для управления петардами и всем всем достаточно и одного канала… Чередовать с органами управления самиком как то стремно и неудобно, единственно целесообразный вариант когда на самике стоят 3 камеры с пан-титлами…
    Да и совершенно непонятно зачем отключать ФС…
gosha57
vasia:

зачем отключать ФС…

Несколько за рамки темы получилось, прикольная мысль.
Если просто “переключать” выходА приёмника - в АРМ, например, сработает ФС на отсутствие управления (сигнала с приёмника, как при потери связи). Но эт чисто техническая-настроечная проблема. Гораздо “стрёмнее” - чем будет заниматься коп, пока я камеру куручЮ… 😁

vasia
gosha57:

Если просто “переключать” выходА приёмника - в АРМ, например, сработает ФС на отсутствие управления

В этом случае между приемником и АП все равно будет стоять электронный “ключ”, который при отключении АП и переключении приемника на другие нагрузки, может на входные каналы АП гнать какой то ШИМ, например все в нейтраль, а на вход переключения режим АП гнать “AUTO” для продолжения полета по точкам. В то время как пульт будет работать с другими “нагрузками” . В случае ФС приемник опять подключается к АП и врубает RTL. Другое дело, что промежуточный “ключ-коммутатор” это лишнее звено в цепи управления, увеличивающее шанс отказа как минимум на 30%. Человечество на стало заморачиваться по этому поводу - так появилась 16 канальная аппаратура.

gosha57
vasia:

так появилась 16 канальная аппаратура.

Ну… не у всех есть возможность её приобрести. Тем более он НЕ решает проблемы эргономики - например, переключение полётных режимов гораздо удобнее (проверено на столбах) делать “многокнопочником”, чем миксами тумблеров. Даже за “любые деньги” его в ссуппертаранисах нет.
Опять же - управлять камерой “понятнее” джойстиком - и направление и трансфокация, и куча тумблеров тоже себе применение найдут.
И нет необходимости перегружать панель управления пульта дополнительными “коммутационными элементами” - такими же джойстиками, тумблерами, крутилками … (с такой же степенью надёжности на отказ).

А вот проблема надёжности “коммутатора” и его принципа исполнения, действительно серьёзная. По сути, его “полётная часть-регистр” - некий буфер - должен запоминать последнюю команду в ШИМе с пульта и держать её, пока пультом управляют камерой.
Либо поступать, как в ДХ4 - пять секунд на допы, потом автоматом на управление копом. И если за это время коп вышел из зоны управления - ФС по отсутствию связи.

… В обшем-то и в тему мы попадаем - управление-то … одним тумблером ! 😁

23 days later
Dimac
dimaris:

У меня вопрос к Дмитрию про 2-х входовый свитч для лебёдок на ATtiny13.
Все таки есть риск случайно вывести свитч в режим калибровки. Если скажем он будет управляться трех позиционным тумблером, случайно задел или не посмотрел перед включением борта. В вашей прошивке из 86 поста достаточно вывести за 5 процентов и запускается режим калибровки. Еще +/-5% от центра на точной аппаратуре выдерживаются, а если применить аппаратуру с простыми механическими триммерами то после калибровки при следующем включении заново выходит в калибровку, значит немного центр плавает. Тут надо или как вы говорили делать выход в калибровку как на регуляторах хода (стик а 100%), или кнопку выводить для этих целей.

Вот, можно сказать, заново переделал предыдущие прошивки (с каждой новой программой постоянно совершенствуешься, появляются новые идеи…)

Схема прежняя.
В одном проекте - несколько прошивок. (есть внутри файл с описанием работы).

Основное отличие в логике запуска калибровки. Она запускается только если, при подаче питания, стик находился в околомаксимальном положении и сразу после подачи питания (в течении 3 сек) им надо активно работать.
Также появилась некоторая защита от случайных помех.

Eщё есть возможность поставить прошивку, откалибровать стики, а потом залить прошивку с залоченой калибровкой (они есть в проекте).
При калибровке, информация запоминается в EEPROM, и при смене прошивки просто не трогаем EEPROM и результат калибровки останется.

Ещё одна новинка - прошивка для 4-х выходов (когда при прошивке программируется фьюз RSTDISBL и ножка Reset становится портом ввода/вывода) и для 3-х теперь одна. Программа сама определяет состояние этого фьюза и работает соответствующим образом.

(ещё раз напоминаю, что фьюз RSTDISBL можно программировать только 1 раз, если у вас нет специального параллельного программатора, в противном случае контроллер больше перепрошить не получится).

Да, проверял только в протеусе (кому интересно в проекте есть файл rc_2IN_ATTINY.DSN), поэтому желательно перед серьёзным применением погонять прошивку на наличие багов.

7 days later
dimaris

Здравствуйте Дмитрий!
Протестировал я в железе ваши новые прошивки. Работают не совсем так как в протеусе, дальше по стараюсь вкратце изложить свои наблюдения:
RC_2IN_ATtiny13_4-1 режим работы №1
В калибровку не выходит. При пропадании сигнала загорается 5 пин, при появлении сигнала гаснет 5 пин и сразу загорается 2 пин или 3 пин в зависимости на каком входе появляется сигнал. Причем эти выхода сразу включаются при появлении сигнала в любом положении стика и остаются все время включенными.

RC_2IN_ATtiny13_4-23 режим работы №3
Исправно калибруется только 1 канал, пины 2 и 3 исправно работают. Во время калибровки мигает пин 5. 2 канал входит в калибровку, 5 пин начинает мигать и после остается все время гореть, 1 пин тот что резет молчит. При пропадании сигнала все выходы отключаются.
Еще заметил что вот это математическое вычисление центра на более точном передатчике настраивается, а вот на простом никак не получается, причем в пред идущей версии прошивки на том же передатчике все прекрасно калибровалось и четко видело центр. Так же я заметил что 3х секунд выжидания для входа в калибровку все таки мало, если на футабовском приемнике все проходит быстро, то на таких как карона или фрсай процесс биндинга длится гораздо дольше и не хватает времени вывести в режим калибровки. В некоторых регуляторах в процессе калибровки по мимо крайних положений стика обязательно программируется центральное, может это взять на заметку как вариант? Про железо не котором испытывал, 2 платы которые исправно работали на пред едущей версии прошивки, просто перепаял Новые прошитые контроллеры для чистоты эксперимента.

Dimac

Попробую сам в железе протестировать.

RC_2IN_ATtiny13_4-1 режим работы №1 - поведение вполне понятное т.к. не было калибровки.

RC_2IN_ATtiny13_4-23 режим работы №3 - Уже лучше, но не понятно со вторым каналом.

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

И ещё, про 3-и секунды. У меня сделано, что при подаче питания при отсутствии сигнала, происходит ожидание его появления, и только после появления сигнала начинается отсчёт времени.
Хотя может в реале работает немного не так как планировалось.

Dimac

Всё, теперь должно работать. Там действительно были “грабли” на которые я постоянно наступаю.

dimaris

Здравствуйте Дмитрий!
Проверил я в железе исправленные прошивки, RC_2IN_ATtiny13_4_1.hex теперь прекрасно работает и калибруется, разобрался как правильно калибровать, сначала в максимум потом подаем питание начинаем отклонять стик в крайние положения в течении 5с.
А вот RC_2IN_ATtiny13_4_23.hex тоже хорошее работает но лишь в режиме работы №2, хотя я выставлял Fuse: RSTDISBL. По понятным причинам вы не смогли проверить режим №3, мне как раз он и нужен.

Dimac
dimaris:

А вот RC_2IN_ATtiny13_4_23.hex тоже хорошее работает но лишь в режиме работы №2, хотя я выставлял Fuse: RSTDISBL. По понятным причинам вы не смогли проверить режим №3, мне как раз он и нужен.

Что не так в 3-ем режиме? Я так понял Fuse: RSTDISBL Вы запрограммировали. И после этого он всё равно работает в режиме №2?
Если так, то спрошу: заранее извиняюсь, а Вы уверены, что запрограммировали его? (Просто бывает разные программы-прошивальщики по разному отображают значение фьюзов которые запрограммированы и которые нет), иногда надо поставить специальную “галочку” чтоб запрограммировать фьюзы.

У меня прошивка читает значение этого фьюза и настраивает работу 1 пина (Reset) соответствующим образом. Соответственно проверял только в протеусе, но там работает идеально (как только меняешь фьюз RSTDISBL - сразу меняется режим работы).

dimaris

Хорошо еще раз пере прошью, хотя странно когда прошивал RC_2IN_ATtiny13_2_2.hex и выставлял фьюз RSTDISBL то все работало и резет как порт работал. Прошиваю с помощью avrdudeshell очень удобная программа, там все наглядно и проблем не было.

Только что еще раз пере залил прошивку и выставил RSTDISBL обычной AVRDUDEPROG, результат тот же самый режим работы №2. После выставления RSTDISBL контроллер перестает читаться значит фьюз правильно устанавливается. Потом чтобы вернуть контроллер к заводским настройкам я его лечу специально сделанной для этих целей автономной лечилкой, после все прекрасно шьется. А каким образом программа читает значение этого фьюза? Всетаки в протеусе идеальная среда не стоит полностью ему доверять.

Dimac

Лечилки у меня нет, проверить в железе не могу (надо тоже сделать лечилку).
Сегодня вечером протестирую на чтении других фьюзов (в принципе без разницы какие читать), возможно что-то с чтением не то.
Решение проблемы видится такое:

  • или я найду проблему с программным чтением фьюзов.
  • или сделаю для третьего режима отдельную прошивку (просто хотелось универсальности), там надо всего 1 строчку поменять.

Чтение фьюзов там немного через одно место. Я даже сперва не мог найти в даташите, как их читать. Вот так читаю:
ldi ZL,low(0x0003)
ldi ZH,High(0x0003)
ldi var1,(1<<RFLB | 1<<SELFPRGEN)
out SPMCSR,var1
lpm var1,Z
После этого, в регистре var1 должно быть, в нулевом бите значение фьюза RSTDISBL

Dimac

Не, что-то я никак программно не могу фьюзы прочитать на реальном чипе.
Сделал для 3-го режима отдельную прошивку.

RC_2IN_ATtiny13_4_3.rar

Dimac

Всё таки добил я универсальную прошивку RC_2IN_ATtiny13_4_23.hex
Теперь должно всё работать.

RC_2IN_ATtiny13_4.rar

dimaris

Только что проверил в железе универсальную прошивку RC_2IN_ATtiny13_4_23.hex, четко проходит калибровку но запускается в режиме №2, а когда передернешь питание то начинает работать в режиме №3. Проверял серво-тестером, вечером проверю на простом передатчике с кароновским приемником.

Dimac

Блиииин 😃)))
Сегодня вечером посмотрю. Спасибо за терпение тестировать мои недоделки 😃

dimaris

Сейчас протестировал с простой 4х канальной футабой скайспорт и приемником карона безкварцевым (RP6S1), центр не уплывает как в прошлый раз. Но никак не смог вывести в режим калибровки, осциллографа под рукой не было поэтому не знаю что выдает приемник в момент включения и поиска передатчика. Еще обнаружил интересный момент, решил попробовать родной футабовский приемник на те-же 35 мегагерц и реакции никакой, хотя сигнал есть так как рулевки работают на всех каналах. Надо осциллографом ткнуть посмотреть что там происходит.

Dimac

А если (для калибровки) сперва включить передатчик, чтоб он нашёл приёмник, при выключенном модуле. Установить стики в максимум и потом подрубить модуль.
А то может при поиске передатчика в канал какие импульсы проскакивают и программа их принимает за сигнал и сразу переходит в работу. (хотя у меня сделано на такой случай при старте пауза 0.6сек., типа при включении тупо ждём 0.6сек, ничего не делаем и только потом смотрим, что там на входном канале)
Можно паузу увеличить. Я когда у себя на своей аппаратуре тестировал (Туринга9Х и модуль Корона), хватало 250ms.

dimaris

Ну мне именно так и удалось вывести в калибровка, сначала связал приёмник и передатчик а потом подрубил модуль и все прошло на ура. В принципе этого достаточно для первоначальной настройки плюс дополнительная защита от случайного вывода в калибровку.