ПроблемаЯ встречал много отзывов людей которые хотят что бы:
- коптер можно было армить стиками
- при достижении стикам газа минимального положения - выключать моторы
Это может показаться удобным, привычным и даже более безопасным, но не соответствует современному подходу в управлении коптером.
Современный подход в управлении коптером таков:
- моторы и стабилизация работает во всем диапазоне стика газа
- арм/дизарм производится тумблером, это позволяет моментально выключать двигатели в экстренной ситуации
- AirMode всегда включен (MOTOR_STOP всегда выключен)
- низкий min_check (например у меня 1010 при диапазоне rxrange 1000-2000 us это 1% хода стика) для максимально широкого рабочего диапазона стика газа и минимальной "мертвой" зоной внизу
Я пользуюсь такой конфигурацией довольно давно (до появления AirMode я использовал pid_at_min_throttle = PID а еще раньше - трим холостого хода в аппе), и она меня полностью устраивает кроме одной проблемы, описанной ниже.
Существует проблема быстрой остановки и запуска моторов в полете. При использовании арминга тумблером - можно очень быстро остановить моторы (дизармить). Но невозможно их опять моментально запустить после этого. А это может понадобится например при попадании в ветки дерева, с последующим выпаданием их них. Например я всегда успеваю дизармить моторы при ударе, но если коптер высвободился из кроны и падает - не успеваю заармить его обратно. Ведь для этого нужно не только опустить газ в ноль и перевести тумблер в положение арм после этого, но и коптер должен находится в положении близком к горизонтальному (при дефолтном small_angle = 25).
Я взялся решать именно эту проблему. Но мое решение также удовлетворяет желанием людей, о которых я написал в начале.
РешениеОбдумав привычную моторику управления коптером я пришел к выводу что задачу выключения моторов должен выполнять стик газа. Ведь это вполне естественно в экстренной ситуации опускать его вниз и выключать моторы. С другой стороны во время полета при опускании стика в нижнее положение моторы и стабилизация не должна выключаться.
Поэтому я пришел к выводу что эту задачу можно решать только аппаратно модифицировав стик газа так, что бы появилось тактильная граница перед той зоной, в которой моторы выключаются.
С другой стороны модификация должна быть простой и обратимой.
Если ее произвести то можно летать с включенным MOTOR_STOP, постоянной стабилизацией и не боятся случайно опустить стик газа ниже min_check и выключить моторы. Но при необходимости экстренного отключения просто добавить немного усилия на стик внизу хода и остановить моторы. После это можно как запустить их обратно, просто отпустив стик, так и дизармить коптер привычным движением стика влево.
РеализацияЯ сделал очень простой мод на свой Таранис, состоящий из пластинки из стеклотекстолита (выполняет роль адаптра/крепления и регулировки положения) на которой закреплена небольшая кнопки с кликом. Кнопка упирается во вращающуюся механическую часть стика газа в конце его хода. Электрическая часть кнопки не используется. Кнопка лишь выполняет роль создания механического тактильного порога. Думаю такой мод не сложно будет сделать на любой аппе.
Со стороны настройки контроллера я сделал следующее:
Управляющий диапазон у меня 1000-2000us. В моей реализации кнопка срабатывает вниз на 1030us и вверх на 1010us. В этом случае min_check у меня 1020, в середине диапазона клика кнопки. Фича MOTOR_STOP включена. AirMode естественно включен всегда

Единственное что меня смущает в такой настройке - моторы начинают вращаться при управляющим сигнале 1030, что немного больше min_check 1020 и в этом случае уже будет работать полная стабилизация с Iterm.