OneShot125

Материал из Multicopter Wiki
Перейти к: навигация, поиск

Oneshot - функция полётного контроллера, позволяющая быстрее управлять моторами мультикоптера через контроллеры моторов, чем использование традиционного PWM-сигнала. Другими словами, Oneshot - это более быстрый протокол связи между полётным контроллером и регулятором оборотов мотора. Данный протокол позволяет улучшить отзывчивость коптера на управляющие сигналы пилота и при стабилизации полётным контроллером.

Впервые функция OneShot начала поддерживаться в полётных контроллерах CC3D и Naze32. Наряду с Oneshot применяется также функция активного торможения (Active Braking) или Damping light в прошивке BLHeli.

Для возможности использования функции OneShot необходима её поддержка как полётным контроллером, так и контроллерами моторов.

Содержание

Что поддерживает OneShot

Чтобы использовать Oneshot, этот протокол должен поддерживать регулятор, его прошивка, а также полётный контроллер и его прошивка.

  • Регуляторы
    • Регуляторы KISS поддерживают Oneshot125, для активизации которого нужно лишь запаять перемычку.
    • Для других регуляторов нужно использовать прошивку BLHeli rev13.0, которая тоже поддерживает Oneshot. Протокол будет задействован автоматически, без дополнительных настроек.
  • Полётные контроллеры
    • Naze32 с прошивкой Cleanflight поддерживает Oneshot без проблем.
    • CC3D хорошо работает с PPM-приёмниками, однако PWM-приёмники могут работать неправильно.

Отличие OneShot от PWM

В любом полётном контроллере всегда выполняется главный рабочий цикл, в котором в зависимости от показаний датчиков по определённому алгоритму вычисляется новая величина ШИМ-сигнала для выдачи на регуляторы. Главный цикл выполняется за разное время, иногда больше, иногда меньше, но выходной ШИМ сигнал для регуляторов, отправляется постоянно, вне зависимости от переменной из главного цикла. Если ещё не поступило очередное новое значение, используется старое. В лучшем случае регулятор получит самое свежее значение, которое только что вычислил полётный контроллер. Но в большинстве случаев регулятор получает устаревшее значение переменной. То есть суть проблемы - невозможность вовремя отправить актуальный ШИМ-сигнал на регулятор, пока не закончится главный рабочий цикл полётного контроллера. Это незначительная проблема, когда речь идёт о спокойных полётах (разница составит 0.001 секунды). Но для гоночных FPV-миникоптеров — это имеет значение.

Oneshot-ESC-PWM-explain.jpg

Решение — синхронизировать главный цикл полётного контролера с выходным сигналом на регуляторы. Oneshot125 устанавливает частоту цикла двигателей 8 кГц (выходной сигнал на регуляторы теперь короче, 125..250 мкс), в отличие от 1 кГц в PWM (выходной сигнал 1..2 мс). Таким образом, теперь отправка занимает меньше времени и регулятор может считывать актуальные данные значительно быстрее.

При этом отправляется только одна порция (one shot) сигнала сразу же, как только полётный контроллер вычислил новое значение для регулятора. То есть ВМГ реагирует на внешние условия сразу же, ещё до того, как полётный контроллер начнёт следующий рабочий цикл. Таким образом получается самый быстрый отклик между полётным контроллером и регулятором.

Пилоты, которые уже опробовали Oneshot, говорят что величину P можно увеличить совсем немного (небольшое улучшение для PID), значительно улучшился отклик на изменение газа, моторы быстрее изменяют свою скорость вращения.

Активизация OneShot в CleanFlight

  1. Отключить питание от регулятора.
  2. Перевести регулятор в режим OneShot (например, запаяв перемычку JP1 в случае KISS).
  3. Подключить полётный контроллер к компьютеру через USB-кабель и подключиться через приложение Chrome GUI.
  4. Перейти на вкладку CLI (командная строка), и выполнить команды:
feature ONESHOT125
save

После этого можно снова безопасно подавать питание на регулятор.

Калибровка регулятора в режиме Oneshot

Процесс калибровки регуляторов в режиме Oneshot аналогичен обычному процессу калибровки любого регулятора скорости.

  1. Отключить регуляторы от силового аккумулятора.
  2. Снять пропеллеры.
  3. Подключить полётный контроллер к компьютеру
  4. Зайти в конфигураторе Cleanflight во вкладку теста двигателей.
  5. Нажать "TEST MOTOR" и установить скорость вращения всех двигателей на максимум с помощью слайдера.
  6. Подключить силовой аккумулятор к регуляторам. Они должны запищать, что сигнализирует о переходе в режим калибровки.
  7. Быстро перетащите слайдер вниз (скорость моторов) до нуля. Регуляторы запищат, калибровка прошла успешно.
  8. Отключите и подключите аккумулятор к коптеру.
  9. Проверьте, что при перемещении слайдера моторы нормально и одновременно вращаются.
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты
Группа ВКонтакте