ClickStick

Я придумал и реализовал решение которое позволяет стабилизации работать во всем диапазоне хода стика газа без выключения моторов и вместе с тем дает возможность быстрого выключения моторов и включения их обратно стиком газа.

Для этого диапазон стика газа нужно тактильно разделить на 2 зоны:

  • FlightZone 3-100% хода стика; моторы и стабилизация всегда включены (включен AirMode); стик газа двигается как обычно свободно
  • MotorstopZone 0-3% хода стика; в этой зоне моторы выключаются; присутствует возможность выполнить арм/дизарм стиком; стик газа подпружинен и стремится вернуться во FlightZone

Что бы перейти из FlightZone в MotorstopZone нужно преодолеть небольшое сопротивление с кликом (например как нажатие кнопки трим или любой другой кнопки с кликом). Обратный переход свободный, после отпускания стика газа - он сам возвращается во FlightZone.

Это достигается очень простой аппаратной модификацией стика газа. Появляется тактильный сигнализатор перехода из FlightZone в MotorstopZone и свободный переход обратно.

Подробнее под спойлером

Проблема
Я встречал много отзывов людей которые хотят что бы:

  • коптер можно было армить стиками
  • при достижении стикам газа минимального положения - выключать моторы
    Это может показаться удобным, привычным и даже более безопасным, но не соответствует современному подходу в управлении коптером.

Современный подход в управлении коптером таков:

  • моторы и стабилизация работает во всем диапазоне стика газа
  • арм/дизарм производится тумблером, это позволяет моментально выключать двигатели в экстренной ситуации
  • 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.

www.youtube.com/watch?v=MeaaFiIIu-Q

Спасибо Борису, именно AirMode и обсуждение в его теме натолкнуло меня на идею создания такого решения.

Буду рад любым замечаниям/советам/вопросам.

  • 1907
Comments
czuryk

стик газа подпружинен и стремится вернуться во FlightZone

Вот этого очень не хотелось бы…

korvin8

объясни почему?

я наоборот считаю что такое поведение максимально удобно
по сути стик остается стиком, а ниже его хода - появляется “классическая кнопка с кликом”
пока ее держишь - моторы выключены, можно армить/дизармить
отпустил ее - перешел в обычный режим с работающими моторами во всем диапазоне газа

czuryk

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

korvin8

так газ и не подпружинен! в диапазоне 3-100% он работает как обычно
посмотри видео, должно стать понятно как это работает