Baychi OpenLRS - дружелюбная ЛРС с широкими возможностями )

тигромух
Shuricus:

А как вы думаете, возможно настроить фейлсейф так, что бы ничего не было на выходах в этот момент?

Только допиливать код. Думаю, что не очень сложно, но нужно разбираться.
А для чего вам?

Shuricus

В ардупилоте так работает ФС.
Можно еще газ убрать ниже минимума, и по нему делать ФС, но мне это пока тоже не удается, на прошивке er9x.

Кручу лимиты, а газ ниже нормы не опускается. Мистика.

X3_Shim
Shuricus:

Можно еще газ убрать ниже минимума, и по нему делать ФС, но мне это пока тоже не удается, на прошивке er9x.

Кручу лимиты, а газ ниже нормы не опускается. Мистика.

Это решаемо 😃 Ща в ЛС отпишу.

max809
X3_Shim:

Это решаемо Ща в ЛС отпишу.

Мне тоже было бы полезно узнать:)

X3_Shim
max809:

Мне тоже было бы полезно узнать

Ну если у Александра все получится, пусть он в теме APM отпишется 😃

тигромух
Shuricus:

Кручу лимиты, а газ ниже нормы не опускается.

Не было c ФС на АПМе никаких проблем. Наверняка дело в этом:

Shuricus:

на прошивке er9x.

X3_Shim
тигромух:

Наверняка дело в этом:

именно так 😃

Shuricus

Газ у меня, когда в нуле, показывает - 988. Так же показывает и мишкин планер. Теперь я в аппе кручу нижний лимит в минус, в аппе значение газа уменьшается до 900. А в мишкинпленере ничего не уменьшается!

Самое интересное - если я увеличиваю все тоже самое, то все везде увеличивается!
Это касается всех каналов.

Может ли прошивка ЛРС ограничивать уменьшение значения каналов???

Понимаю, что бред, но непонятно куда копать…

svir
Shuricus:

Газ у меня, когда в нуле, показывает - 988. Так же показывает и мишкин планер. Теперь я в аппе кручу нижний лимит в минус, в аппе значение газа уменьшается до 900. А в мишкинпленере ничего не уменьшается!

Самое интересное - если я увеличиваю все тоже самое, то все везде увеличивается!
Это касается всех каналов.

Может ли прошивка ЛРС ограничивать уменьшение значения каналов???

Понимаю, что бред, но непонятно куда копать…

я тоже так же, дрочился с идиотской настройкой фс ардукоптера, у меня он стал работать только в районе 895, пробуйте менять значения по 5 едениц и после этого калибруйте каналы в мишен планере.

тигромух
Shuricus:

Теперь я в аппе кручу нижний лимит в минус, в аппе значение газа уменьшается до 900. А в мишкинпленере ничего не уменьшается!

А в отладке передатчика (R6=1) значение на канале уменьшается?

ВлАс
Shuricus:

Газ у меня, когда в нуле, показывает - 988. Так же показывает и мишкин планер.

Тема для арду(коптера или пилота). Приемник на прошивку аппы плевать хотел.
Что показывает МР если выключить аппу?

Shuricus:

в аппе значение газа уменьшается до 900. А в мишкинпленере ничего не уменьшается!

Потому, что когда калибровалось РУ в АРМе, последний запомнил минимальный газ, после этого ему хоть 800 подай.
Надо только выставить в настройках положение газа на FS.
Остальное в теме про АРМ, ОК?

Shuricus
svir:

я тоже так же, дрочился с идиотской настройкой фс ардукоптера, у меня он стал работать только в районе 895, пробуйте менять значения по 5 едениц и после этого калибруйте каналы в мишен планере.

У вас Байчи стоит?

Настройка не идиотская на мой взгляд, это опция. И очень полезная, т.к. позволяет в том числе защитится от физической потери приемника. Если он, например, выпадет из модели 😃

А ФС в ардукоптере можно и классически настроить, по каналу управления. Без гиморов.

тигромух:

А в отладке передатчика (R6=1) значение на канале уменьшается?

Вот я об этом же думаю! ) Так неохота все разбирать и тыкать туда ФТДИ. Поэтому и спрашиваю, не может прошивка ЛРС как-то ограничивать импульс до 988? Потому что в меню передатчика все работает корректно, а в мишенпланере ниже 988 ни за какие коврижки не опускается. Но зная, что там это точно настраивается, например на Фрскае, возникает логический вывод, что причина только во входящих данных!

Plohish

вообще то длительность импульса по протоколу это определённый стандарт и я думаю не стоит выходить за эти рамки по любой причине…

** Примечание по длительностям импульсов (проценты, градусы и микросекунды)**

Исторически сложилось, что PWM импульсы передают положение стиков РУ и определяют ход сервомашинок, меняясь в пределах от 1000 до 2000 мкс. В большинстве стандартных РУ нейтрали стика и сервомашинки соответствует импульс длительностью 1500 мкс. За -100% хода стика РУ и поворота качалки стандартной машинки на -45-50 градусов, принята длительность 1100 мкс. За +100% и +45-50 градусов - 1900 мкс (+/- 400 мкс от нейтрали). Максимальное изменение импульсов (1000-2000 мкс) таким образом задает диапазон управления -120% - +120% или -60 до +60 градусов поворота качалки сервопривода.
Заметим, что максимальный диапазон представления импульсов в режиме 0 и 1 (стандартный Эксперт) составляет 988-2012 мкс, что эквивалентно -128% … +128% хода стиков РУ.
Futaba использует несколько иные длительности и диапазон. За нейтраль принят импульс длительностью 1520 мкс., за -100% - 1100 мкс, а +100% = 1940 мкс. При этом предельное изменение импульсов от Futaba составляет 880-2160 мкс или +/- 640 мкс относительно нейтрали в 1520 мкс. Следовательно минимальной длительности в 880 мкс соответствует - 160% хода стика (до 80 градусов отклонения качалки сервомашинки от нейтрали), а максимальной 2160 - +160% хода стика или +80 градусов. В протоколе s.bus и режиме передачи 2 (R5=2) кодируется именно такое представление длительностей. PPM сигнал Futaba 750 мкс (12 и более каналов), выдаваемый некоторыми передатчикам Futaba в режиме PPM12 имеет в 2 раза меньшие длительности импульсов.
Обратите внимание что контроль состояния FS в режиме ретранслятора, проверяет нахождения всех каналов в пределе 1000-1999 мкс при PPM подключении. И если хоть один канал будет вне этого диапазона, передатчик прекратит передачу (при R4 = 1). В режиме s.bus длительности каналов не проверяются, критерием FS служит соответствующий флаг в пакетах от источника.

пожалуйста, перенесите обсуждение вашего ардукоптера в соответствующую ветку…

Shuricus

Я только не пойму при чем тут ардукоптер? Вопрос был по прошивке оба раза - как сделать в ФС отсутствие сигнала, и ограничивает ли прошивка значения ППМ. И обсуждать я их буду здесь. Хватит пожалуйста просить переносить темы, а пожалуйста внимательно читайте вопросы.

С первым вопросом Константин уже подсказал. А вот со вторым, не смотря на очень увлекательный экскурс в теорию от Сергея, как то ясности не прибавилось!

Хотя если есть ссылка на Эксперта, как раз с магическим числом 988 - то мои опасения верны, и меньше 988 прошивка не пропускает. А поскольку в аппе я настроил 970, значит прошивка все что ниже 988 просто приравнивает к 988. Но с другой стороны еще в руководстве написано - При установленном бите 1 в регистре 5 на экран постоянно выводятся длительности принятых PPM импульсов в микросекундах (от 880 до 2159, середина = 1500).

Значит все же должно быть 880!

max809
Shuricus:

С первым вопросом Константин уже подсказал.

Т.е. хотите сказать, что Константин разобрался, как допилить код, чтобы в режиме ФС было отсутствие сигнала?

тигромух
max809:

Т.е. хотите сказать, что Константин разобрался, как допилить код, чтобы в режиме ФС было отсутствие сигнала?

Разобраться и допилить - разные вещи. С первым нет проблем, а на второе нет времени…

Если хотите допилить, то смотрите флаг PWM_enable. Достаточно его снимать при входе в ФС и устанавливать при выходе.

LaPart
Shuricus:

Хотя если есть ссылка на Эксперта, как раз с магическим числом 988 - то мои опасения верны, и меньше 988 прошивка не пропускает. А поскольку в аппе я настроил 970,

Если бы я в аппе таки настроил бы 970, знал бы, что это точно мой РРМ, а не сбас, и хотел использовать такой диапазон у себя (а не подсунуть кому-нибудь еще), то заглянул бы в исходники, а там:

  • модуль ppmsbus из набора OpenTiny_TX (Александр комментарии не экономил)

    bool checkPPM(void) // проверка PPM/SBUS на failSafe ретранслятора
    {
    if(Regs4[4]) { // если проверка разрешена
    FSdetect=1;
    if(ppmMicroPPM == 255) { // режим SBUS, FS = бит3 в управл. байте
    if(sbusPkt[23]&0x8) return false;
    } else {
    for(byte i=0; i<nchan; i++) {
    if(PPM[i] < 1976 || PPM[i] > 4022) return false; // проверяем выход канала за диапазон
    }
    }
    }
    FSdetect=0;
    return true; // PPM в порядке
    }

    Тогда там где
    // проверяем выход канала за диапазон - 1976. Это как раз то “заколдованное” число микросекунд, умноженное на 2.
    Если есть желание уменьшить для себя с 988мкс до 970 (или даже еще немножко),
    строку
    if(PPM[i] < 1976 || PPM[i] > 4022) return false; // проверяем выход канала за диапазон
    заменяю на
    if(PPM[i] < 1936 || PPM[i] > 4022) return false; // проверяем выход канала за расширенный диапазон 968-2011мкс
    и компилирую.
    Проверяю и радуюсь 😃, либо, если “что-то пошло не так 😃” слегка огорчаюсь и меняю код на исходный, автор ведь посчитал, что так правильнее…
    ===========================
    Не пойдет такой вариант?
Shuricus

На нескольких теоретиков, все же находится один практик, который не пытается советовать обсуждать все в другой теме, а действительно просто разбирается в проблеме. Я вам за это очень благодарен. Копать код самостоятельно мне сложно. Я бы этого точно не понял.

Теперь появилась ясность. Попробую эти варианты.

А что дальше происходит в коде с данными ппм, если они выходит за диапазон?

LaPart
Shuricus:

А что дальше происходит в коде с данными ппм, если они выходит за диапазон?

в предыдущем сообщении функция bool checkPPM(void) // проверка PPM/SBUS на failSafe ретранслятора
как раз и проверяет, входит ли сигнал в нужный диапазон.
Если входит -

LaPart:

FSdetect=0;
return true; // PPM в порядке

сообщает программе, что это не файлсейв и все в порядке, импульс будет передан по значению на передачу.

Если не входит в диапазон -

LaPart:

FSdetect=1;

LaPart:

if(PPM[i] < 1976 || PPM[i] > 4022) return false;

то это файлсейв (это следует из неглубокого копания только в этом модуле).

Возвращается ответ в модуль OpenTiny_TX, откуда вопрос и задавался,
если глубоко не вдаваться, то после обработки ответа есть строка с комментарием
// нет PPM - нет и передачи
Пока всё, я убежал, удачи 😃

Shuricus

Тут не состыковка с тем фактом, что если у меня есть импульс меньше 988, то все равно все продолжает работать.