Создание моделей для прошивки DeviationTX

Предисловие.

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

О терминологии. В оригинале использовались термины "воздушное судно" и
другие, не принятые в русском языке к мелким леталкам. Поэтому когда
речь идет про то, чем управляет пульт, используется слово "дрон". 
Слово "модель" относится только к файлам настройки пульта.

Пульт и передатчик далее - синонимы, хотя собственно передатчик это малая часть пульта.

 

Введение.

Давайте сначала отвлечемся от техники.

Что особенного в прошивке DeviationTx?

Стандартный (standard) режим микшеров это вовсе ничего особенного. Во всяком случае, он даже кажется немного менее мощным по сравнению с фирменной прошивкой передатчика. А вот расширенный (advanced) режим микшеров намного сложнее настроить, потому что вы должны понимать, как желаемое поведение управления дроном выражается через значения выходных каналов, а также как использовать микшеры (mixers) для получения таких значений выходов. Зато этот режим обеспечивает прямой доступ к внутренней работе микшеров, что делает его невероятно мощным.

Что в этом документе

После этого вводного материала и обзора устройства конфигурации модели, этот документ проведет вас через полную установку для современного коптера и самолета с использованием режима Advanced. Начиная с базовой конфигурации - четыре канала плюс канал выбора режима полета, которые есть у всех современных полетных контроллеров. После небольшого введения, объясняющего как выяснить привязки канала, когда они не известны, речь пойдет об использовании расширенных функций deviationTx. По пути будет рассмотрено как настроить конфигурацию канала, основную конфигурацию страницы, автоматически изменяя выходные значения, и все остальное, что по моему опыту может оказаться полезным. Как бонус, будет раздел, рассказывающий про все вещи, которые можно сделать с помощью кнопок Тримов, кроме как использовать их в качестве триммеров.
 

Предполагаемая аудитория

Этот документ предназначен для опытных RC-пилотов. По правде говоря, я сейчас не верю что прошивка  DeviationTx подходит для начинающих, хотя прогресс в этой области есть. Из-за этой целевой аудитории стандартный режим не будет рассмотрен.
 

Возврат долга это обязанность

Сообщество DeviationTx  является особенным. Они свободно обмениваются конфигурациями моделей и трюками микшеров в форумах. Информация в данном документе происходит почти исключительно из этих форумов. Некоторые небольшие его кусочки именно мои, но большая его часть поступила из форумов, хотя я и изложил это собственными словами. Про некоторые моменты я могу вспомнить где нашел, но далеко не про все.  Так что вместо того чтобы рисковать пропустить кого-то, кто заслуживает упоминания, я буду благодарить сообщество в целом. Мои благодарность и уважение каждому в этой великой группы.
Если что-то здесь не так, то только потому что я перепутал. Вы можете предложить внести изменения в (английский оригинал статьи) тут

 

Обзор глав

Это введение в различные переменные, которые имеются в модели deviationTx. Эта информация из руководства по deviationTx,  но я повторю ее  здесь для вашего удобства.
В этом документе  названия, как они представлены в прошивке, будут отображаться шрифтом FIXED.  Названия переменных или их части будет курсивом. Большинство из них будут заглавными БУКВАМИ, потому что именно так они выглядят на экране передатчика.

Значения входов и выходов обычно работают от 100% до -100%, что означает переход от полного значения в одном направлении до полного значения в другом, но также и от включенного к  выключенному. Так как все значения в процентах,  знак % будет использоваться или нет в зависимости от контекста. Многие переменные могут принимать значения до 150, а не 100, а максимальные и минимальные значения выходных сигналов можно задать явно.

Выходы

Сердцем прошивки deviationTx являются микшеры (Mixers) - сущности, позволяющие вычислить значения канала по определенному закону из входных значений. Конечная цель всех микшеров - получить определенное поведение для выходов передатчика, которые появятся на входе контроллера вашего дрона. Итак, давайте перейдем к ним в первую очередь.

Каналы передатчика

Выходные каналы передатчика это те значения, которые он передает. Их число обычно соответствует количеству каналов на приемнике, и может варьироваться от всего лишь 1 до 12.

Виртуальные каналы

Одна из необычных особенностей deviationTx является наличие 10 виртуальных каналов. Они могут использоваться  так же, как каналы передатчика, за одним исключением - они не передаются на приемник. Они полезны для создания промежуточных значений для использования в других микшерах. Вы увидите, как они используются при создании конфигураций модели.
 

Входы

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

Стики

Две ручки управления, являющиеся основой передатчика радиоуправления. Они также имеют пару триммеров, располагающихся сбоку и снизу стика.  В прошивке deviationTx они называются ELE (elevator, управление рулем высоты), AIL (aileron, элероны), THR (throttle, дроссель) и RUD (rudder, руль направления).

Крутилки и слайдеры

Некоторые пульты также имеют аналоговые ручки или ползунки, используемые в качестве входных данных. Они обозначены AUX #, где # цифра от 2 до 7.

Триммеры

Триммеры обозначены как TRIM**D, где ** это его место: LH это левый горизонтальный (Left Horizontal), RV это правый вертикальный (Right Vertical) и так далее, или для крайних верхних _L для левого и _R для правого. Значение D это направление триммера: "+" для увеличения значения или "-" для уменьшения.

Каналы

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

Переключатели

Есть разные штуки, которые могут быть использованы в качестве переключателя в deviationTx. Обычно они имеют значения 100% если включены и -100% когда выключены.
 
Физические переключатели

Как и любой современный передатчик, серия Devo имеет набор переключателей. Они отмечены наподобие  GEAR#, MIX# and FMOD# где # это цифра, указывающая позицию переключателя. Она может быть 0 или 1 для двухпозиционного переключателя,  для переключателя на три положения добавится 2. Каждый из них имеет значение, равное 100%, когда переключатель находится в соответствующем  названию положении, и -100% в остальных случаях. Это использование очень удобно, но это не означает, что FMOD0 и! FMOD1 одно и то же:  в положении FMOD2 значением FMOD0 будет -100%  а значением ! FMOD1  будет 100%.

 

Каналы в роли переключателей

Все каналы могут быть использованы в роли переключателей. В таком случае любое значение больше 0 означает "Включено" а любое значение меньше или равное 0 - "выключено".

Кнопочные выключатели

Любые кнопки передатчика, включая те что используются для управления самим передатчиком, могут использоваться как виртуальные переключатели. Это требует настройки их как триммеров для виртуального канала, и использования этого канала в роли переключателя. Про это будет в оследней главе.
 

PPM

И наконец, можно использовать DSC (он же тренерский разъем) передатчика для ввода PPM-сигнала. Это можно использовать для подключения к передатчику всего, что может выводить PPM. Типичные примеры это подключение второго пульта в роли ученика, и FPV очки с трекером. Такие каналы обозначены PPM #, где # это номер входного канала с 1 по 8.

 

Обзор микшеров

А теперь обзор микшеров deviationTx. Опять же, эта информация есть в руководстве deviationTx, но я включил ее для вашего удобства.
В отличие от нативной прошивки, где ограниченное количество микшеров, каждый из которых может быть присоединен только к определенному каналу, в deviationTx каждый канал может иметь несколько микшеров, связанных с ним. Они доступны в разделе Mixer страницы модели. Каждый канал представлен двумя кнопками и меткой, хотя метка может отсутствовать.
Одна кнопка это информация о канале в качестве метки. Кнопки первых 5 выходных каналов будут отображаться как # -XXX, где # это номер канала, а XXX это обычное использование этого канала в выбранном протоколе: THR, РУД, AIL, ELE и GEAR, в порядке определяемым протоколом. Остальные выходные каналы отображаются как Ch #, где # номер канала. Виртуальные каналы отображаются как Virt #, в этом случае # это номер виртуального канала.
Вторая кнопка сообщает, какой режим назначен этому каналу. Это может быть None (никакой), Simple  (простой) или Complex (сложный). Именно сложные находятся в центре внимания данного документа. Если задано что модель это вертолет, то также добавятся Cyclic1, Cyclic2 и Cyclic3. Они, как правило, используются только для старых вертолетов коллективного шага без контроллера, то есть смешивание каналов управления должно быть сделано в передатчике. Так как их можно только выбрать, но не настраивать, они не будут обсуждаться.
Все режимы кроме None это последовательность из одного или нескольких индивидуальных микшеров. Каждый из них похож на микшер в фирменной прошивкой, но гораздо более гибок. Каждый микшер может иметь вход, связанный с ним. Если первый из микшеров не None и имеет вход, название этого входа будет отображаться в роли метки этого канала на странице Mixer передатчика, вместе с двумя кнопками.

Его величество Микшер

Микшер принимает значение со входа, изменяет его каким-либо образом, а затем смешивает его в выходом предыдущего микшера, если есть. Каждый микшер имеет по меньшей мере четыре различных параметра, которые вы можете задать. Наиболее важным является Src - значение входа для этого микшера. Он может быть любым из всех тех источников, что перечислены в разделе Входы выше.
Есть также возможность масштабирования (Scale) и смещения (Offset) значений,  изменяя значение микшера, беря процент от него, или перемещая его вверх или вниз на фиксированную величину. Шкала 100% не изменяет значение вовсе. Шкала 50% оставляет ½ значения, которое иначе бы было. Шкала 120% сделает его больше на 20%. И так далее. Offset (смещение) просто прибавляется к значению. Хотя такое поведение может быть изменено с помощью выбранной кривой.
 Кривая это функцией, которая применяется к входному значению перед смещением и масштабированием. Когда виджет выбора превращается в кнопку, при ее выборе откроется страница, позволяющая изменять параметры кривой. Доступные кривые:

  • 1-1: просто копирует входное значение.
  • Fixed: входное значение игнорируется, значение Scale идет на выход.
  • Min/Max: либо –100 либо 100. Если входное значение меньше либо равно 0 то будет -100, иначе 100
  • Zero/Max: работает как и Min/Max, за исключением что нижнее значение 0 а не -100.
  • >0:  как и Zero/Max, за исключением того чт Max значение копируется со входа, а не 100.
  • <0:  как и >0, за исключением того что Min значение копируется со входа а Max  будет 0.
  • ABSVAL: абсолютное значение со входа - отрицательные значения становятся положительными.
  • EXPO:  применяет экспоненту к кривой. Параметр позволяет установить  значение экспоненты, применяемой выше и ниже ноля. Хотя настройка в необычном месте, идея та же что и в фирменной прошивке.
  • Deadband: задает мертвую зону вблизи нуля - среднего положения стика. Имейте в виду что возвращается всегда абсолютное значение, так что скорее всего потребуется использование микшера Mux типа Mult.
  • # Point: позволяет задать кривую через 3, 5, 7, 9, 11 или 13 точек. Параметр позволяет задать каждую точку и наличие/отсутствие сглаживания.

Смешивание

Смешивание это последовательность микшеров. 

Они рассчитываются по порядку, смешивая входное значение, возможно измененное заданной кривой, смещается и масштабируется выход предыдущего микшера, как указано настройкой параметра MUX.

Это новый параметр, который контролирует, как значение предыдущего микшера и выход этого микшера будут объединены. Доступны следующие настройки:

  • replace: игнорирует значение предыдущего микшера, и использует только собственное выходное значение. Используется обычно в секции Switch для задания полетных режимов и подобных целей.
  • add: два значения складываются вместе. Это тот способ, как микшеры работают в фирменной прошивке.
  • mult: два значения перемножаются. поскольку значения это проценты, нужно разделить отображаемое значение на 100, чтобы получить фактическое значение. То есть если было 50% и снова вычислено 50% то полные значения это 0.5 и 0.5, и произведение получается 0.25, поэтому окончательное выходное значение будет 25%.
  • min: меньшее от предыдущего микшера и данного становится результатом.
  • max: большее от предыдущего микшера и данного становится результатом.
  • delay: тип кривой должен быть фиксированным, а значение  Scale  задает задержку, применяемую к выходу предыдущего микшера. Это используется для получения автоматически изменяемого значения.
Для первого микшера в цепочке в роли выхода предыдущего микшера выступает предыдущее значение канала. Поэтому вы должны установить тип смешивания MUX первого микшера в состояние replace  (заменить), за исключением особых случаев.Даже если вы хотите использовать это старое значение, лучше сделать это явно, подав на вход Src первого микшера значение этого канала и включив режим замены значения. Делая это, вы можете обработать значение при помощи кривой перед использованием, что невозможно при неявном использовании.
Еще один новый параметр это Switch (переключатель). Если он в положении None, то микшер включен всегда. Если же переключатель задан то микшер активен только когда переключатель включен, иначе он выключен, и на выходе будет значение с выхода предыдущего микшера. 
А еще можно установить переключатель в состояния Trim и No Trim.  В состоянии Trim  значения триммеров этого канала будет добавлено к выходу микшера.
 

Загрузка файлов .ini 

Наверное вы уже заметили, что нет иллюстраций настройки передатчика, которые обычно приводятся в инструкциях. Это потому, что различные типы передатчиков имеют радикально различный внешний вид, несмотря на то, что они предназначены для одной цели. Если вы хотите иллюстраций вашего передатчика, то прочитайте руководство по deviationTx для него.
Но есть одна общая черта у всех передатчиков - файлы, хранящиеся на флэш-накопителе, описывающие каждую модель. Находятся они в каталоге models  внутреннего диска. Это именно то, что загружаются на форумах, и, как правило, представлено в инструкциях и обсуждениях, так что понять их просто необходимо. Они предоставляют всю информацию, необходимую для настройки всех каналов со входа до выхода, так что я буду использовать их для иллюстрации примеров конфигураций.
Вы можете получить доступ к файлам model**.ini, подключив передатчик в USB-порт компьютера и включите режим USB. Для этого нужно нажать и удерживать кнопку ENT при включении передатчика - этот способ рекомендуется, если вы собираетесь изменить модель. Также можно получить доступ к режиму USB из меню передатчика. Но текущая модель не будет перезагружена при выходе из режима USB,  а при выключении или смене модели будет сохранена, так что любые изменения в ней будут потеряны. 

 

Описание модели

Как можно предположить по расширению ".ini", файлы модели используют формат файлов настройки (.ini) Windows. Он разделен на секции, начинающиеся с заголовка секции в квадратных скобках, и последующих строк формата Переменная=Значение (name=value)
Однако первая часть не имеет имени секции, и описывает глобальные настройки модели. Пример файла, который мы немного начали настраивать:
  1. name=Blade 200 QX
  2. mixermode=Advanced
  3. icon=MINIQUAD.BMP
Так что это настройка для Blade 200 QX,  режим микшеров Advanced (расширенный), и используется значок MINIQUAD.bmp. Как напоминание, режим микшеров не меняет содержимого файла, а лишь способ отображения настроек на экране пульта.
  1. [radio]
  2. protocol=DSMX
  3. num_channels=5
  4. fixed_id=200123
  5. tx_power=150mW
Секция radio просто описывает настройки протокола радиосвязи. Будучи из семейства Blade, квадрик использует протокол DSMX. Это довольно простая модель, и использует только 5 каналов. Это типично для многих мультикоптеров, так как они используют 4 канала для управления положением и один канал для полетных режимов.
Далее, мы имеем:
  1. [protocol_opts]
  2. Telemetry=Off
Что задает режим работы протокола  без телеметрии, поскольку приемник не поддерживает ее.
 

Первый пример микшера

Относительно простой микшер для канала 1 мог бы выглядеть так:
  1. [channel1]
  2. template=expo_dr
  3. [mixer]
  4. src=AIL
  5. dest=Ch1
  6. [mixer]
  7. src=AIL
  8. dest=Ch1
  9. switch=AIL DR1
  10. scalar=70

Строка 1 говорит нам что это настройки для  канала 1. Строка 2 говорит нам, что будет отображаться шаблон Expo & DR, задавая интерфейс передатчика. Строка 3 начинает секцию первого микшера. Строка 4 устанавливает вход (Src) для этого микшера на вход AIL (стик элеронов). Строка 4 это деталь реализации, просто показывает для какого канала данный микшер. Кривая, масштаб, смещение, переключатель и триммеры (Curve, Scale, Offset,   Switch, Trim) не заданы, поэтому принимают значения по умолчанию 1-1, 100, 0, None и 1 (включено) по порядку.
Второй микшер в цепочке начинается в строке 6, в строке 9 задается переключатель а в строке 10 значение шкалы (Scale). Работает это так: если переключатель AIL DR находится в положении 1, этот микшер станет активным и будет масштабировать входное значение (Src) на 70%. Так как тип  смешивания (Mux) отсутствует, принимается по умолчанию режим замены (Replace).

Это типичная настройка двух скоростей, переключающая канал 1 от 100% до 70% от входа AIL с помощью переключателя AIL DR.

 

Пример микшера с использованием Кривой (Curve)

Микшер с кривой мог бы выглядеть так:
  1. [mixer]
  2. src=AIL
  3. dest=Ch1
  4. curvetype=expo
  5. points=35,35
В строке 4 задается тип кривой (Curve type)  Экспонента (Expo). В строке 5 задается параметр кривой, точки (points). В данном случае применяется экспонента "35" к обеим половинам кривой.
 

Последние настройки микшера

Последние настройки, которые можно увидеть в параметрах микшера это  mux - тип смешивания микшера, и  usetrim - принимающий значение 0 для отключения триммеров (режим No Trim), или отсутствует по умолчанию если триммеры используются (режим Trim).
Помимо шаблона для микшера, существуют и другие настройки каналов, которые отображаются в разделе канала. Рассмотрим их в следующем разделе.

 

Основная настройка модели

В этом разделе мы собираемся создать файл  model.ini для простого пятиканального дрона  Blade 200QX. Четыре канала управляют положением дрона в пространстве, а пятый переключает полетный режим. Этот пятый канал позволяет показать простую установку переключателя. Вобщем-то эти настройки должны работать для большинства четырехканальных дронов, если вы просто проигнорируете канал режима.
Первый шаг это настройка файла модели. Перейдем в меню Model->Setup menu, задаем имя, выберем протокол и количество каналов. Если у вас не вертолет, установите тип модели в режим Plane для самолета или Multi для коптеров. Лучше также изменить значок. Если вы не уверены что приемник имеет телеметрию, убедитесь, что телеметрия выключена, для чего выберете селектор протокола нажмите Ent. 
После этого для дрона Blade 200QX мы получим такой файл model.ini:

  1. name=Blade 200 QX
  2. mixermode=Advanced
  3. type=multi
  4. [radio]
  5. protocol=DSMX
  6. num_channels=5
  7. fixed_id=165827
  8. tx_power=150mW
  9. [protocol_opts]
  10. Telemetry=Off

Простые микшеры

Конфигурация по умолчанию устанавливает первые четыре канала как простые микшеры для тех элементов управления, которые обычно используются в данном протоколе. Пока мы будем считать, что это правильно. Таким образом, первые четыре канала в файле model.ini выглядят следующим образом:
  1. [channel1]
  2. template=simple
  3. [mixer]
  4. src=THR
  5. dest=Ch1
  6. [channel2]
  7. template=simple
  8. [mixer]
  9. src=AIL
  10. dest=Ch2
  11. [channel3]
  12. template=simple
  13. [mixer]
  14. src=ELE
  15. dest=Ch3
  16. [channel4]
  17. template=simple
  18. [mixer]
  19. src=RUD
  20. dest=Ch4
Канала 5 нет в списке, потому что он не настраивается по умолчанию, даже если указано пять каналов. Только первые четыре канала получают значения по умолчанию. Как вы можете видеть, каждый из них представляет собой простой микшер с кривой 1-1, шкалой 100 и смещением 0. Хоть и можно летать в такой конфигурации, это не оптимально. Обычно устанавливается режим двух скоростей и возможно какая-то экспонента, так что давайте сделаем это сейчас.
 
 

Микшер с экспонентой и двойными скоростями (Expo&DR)

Я начал настройку коптера в режиме двух скоростей, используя 35% экспоненту на скорости 100% для быстрых полетов, и линейную зависимость с 70% от максимума на низкой скорости. Это относится только к каналам элеронов и руля высоты, и оба переключаются с помощью переключателя AIL DR. На странице Mixer, выберите один из этих двух каналов и установите тип Expo & DR. На микшер для высокой скорости установите кривую EXPO, выберите и установите значение 35. Установите в качестве переключателя (Switch) вход AIL DR1, и шкалу (Scale ) в значение 70%. Повторим то же самое для второго канала. Результатом для каналов 2 и 3 будет:
  1. [channel2]
  2. template=expo_dr
  3. [mixer]
  4. src=AIL
  5. dest=Ch2
  6. curvetype=expo
  7. points=35,35
  8. [mixer]
  9. src=AIL
  10. dest=Ch2
  11. switch=AIL DR1
  12. scalar=70
  13. [channel3]
  14. template=expo_dr
  15. [mixer]
  16. src=ELE
  17. dest=Ch3
  18. curvetype=expo
  19. points=35,35
  20. [mixer]
  21. src=ELE
  22. dest=Ch3
  23. switch=AIL DR1
  24. scalar=70
Настройки обоих каалов в значительной степени идентичны, мы видели это раньше. Так что - никаких сюрпризов до сих пор
 

Настройка полетных режимов

Теперь нам нужно задать режим полета. Для этого на 200QX используетс пятый канал, обозначенный как GEAR. Нам нужны 100/0 / -100 для режимов "начальный", "средний" и "эксперт". Чтобы включить эту функцию, вы можете использовать режим Expo & DR. Для Экспертного режима кривая (Curve) будет иметь значение  Fixed (фиксировано), со шкалой -100. Переключать в Средний режим будет переключатель FMOD1, со шкалой (Scale) 0. Для Начального режима, переключатель FMOD0 и шкала (Scale) 100. Получаем:
  1. [channel5]
  2. template=expo_dr
  3. [mixer]
  4. src=AIL
  5. dest=Ch5
  6. scalar=-100
  7. curvetype=fixed
  8. [mixer]
  9. src=AIL
  10. dest=Ch5
  11. switch=FMODE1
  12. scalar=0
  13. curvetype=fixed
  14. [mixer]
  15. src=AIL
  16. dest=Ch5
  17. switch=FMODE0
  18. curvetype=fixed

Теперь должно быть понятно: в режимах 0 и 1 оказывается включен второй (строка 8) или третий (строка 14) микшер, и его выход заменяет значение канала. В режиме 2 они выключены, так что используется выход первого микшера со значением 100.
Также вы можете использовать переключатель в качестве источника, и сделать то же самое с двумя микшерами и в основном со значениями по умолчанию. Так что измените тип смешивания на Сложный (Complex ) с двумя микшерами. Задайте первому микшеру фиксированную кривую с масштабом 0. Установите второму микшеру кривую Min/Max, источник FMOD0 и переключатель !FMOD1 (инверсия).  Чтобы сделать это, измените поле выбора переключателя на FMOD1 и затем выберите его, чтобы инвертировать вход. Убедитесь, что шкала имеет значение 100. Если вы изменяете предыдущее настройки режима Expo & DR, вам придется исправить. Теперь канал выглядит следующим образом:

  1. [channel5]
  2. template=complex
  3. [mixer]
  4. src=AIL
  5. dest=Ch5
  6. scalar=0
  7. usetrim=0
  8. curvetype=fixed
  9. [mixer]
  10. src=FMODE0
  11. dest=Ch5
  12. switch=!FMODE1
  13. usetrim=0

Намного проще, чем раньше. Теперь, в режиме 1, используется первый микшер, выдавая на выход 0. В режимах 0 и 2 включается второй микшер, и используется его выход. То есть либо 100 в режиме 0, или -100 в остальных. Так как другой режим полета, где этот микшер включен, это режим 2, он  единственный получает значение -100.
Эти два метода охватывают все конфигурации микшеров, которые используют один канал.

Конфигурация канала
 
Мы почти готовы к полету. Нам просто нужно подстроить еще несколько вещей.
 

Удержание газа(Throttle hold)

Существует последняя вещь, которая должна быть сделана, прежде чем взлетать. Это переключатель удержания газа. Так как двигатель является основным источником энергии на борту воздушного судна, закрытие дроссельной заслонки позволяет свести к минимуму ущерб всем, участвующих в аварии. Ваш дрон всегда участвует, но может пострадать чужая собственность или даже люди, так что выключение двигателя не только потенциально экономит ваши деньги, но также это хорошая идея по соображениям безопасности. На большинстве дронов  с двигателями внутреннего сгорания, -100 канала газа означает холостой ход, а не выключение двигателя. Это совсем не так на многих мультикоптерах, в том числе 200 QX. Но так как мы хотим закрепить рефлекс, насколько это возможно, то будем ставить его на на каждом дроне, так что сделаем это.
Настройка переключателя безопасности несложная. Перейдите в меню микшера, а затем нажмите кнопку с меткой THR на нем. Используйте селектор Safety (безопасность), чтобы выбрать переключатель какой вы хотите. В этом случае мы будем использовать канал Virt1 в качестве переключателя, по причинам, которые я объясню, в ближайшее время. Затем установите Safe Val до -125. В большинстве случаев это значение -100 изначально, и только опустив его ниже можно остановить двигатели. Канал 1 теперь выглядит следующим образом:

  1. [channel1]
  2. safetysw=Virt1
  3. safetyval=-125
  4. template=simple
  5. [mixer]
  6. src=THR
  7. dest=Ch1
Просто добавлены значения которые мы изменили относительно значений по умолчанию.
 

Остальная конфигурация канала

Другие вещи которые мы могли бы пожелать изменить в конфигурации канала это Reverse (реверс), Fail-safe (значение при потере связи) и две шкалы (Scale), хотя реверс это наиболее частая настройка.

Реверс (Reverse) делает именно то, как называется - он меняет канал, так что получив на выходе миксеров значение от -100 до 100, на приемник будет отправлено от 100 до -100, иногда это необходимо. Конечно, это можно сделать поставив инверсию всех входов всех микшеров в цепочке, но легче сделать это один раз на странице конфигурации канала. Это также означает, что вы можете настраивать микшеры без необходимости инвертировать ваше мышление.
Точно так же действуют шкалы (Scale) в качестве масштаба на выходе цепочки микшеров, и здесь это можно сделать по тем же причинам. Это аналогично установке расходов из фирменной прошивке пульта.
Fail-safe устанавливает значение выхода приемника при потере связи. Работает это не для всех протоколов.

 
 

Другие тонкости

Если бы переключатель THR Safety был настоящий выключатель, а не несконфигурированный виртуальный канал, то можно было бы хорошо летать прямо сейчас. Так что давайте исправим этот канал, и добавим несколько других вещей, которые сделают полеты безопаснее и веселее.
 

"Липкое" удержание газа

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

Так что теперь на странице Mixer найдем канал Virt1. Выберите его, и измените имя на что-то вроде T Hold. Присвоение имен виртуальных каналов облегчает работу с ними. Теперь вернемся к странице Mixer, и отредактировать настройки смешивания. Установите тип Complex  (сложный) и количество микшеров 3.
Установите первый микшер так что входом был этот самый канал  T Hold,  и кривую Min/Max. Микшер читает старое значение канала и приводит его в -100 если он был ниже 0, 100 если выше. Это нормализует значение, так как мы будем коверкать его его очень сильно в ближайшее время.
Перейдите на второй микшер и установить режим  смешивания (MUX) add (добавить), источник THR, кривую 1-1, и смещение -1. Таким образом, выход этого канала будет изменяться от -1 до 199, если переключатель был включен прежде, так что переключатель выключен только выход канала газа -100 или -99. Если выключатель был выключен, то выход будет меняться от -201 до -1, и переключательбудет оставаться выключен вне независимо от того, что делает канал газа.
И, наконец, третий микшер - это простая установка переключателя. Установите в качестве переключателя RUD DR0, а кривую  Fixed. Режим смешивания (mux) по умолчанию, replace (замена). Этот микшер отбрасывает значение предыдущего микшера, если переключатель RUD DR находится в положении 0, и передает это предыдущее значение дальше если переключатель находится в положении 1.
Наш виртуальный канал должен выглядеть следующим образом:

  1. [virtchan1]
  2. name=T Hold
  3. template=complex
  4. [mixer]
  5. src=Virt1
  6. dest=Virt1
  7. usetrim=0
  8. curvetype=min/max
  9. points=0
  10. [mixer]
  11. src=THR
  12. dest=Virt1
  13. offset=-1
  14. usetrim=0
  15. muxtype=add
  16. [mixer]
  17. src=AIL
  18. dest=Virt1
  19. switch=RUD DR0
  20. usetrim=0
  21. curvetype=fixed

Так что теперь RUD DR0 включает удержание газа, а РУД DR1 не позволяет ему выключиться пока в канале газа не будет -100 или -99.  Липкое удержания газа.

Хорошо, теперь пришло время, чтобы разобраться с различными передатчиками. Если у вас есть Devo 8, 10 или 12, вы можете использовать переключатели которые я собираюсь использовать. Если у вас есть Devo 6, то вам придется выбрать другие, но это на самом деле лучшие имена для этой конфигурации. Вы можете, например, использовать HOLD1 для переключателя удержания. Если у вас есть  Дево 7e - ну, это можно заставить чтобы работать. Если вы установили дополнительные переключатели, можно использовать их, изменив название. Если нет, то вам стоит прочитать последнюю главу - кнопки триммеров - чтобы все получилось.

 

Простой микс

200QX, как и многие другие коптеры, теряет подъемную силу, когда он начинает двигаться в сторону. Это то, что, как правило, компенсируется микшерами в фирменной прошивке. Лично мне это не нравится, но дело вкуса. Так что я покажу вам, как добавить компенсацию в канал газа. Обратите внимание, что я не летал с этой  настройкой микшеров, так что вам придется проверить это самостоятельно!

Перейдите на страницу Mixer и откройте настройку для THR. Измените тип микшеров с простого (Simple ) на сложный (Complex ). Если вы загляните в первый микшер, вы увидите, что это по-прежнему тот же микшер который был в простом режиме. Так обычно бывает - изменение режима микшеров не меняет самих микшеров, по крайней мере, если они все еще там.
Теперь увеличьте количество микшеров до 3. Перейдите ко второму, и установите AIL в качестве источника (Src), кривую ABSVAL, тип смешивания add (добавить), и шкалу 20. Кривая ABSVAL  означает что абсолютное значение AIL  будет использоваться, а не реальнаое значение. Масштаб это догадка, какой процент от элеронов нам нужно добавить к газу.
Теперь повторите процесс на странице 3 с ELE в качестве источника (Src). Ваш новый канал дроссельной заслонки должен выглядеть следующим образом:

  1. [channel1]
  2. safetysw=Virt1
  3. safetyval=-100
  4. template=complex
  5. [mixer]
  6. src=THR
  7. dest=Ch1
  8. [mixer]
  9. src=AIL
  10. dest=Ch1
  11. scalar=20
  12. usetrim=0
  13. muxtype=add
  14. curvetype=absval
  15. points=0
  16. [mixer]
  17. src=ELE
  18. dest=Ch1
  19. scalar=20
  20. usetrim=0
  21. muxtype=add
  22. curvetype=absval
  23. points=0
Обратите внимание, что задана настройка  No Trim для новых микшеров. Кроме того, если вы начинаете двигаться по диагонали, то в канал газа будут добавлены поправки как элеронов, так и руля высоты, что может быть нежелательным. Но вы должны настроить этого самостоятельно.
 

Таймеры

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

Так как мотор крутится всякий раз, когда удержание газа выключено, я хочу чтобы таймеры работали, когда удержание газа выключено, так как это означает, что двигатели работают. Во многих случаях, установив переключатель (Switch) таймера  в THR будет лучшим таймером, так как работает, когда выход канала газа выше -100. Тем не менее, это также означает, что канал T Hold, который отлично работает в качестве переключателя безопасности газа, не будет работать в качестве переключателя для таймера. Поэтому нам нужен новый канал.
Итак, вернитесь к странице Mixer, выберите другой виртуальный канал и установить тип микшеров простой (Simple), источник !T Hold, а кривую Min / Max. Дайте ему имя типа DT Hold (Display Throttle Hold, Отображение удержания газа). 
Перейдите в меню Model, а затем к странице Timers  (таймеры). Установите Timer1 в качестве таймера обратного отсчета (countdown), в качестве переключателя (Switch) канал DT Hold, в качестве сброса (Reset SW)  ELE DR1, и начальное значение (Start) 9:00. Переключатель будет запускать таймер только тогда, когда дроссельная заслонка не удерживается.

Но если вы не знаете, сколько летает ваш дрон, то лучше установить этот Timer1 в режиме секундомера (stopwatch). После того как вы летали несколько раз и узнали, как долго расходуются батареи, можно изменить его на обратный отсчет. Аварийный сигнал пульта раздастся за 30 секунд до окончания таймера, и затем каждые 10 секунд после этого, чтобы предупредить вас, что пришло время приземлиться. Эти два значения времени могут быть заданы на странице конфигурации передатчика, в соответствии с настройками таймера.

Теперь идите вниз к Таймер2, и установить его в режим "постоянный" (permanent). Опять же, установите в  роли переключателя (Switch) канал DT Hold или THR, в зависимости от того, что использовано для Timer1. Поэтому этот таймер будет работать, когда Таймер1 работает. Этот таймер всегда считает, и сохраняется значение между полетами. Он будет записывать общее время полета дрона. Если дрон требует регулярного технического обслуживания, это таймер как раз для этого.
Если теперь вернуться на главную страницу и дать газу, оба таймера должны начать работать. Вот то,  как выглядит моя настройка таймеров в файле model.in:

  1. [timer1]
  2. type=countdown
  3. src=Virt1
  4. resetsrc=ELE DR1
  5. time=420
  6. [timer2]
  7. type=permanent
  8. src=Virt1
  9. val=21271496

Монитор каналов

Перейдите в меню Model, а затем "Main page config" (настройка главной страницы). Если у вас есть цветной сенсорный экран, выберите знак плюс в верхней части. На любом дисплее, найти пункт меню 1 и изменить его значение из "Telemetry monitor" (монитор телеметрии) на "Channel monitor" (монитор каналов). Теперь продолжительное нажатие на кнопку UP вызовет монитор каналов, который полезен для проверки микшеров.  
NG. По мне так монитор телеметрии по нажатию куда как полезнее, конечно если телеметрия есть...
 
 

Переключаемые иконки

Один - ладно, три - последние вещи которые осталось сделать, и тогда мы готовы к полету. Это действительно просто подстройка отображения, и совсем не будет влиять на полет. Я должен извиниться заранее - вот одно из немногих мест, где различные передатчики передатчиков настраиваются радикально по-разному. Как настраивать, какие будут по умолчанию, и какие иконки доступны зависит от типа дисплея пульта.
Перейдите на главную страницу конфигурации. Если у вас пульт с черно-белым дисплеем, найдите Toggle1, и используя поле выбора рядом с ним, выберите  T Hold. Теперь выберите кнопку Toggle1, используя кнопку Вниз, выберите Pos 1, а затем кнопку влево, чтобы выбрать значок для обозначения удержания газа.

Если у вас есть цветной сенсорный экран, выберите флажок Pos  1, а затем выберите значок гаечного ключа. Теперь измените источник на T Hold, выберите Edit, выберите Pos 1, а затем значок удержания газа.
Если есть toggle  с ELE DR в качестве источника, измените источник на FMODE. В противном случае, выбрать неиспользуемый toggle  и установить его источник FMODE. При редактировании его, вы увидите, что она имеет POS 0, POS 1 и POS 2, если вы не используете Дево 7e . Измените иконки для всех трех на что-то подходящее для режимов полета.
И, наконец, отредактируйте иконки, используемые для отображения тумблера AIL DR и установите для положения 1 индикатор низкой скорости.
Вернушись к главной странице, вы увидите, что выбранная иконка удержания газа происходит, когда дроссель удерживается, индикатор низкой скорости происходит, когда вы находитесь в этом режиме, а режим полета отображается на экране. Хоть я не рекомендую смотреть на передатчик, когда вы летите, хорошо иметь возможность проверить эти вещи до взлета.

 

Поиск соответствия каналов для RTF & BNF

NG. Глава по выяснению "что куда подключено" пропущена за ненадобностью как не относящаяся к делу

 

Продвинутые настройки

Хорошо, мы создали простую модель. Но до сих пор мы не сделали ничего, что хорошая фирменная прошивка не может сделать. Даже самый скромный пульт должна быть в состоянии сделать все это, кроме липкого удержания газа. Так что теперь пришло время, чтобы заняться чем-то более серьезным.
 

Тревожная кнопка (A panic switch)

Blade 200 SRX имеет переключатель Panic, который изменяет режим полета в режим новичка, а также отключает управление по кренам. Хотя я не уверен, что это хорошая идея, это легко реализовать с помощью deviaitonTx.
В конфигурации канала AIL и ELE, установите значение Safety (безопасность) GEAR1, и установите Safe Val в 0. Для канала пять, Safety снова GEAR1, но Safe Val 100.  Канал элеронов теперь:

  1. [channel2]
  2. safetysw=GEAR1
  3. template=expo_dr
  4. [mixer]
  5. src=AIL
  6. dest=Ch2
  7. curvetype=expo
  8. points=35,35
  9. [mixer]
  10. src=AIL
  11. dest=Ch2
  12. switch=AIL DR1
  13. scalar=70

Как вы можете видеть, все, что мы сделали, это изменили так что теперь переключатель GEAR1 отключает управление креном. Так как она также включает режим полета для начинающих, то 200QX выровняется автоматически.
Сделав это, может быть хорошей идеей чтобы добавить иконку на главную страницу, чтобы указать, что происходит. Итак, вернемся к главной странице конфигурации, и идем в список toggle. Выберите неиспользуемый toggle, установите его в GEAR, а затем отредактируйтеь его, чтобы установить соответствующий значок Pos 1.

 

Режим Stagility (от Stabilize + agility - стабилизация + проворство)

Режим Stagility был придуман кем-то, использующим фирменную прошивку. Они сделали это путем смешивания каналов крена в канал режима на Blade 350QX, чтобы пнуть его от стабильности в режим ловкости - или промежуточного звена к экспертному режиму  200QX. Мы можем повторить, и сделать это даже лучше, не смешивая в канале режима полета, а используя микшер в качестве переключателя, который изменяет режим  полета правильно.

Первое предупреждение: "Режим stagility" на 200QX не поддерживается компаниями Blade или Horizon Hobby, и известны случаи когда контроллер полета на 200QX становился дезориентированным из-за быстрого изменения режима. Так что используйте этот режим на свой страх и риск.

Второе предупреждение: 200QX 2 версия прошивки в режиме 3D имеет промежуточный режим полета, который похож на stagility поведением. Использование этого режима не имеет смысла, и совершенно не рекомендуется.

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

Выберите неиспользуемый виртуальный канал на странице Mixer. Измените имя на Stagility. Теперь необходимо отредактировать тип микшеров. Изменить его тип на Complex (что еще?) И установить 3 микшера. Первый микшер будет иметь вход (Src) AIL и кривую ABSVAL. Второй будет иметь вход ELE, кривую ABSVAL и смешивание макс.
Таким образом, мы теперь имеем на выходе второго микшера большее из двух кренов. Другие альтернативы включают тип смешивания add (добавить), или если быть математически точным то умножением каждого крена на себя а затем сложение. Тем не менее, использование максимального значения хорошо работает на практике. Это означает, что мы теперь имеем значение от 0 (нет крена) до 100 (полный крен по одному из направлений).
Третий микшер нужен чтобы обеспечить смещение, чтобы задать некий уровень переключения режимов. Без третьего микшера экспертный режим будет всегда.  Итак, мы собираемся добавить кривую Fixed со шкалой -80 и типом смешивания  add (добавить). Это означает, что стик должен быть отклонен на 80%, чтобы вызвать переключение в режиме эксперта.

Канал режима также нуждается в незначительной правке. Измените кривую первого микшера смеситель на Min/Max, вход на Stagility, масштаб и смещение до -50. Мы повторяем технику, используемую во втором микшере, только на этот раз с помощью переключателя Stagility. Использование Мин / Макс здесь означает, что выходные значения будут 0 и -100. Ну, после применения масштабирования и смещения к начальному значению -100 и 100, они будут 0 и 100. Таким образом, наш канал полетного режима с обновленным микшером и настройкой safety теперь выглядит следующим образом:

  1. [channel5]
  2. safetysw=GEAR1
  3. safetyval=100
  4. template=complex
  5. [mixer]
  6. src=Virt2
  7. dest=Ch5
  8. scalar=-50
  9. offset=-50
  10. usetrim=0
  11. curvetype=min/max
  12. points=0
  13. [mixer]
  14. src=FMODE0
  15. dest=Ch5
  16. switch=!FMODE1
  17. usetrim=0
Почти так же, как и раньше: если переключатель FMOD не находится в положении 1, мы выводим -100 и 100 в зависимости от того, находится ли он в положении 0. Если он находится в положении 1, вместо того, чтобы просто выводить 0, выводится 0 или - 100 в зависимости от положения стиков и того третьего микшера канала Stagility.
 
Настраиваемый режим stagility
 
Недостатком данного решения является необходимость перенастраивать микшер для настройки режима stagility, что естественно является неуклюжим. Все должно быть проще. И, конечно, есть.

Вместо использования фиксированной кривой для третьего микшера в канале Stagility, давайте выберем аналоговый источник входного сигнала. Я использую Devo10, так что я могу просто выбрать AUX5. Если на вашем пульте нет удобного диска или слайдера, смотрите последний раздел про фокусы с кнопками триммеров, чтобы узнать, как превратить триммеры в аналоговый вход.

Итак, вернемся к странице Mixer, а затем в третий микшер канала Stagility. Установите Src в AUX5 или что вы используете для аналогового входа. Установите кривую 1-1, масштаб  50 и смещение -55. Это означает, что когда AUX5 меняется от -100 до 100, результат вычитается из смещения стиков,  и следовательно, такое отклонение требуется, чтобы вызвать экспертный режим - будет идти от 101 до -99. Так что, когда AUX5 в самом низу, у вас обычный промежуточный режим. Когда AUX5 в самом верху на 100, то малейшее движение стиков от центра включает режим маневренности. И, конечно же, вы можете получить все промежуточное поведение. Теперь, когда мы закончили, вот канал Stagility:

  1. [virtchan2]
  2. name=Stagility
  3. template=complex
  4. [mixer]
  5. src=ELE
  6. dest=Virt2
  7. usetrim=0
  8. curvetype=absval
  9. points=0
  10. [mixer]
  11. src=AIL
  12. dest=Virt2
  13. usetrim=0
  14. muxtype=max
  15. curvetype=absval
  16. points=0
  17. [mixer]
  18. src=AUX5
  19. dest=Virt2
  20. scalar=50
  21. offset=-51
  22. usetrim=0
  23. muxtype=add

Разница между этой и ненастраиваемой версией всего лишь третий микшер, который имел фиксированную кривую. Конечно, реальность такова, что вы можете настроить смещение (Offset) здесь, чтобы убедиться, что вы на самом деле получили разрешение на взлет, когда в режиме полета 1  AUX5 выкручен до +100. Калибровка стиков, триммеры, и кто знает, что может быть достаточно, чтобы вызвать включение экспертного режима.
Учитывая то, насколько стал важен AUX5, давайте поставим его на главной странице. К сожалению, вы не можете сделать это прямо - нам нужно, чтобы сделать его доступным в выходном канале. Таким образом, отправляйтесь на страницу Mixer и выберите неиспользуемый виртуальный канал. Назовите его St Dial или что-то похожее на "stagillity dial". Установите тип смешивания простым,  источник AUX5, кривая до 1-1, шкала -50 и Смещение 51. Так мы получим выходное значение от 101% до 1%, когда AUX5 идет от -100% до 100 %. Это как раз то, на сколько должны быть отклонены стики для переключения в режим маневренности. Чтобы отобразить это, перейдите на "Main page config", и найти неиспользуемое поле. Или добавьте, если вам нужно, и расположите его там, где вы хотите. Я положил его под таймерами и над триммер руля направления индикатора на моем Devo 10. Установите вход на St Dial, и готово. Можно добавить канал St Dial здесь, но я не думаю, что это нужно.

Одна последняя вещь, которую вы могли бы сделать, это настроить безопасность для AUX5, просто чтобы напомнить вам установить его в безопасное положение при загрузке этой модели. Я знаю, мне нравится это. Так что подключите передатчик к USB-порту компьютера, удерживая клавишу ENT, и включите его. В диске, что появится на вашем компьютере, нужно изменить файл models/model#.ini, соответствующий номеру модели для вашего дрона. Это можно сделать любым текстовый редактором.

Найдите раздел [safety]. Он должен иметь одну строку в нем, "Auto=min". Ниже этого добавьте строку "AUX5=min". Это заставит deviationTx проверить этот вход, а также дроссельный канал, когда эта модель загружена. Если они не в безопасном положении, пульт напоминает вам, предлагая исправить это.

 

Инициализация полетного контроллера

Хорошо, один последний трюк,  который нельзя сделать с большинством фирменных контроллеров. Прямо сейчас, вы должны сделать "танец стиков", чтобы инициализировать полетный контроллер. Мы собираемся автоматизировать, так чтобы отключение удержания газа инициализировало полетный контроллер.
Во-первых, для начала нам нужно меняющееся значение. Параметр смешивания (MUX) Delay (задержка) дает нам то что нужно. Так что выбирайте виртуальный канал, дать ему имя Delay (задержка), и установите число микшеров 2. Первый микшер должен иметь источник T Hold и кривую Min/Max. Если вы помните, выход T Hold охватывает широкий диапазон. Использование кривой Min/Max заставляет его вернуться к -100 до 100.
Теперь добавьте задержку. Буквально. Установите второму микшеру кривую Fixed и тип смешивания delay. Установите шкалу равной 3 для начала. Хотя вы можете поэкспериментировать с этим. Вот результирующий канал задержки (Delay):

  1. [virtchan4]
  2. name=Delay
  3. template=complex
  4. [mixer]
  5. src=!Virt1
  6. dest=Virt4
  7. usetrim=0
  8. curvetype=min/max
  9. points=0
  10. [mixer]
  11. src=AIL
  12. dest=Virt4
  13. scalar=3
  14. usetrim=0
  15. muxtype=delay
  16. curvetype=fixed
Теперь нам нужно использовать это меняющееся значение, чтобы сделать цикл канала руля направления в соответствии с требованиями 200QX. Так что измените его тип из простого смешивания в сложное. Оставьте первый микшер, как есть, и измените второй, чтобы было вход Delay, смешивание add и кривую из 5 точек. Нажмите на кнопку Curve, после этого вы сможете установить точки на кривой. Точки должны быть 0, 100, 0, -100 и 0 в таком порядке. Мы будем добавлять либо первое, либо последнее значение в канал руля направления все время кроме инициализации, поэтому они должны быть 0.  А еще нужно иметь 100 и -100 в таком порядке. Я поставил дополнительный 0 в середине, потому что я люблю симметрию, но вобщем-то он может быть в любом конце. Теперь у меня есть:
  1. Rudder channel:
  2. [channel4]
  3. template=complex
  4. [mixer]
  5. src=RUD
  6. dest=Ch4
  7. [mixer]
  8. src=Virt4
  9. dest=Ch4
  10. usetrim=0
  11. muxtype=add
  12. curvetype=5point
  13. points=0,100,0,-100,0
Можно поэкспериментировать со значением Scale на канале Delay. Я ставил его значение 2 и все еще работало, но переставало если я ставил его в 1. Я также знаю, что это работает на 5, и, предположительно, 4. Я поставил его на 3, потому что хочу избежать возможных граничных проблем от номер 2.
 
 

Расширенные настройки полетных режимов.

Хотя 200QX это отличный коптер, у него старый полетный контроллер, имеющий только 3 режима, которые очень хорошо работают с 3-позиционными переключателями пультов Devo. Тем не менее, современные контроллеры имеют 5 или более режимов, а также возможность использовать один канал для их установки.
Четыре или пять режимов полета с двумя переключателями делаются одинаково легко, вам просто нужно установить переключатель на три положения для трех режимов полета, а затем добавить смесь, которая коммутируемых на второй переключатель, и выводит либо фиксированное значение, или значение одного из положений переключателя. Вот пятипозиционный переключатель на FMODE и MIX. MIX0 позволяет FMODE управлять выходом, выводя значения 100, 50, 0, а затем MIX1 выводит 50 и MIX2 100.

  1. [channel5]
  2. template=complex
  3. [mixer]
  4. src=AIL
  5. dest=Ch5
  6. scalar=50
  7. usetrim=0
  8. curvetype=fixed
  9. [mixer]
  10. src=FMODE0
  11. dest=Ch5
  12. switch=!FMODE1
  13. scalar=50
  14. offset=50
  15. usetrim=0
  16. curvetype=min/max
  17. points=0
  18. [mixer]
  19. src=MIX1
  20. dest=Ch5
  21. switch=!MIX0
  22. scalar=25
  23. offset=-75
  24. usetrim=0
  25. curvetype=min/max
  26. points=0

Первые два микшера же, как и в предыдущей настройке режима, за исключением того, что шкала и смещение изменились на нужные нам значения. Последний микшер похож на второй: когда MIX0 выключен, микшер отключен, поэтому мы используем значение, выбранное по FMODE. В противном случае, используется значение, выбранное с помощью MIX1 и MIX2, снова шкала и смещение, чтобы получить желаемые значения.

Но это явно не работает, если вам нужно шесть режимов полета. В этом случае переключатель на 2 положение и тип смешивания Mult  могут быть использованы, например, так:

  1. [channel1]
  2. template=complex
  3. [mixer]
  4. src=GEAR1
  5. dest=Ch1
  6. usetrim=0
  7. [mixer]
  8. src=AIL
  9. dest=Ch1
  10. switch=FMODE1
  11. scalar=67
  12. usetrim=0
  13. muxtype=multiply
  14. curvetype=fixed
  15. [mixer]
  16. src=AIL
  17. dest=Ch1
  18. switch=FMODE2
  19. scalar=33
  20. usetrim=0
  21. muxtype=multiply
  22. curvetype=fixed

При этом используется переключатель GEAR для переключения между положительными и отрицательными значениями на основе FMODE. Для GEAR1, FMODE идет от 10o до 67 до 33, и GEAR1 меняет знак этим значениям.

Тип смешивания add  может быть использован, чтобы сделать что-то подобное. Настройте трехпозиционный переключатель для вывода значений 100, 67, 33, а затем добавьте финальный микшер, включаемый с помощью второго переключателя с типом смешивания add  (добавить),  кривой fixed  и шкалой -100.

 

Трюки с кнопками триммеров

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

При использования в качестве обычных кнопок триммеров, эти дополнительные элементы управления могут странно взаимодействовать с выходными каналами. Если вы хотите использовать такой канал в качестве Src в некотором микшере, вы должны убедиться, что у микшера установлен режим "No Trim", в противном случае значение триммера будут добавляться в два раза, в результате чего на выход пойдет от -200 до 200. Это означает, что он должен быть режиме микшеров Complex, так чтобы могли установить  "No Trim".

Если вы хотите использовать выходной канал в качестве выключателя вместо виртуального канала, как описано ниже, то вы должны убедиться, что у вас стоит "No Trim" вместо Trim, в противном случае значение будет добавлено дважды. Конечно, это также означает, что конфигурация микшера имеет значения, поскольку выход всегда 0. Но это использование не документировано, поэтому поведение может измениться в будущем. Я снова рекомендую воздерживаться от виртуальных каналов без необходимости.

В качестве последнего замечания, навигационные кнопки работают только на главной странице. Если вы не на главной странице, они ничего не делают. Для передатчиков с не-сенсорным экраном это означает, что кнопка ENT не может использоваться, потому что вы должны нажать его, чтобы начать конфигурацию! Хотя она отлично работает на передатчиках сенсорным экраном. Кроме того, стоит быть осторожным с кнопками вверх и вниз в качестве моментальных переключателей, так как удержание их нажатыми приведет к переходу на страницу быстрого доступа, что отключит изменения на ней и оставит ее включенной.

 
 

Мгновенная кнопка

Ни один из передатчиков Devo не имеют какой-либо мгновенной кнопки. Не существует действительно хорошего способа имитировать ее с помощью переключателей. Такие кнопки обеспечивают 1, когда кнопка нажата, и 0 в противном случае. Для конфигурации 200QX, вы можете использовать такую для сброса таймера.
Мгновенные кнопки также отлично подходит для управления по фронту сигнала, как камеры WLtoys. Я использую такую кнопку для изменения режимов полета на Blade NanoQX.
Итак, давайте создадим одну. Перейдите на страницу Mixer и выберите неиспользуемый виртуальный канал. Переименуйте  его Reset (Сброс). Установите режим микшеров Complex с 1 микшером. Настройте чтобы микшер иметь вход Reset , кривая 1-1 и шкалу 0. Убедитесь, что "Trim" включен. Ваш канал должен выглядеть так:

  1. [virtchan5]
  2. name=Reset
  3. template=complex
  4. [mixer]
  5. src=Virt5
  6. dest=Virt5
  7. scalar=0
Теперь идите на страницу Trims . Выберите неиспользуемый триммер и установите его вход на Reset, и "Trim Step" в положение  Momentary. Это положение, как и другие настройки переключателя, находится слева от значения 0.1 в селекторе "Trim Step". Наконец, установите поле "Trim +" в положение "Exit". В файле model.ini вы получите:
  1. [trim5]
  2. src=Virt5
  3. pos=Exit
  4. step=193
  5. value=-100,0,0
Теперь у вас есть переключатель, который включен, когда вы держите нажатой кнопку EXT, и выключен в противном случае.
 

Переключающая кнопка - Тумблер 

Если вы используете описанную выше конфигурацию, за исключением установленного "Trim Step" в режим Toggle (переключение), значение канала будет переключаться между -100 и 100 каждый раз при нажатии этой кнопки. Они прекрасно подходят для вещей, эффект от которых на борту дрона можно увидеть, особенно если они носят косметический характер. Включение/выключение огней, например. В 200QX модели вы можете использовать такую в качестве переключателя для последнего смесителя в канале T Hold, но возможность наткнуться  на нее случайно и отключить моторы в воздухе делает меня немного дергаться от этого.

Одно интересное использование из них для отслеживания состояния запускаемых фронтом состояний. Вы можете создать второй виртуальный канал и второй виртуальный коммутатор, который использует ту же самую кнопку  "Trim +", но имеет "Trim step" Toggle вместо Momentary. Если настроить на главную страницу флажок, чтоб использовать этот переключатель, он будет изменить значок при каждом нажатии кнопки. Таким образом, вы можете использовать его в качестве значка режима полета на NanoQX или видеть режим записи видео на камеру, которая использует эту кнопку для запуска и остановки.
Установка канала идентична кнопке мгновенным, за исключением того, вы, вероятно, хотите использовать имя типа Lights (огни). Режим Trim Step , напомню, Toggle. Вот model.ini, показывающий пару триммеров, формирующих мгновенную кнопку и переключатель на кнопке TRIM_L + пульта Devo 10:

  1. [trim5]
  2. src=Virt5
  3. pos=TRIM_L+
  4. step=193
  5. value=-100,0,0
  6. [trim6]
  7. src=Virt6
  8. pos=TRIM_L+
  9. step=192
  10. value=-100,0,0
Обратите внимание на настройку value  (строка 10) в файле model.ini. Это последнее значение этого триммера. Как и любое другое значение триммера, оно сохраняется между сессиями. Стоит следить за этим если вы хотите, чтобы оно было в нужном состоянии при первой загрузке модели.
 

Переключатель

Рассмотренный ранее Тумблер имеет проблему, что нужно знать текущее состояние, чтобы знать в какое состояние переключить при нажатии. Если вместо этого зададите режим триммера(Trim Step) в значение On/Off  , вы получите выключатель, который включается одной кнопкой и выключается другой. Это дает хороший способ создать дополнительный двусторонний переключатель для передатчика, который не имеет достаточно много выключателей. На конфигурации 200QX, можно было бы сделать хороший переключатель "паники", или можно использовать такой переключатель для двойной скоростью.

Конечно, это требует две кнопки, поэтому я рекомендую использовать те, которые уже спарены. Триммеры газа доступны на всех передатчиках, и не используется в большинстве моделей. Некоторые передатчики имеют дополнительные пары кнопок триммеров. И все они имеют пары кнопок влево/вправо и вверх/вниз.
Опять же, конфигурация почти так же, как и раньше, за исключением того, что "Trim Step" теперь "On/Off", и вы должны также настроить кнопку "Trim - ". Итак, вот как model.ini выглядит триммера в режиме переключателя:

  1. [trim5]
  2. src=Virt5
  3. pos=TRIM_L+
  4. neg=TRIM_L-
  5. step=191
  6. value=100,0,0

Добавляем аналоговый вход

Опять же, это не добавляет новые возможности, а просто обеспечивает дополнительный контроль над передатчиком. Для конфигурации 200QX здесь, это можно было бы использовать в качестве крутилки режима Stagility.

Установка канала является такой же, как для вышеуказанных переключателей. Либо виртуальный канал с 1-1 кривой и шкалой 0  и  включенным TRIM, или выходной канал с выходом 0 и "No Trim". Но для них мы будем использовать численное значение шага триммера (Trim Step), а не те что раньше, которые ниже 0.1. Вы получаете 100 шагов в каждом направлении. Так что если вы установите шаг триммера в значение 1, значение дифферента будет идти от -100 до 100. Если вы хотите более короткий диапазон, вы можете установить шаг триммера менее чем 1.

Если вы хотите более длинный диапазон чем от -100 до 100, это немного больше работы. Вы не можете получить его непосредственно, независимо от того, что вы устанавливаете в  качестве "Trim Step". Даже при использовании выходного канала с триммером микшер не будет работать. Вы можете использовать виртуальный канал в качестве источника и оставить в положении  Trim  в настройке микшера. Но в таком случае, вероятно, вместо этого лучше просто установить масштаб.

Это по-прежнему значения триммеров. Таким образом, есть признаки, общие для всех значений триммеров:

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

А вот пример  model.ini с шагом 1.0 с помощью кнопок влево и вправо, и MIX в качестве переключателя:

  1. [trim6]
  2. src=Virt5
  3. pos=Right
  4. neg=Left
  5. step=10
  6. switch=MIX
  7. value=27,0,0
В этом случае значение шага хранится в параметре "step".  Шаг триммера это одна десятая часть этого значения.
 

Трехпозиционный переключатель

Как частный случай предыдущего примера, можно создать трехпозиционный переключатель . К сожалению, он не будет отображаться с тремя позициями во флажках и файле конфигурации. Вы должны будете использовать более двух виртуальных каналов, чтобы получить его. Для 200QX, это могло бы обеспечить переключатель режима полета на передатчик, который не имеет переключатель на три положения.
Начнем с  создания виртуального канала, как обычно. Давайте назовем это FMODE0. В качестве переключателя, он будет включен в положении -100 только. Конфигурация триммера просто аналоговый вход, как описано выше с FMODE0 в качестве входных данных, за исключением установки  шага триммера 100. Теперь перемещается между тремя значениями -100, 0 и 100, как вы используете кнопки вверх и вниз.
Теперь создадим второй виртуальный канал. Это будет FMODE1. Тип будет Complex, с 1 микшером. Этот микшер имеет входом FMODE0, с кривой ABSVAL, шкала -1, и смещение 1. "No Trim", конечно. А теперь третий виртуальный канал,  FMODE2. Тип тоже Complex, с 1 микшером.  Вход снова FMODE0 (убедитесь, что вы используете виртуальный канал, а не переключатель, если у вас уже есть!), кривая 1-1 и масштаб равен -1. И опять же,  "No Trim".

Эти три виртуальные каналы, при использовании в качестве переключателей, будут следовать значению триммера, как и ожидалось. FMODE2 будет включен а другие выключены при значении триммера 100. FMODE1 при значении 0, и FMODE0, когда -100.
Вот то, что вы получаете в model.ini со всеми ними вместе:

  1. [virtchan5]
  2. name=FMODE0
  3. template=complex
  4. [mixer]
  5. src=Virt5
  6. dest=Virt5
  7. scalar=0
  8. [virtchan6]
  9. name=FMODE1
  10. template=complex
  11. [mixer]
  12. src=Virt5
  13. dest=Virt6
  14. scalar=-1
  15. offset=1
  16. usetrim=0
  17. curvetype=absval
  18. points=0
  19. [virtchan7]
  20. name=FMODE2
  21. template=complex
  22. [mixer]
  23. src=Virt5
  24. dest=Virt7
  25. scalar=-1
  26. usetrim=0
  27. [trim6]
  28. src=Virt5
  29. pos=TRIM_L+
  30. neg=TRIM_L-
  31. step=190
  32. value=-100,0,0

NG. Добавлю от себя что отображать это можно стандартным ползунком состояния триммера.

-
Рейтинг@Mail.ru