Обновления MPX STM32 (многабукав безкартинок) ч.1

[самые свежие добавляются вниз]

==================

апдейт 2.0.1257 (+ наземка)

Впихнуто распознавание дефектов шины I2C: коротыш, пересечение, дохлые датчики. При запуске все отказы перечисляются на ОСД под надписью sensors failure. До устранения дальше не пустит.
Прим. перев.: барометр временно отключен совсем, поэтому baro alt=0 и температура тоже. Не до него щас.
В полете работа датчиков также постоянно мониторится, но на экран не выводится (только звуком)

Включено измерение напряжения ходовой батареи до 50В на входе AIN4 (через делитель 30к:2к2). В наземке в панели настроек выведена подстройка показаний напряжометра.

====================
апдейт 2.0.1363 + наземка

  • LED секвенсор на 4 канала и 4 программы с настраиваемым каналом управления. Число шагов - суммарно 120 (если в 1й программе 100, то остальным достанется 20)
    Используемые порты: PD0…PD3. Напрямую светики включать не советую, юзайте драйвер.

Настраивается из наземки, есть возможность согранять и грузить программы в файл *.led
На ОСД отображается (кгда включен) L2 0 0 _ _ = 2 программа, горят 1 и 2 каналы
Включается отдельным каналом на пульте. Или можно выбрать “постоянно ВКЛ” и “выкл”. В этом случае будет задействована только 1 программа.
Программы переключаются быстрым выкл-вкл канала. При ФС включается автоматически на последней выбранной программе.

  • Переработан ФС.
    Для приемников, не отключающих ФС (RMILEC, FrSky) добавлена новая позиция полетного переключателя: FailSafe. Если настроить переключатель в ФС на этот режим, функцию ФС отрабатывает уже сам автопилот и возможности расширяются: можно летать миссии за пределами управления, или включать возврат при севшей батарейке.

  • добавлено звуковое оповещение разряда батарейки. Если напряжение меньше 3.7В на банку (это примерно 1/4 заряда), раз в 10 секунд выдает Battery Low, если меньше 3.5В - Battery Critical

  • изменена настройка GPS. МТКшные модули теперь автоматом конфигуряются на 38400 и 10Гц, если были настроены на 9600.

Также автоматом определяется кол-во банок ли-по. Позже, по мере разряда батареи до низкого (по моему разумению) уровня, индикатор напруги меняет внешний вид и начинает мозолить глаза

На 90% сделана телеметрия в видеосигнале. Думал, придется ужиматься, а туда влез вообще весь протокол наземки, еще и место осталось. Идея такая: на какой-нибудь андурино и (опять) е-осд в кач-ве синхры делается “наземка”, которая из видеосигнала выковыривает всю телеметрию, свою часть (команды трекера) передает на сервы, остальное спихивает в ком-порт на mpx_gcs.
Проблема с первоначальным реквестом решена периодическим обновлением параметров, т.е. полностью односторонний режим возможен.
Помехи и замирания побоку, т.к. каждый из 5 субканалов повторяется 10 раз в секунду и каждый пакет закрыт CRC. Пока виден хоть полукадр со снегом, ТМ будет идти.

=================
апдейт 2.0.1384 + наземка

Поскольку кое-у-кого возникли проблемы с ЭМС и горизонт при включении двигателя уходит вообще в е*еня (не у меня), добавлена замена MARG на ARG+TCC - tilt compensated compass.
Включением ТСС устраняется влияние магнетометра на крен и тангаж. Внешняя проблема, мешающая компасу работать, не устраняется, но, по крайней мере, это не перевернет самолет.
За включение ТСС отвечает та самая “галочка” на надписи MAG, о которой столь часто спрашивает вдумчивый четатель (гыгы)
При изменении нажать write

===================

апдейт 2.0.1524

  • Замена алгоритма ориентации с MARG на EKF. Алгоритм устойчив, сингулярности устранены, на движение с ускорением (по полу катал) почти не реагирует. Остается облетать. Прогноз положительный.
  • устранены вопросы по высоте таргетов
  • галка TCC больше смысла не несет в связи с устранением самого алгоритма

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

==============
апдейт 2.0.1591

Получил наземку-следилку от Дундела. Зашил-запустил. Работает.
Теперь и модем не нужен: вся телеметрия, каналы, горизонт, нафигация, даже настройки - все валит на скорости 50pps через видеотракт.

==============
обновление 2.0.1606 + наземка

Добивание трекера:
Изменено окошко настроек автопилота: добавлена настройка КСТ, т.е. контроллера слежения и телеметрии, проще говоря, трекалки
Есть регулировка скорости отработки, эндпоинты, калибровка угла, реверсы серв.
Главу в мануал еще предстоит дописать.

==============
апдейт 2.0.1851 + наземка
В основном посвящен оттачиванию квадриков.

-Доведен до ума акро-режим, поправлен фильтр гиры. До этого летало вообще отвратно, а тут вот тебе (см. видео). В стабмоде как летало хорошо, так и летает.
-Введена поддержка триммирования: для самолей - в ручном, для квадриков - в акро триммерами передатчика добиться устойчивого полета и нажать Neutral в настройках автопилота. В стаб. режиме растриммированный самоль/квад это пофигу, вынесет, но упаси б…г случайно переключиться в ручной, как я ночью…
-Главное окно наземки уменьшено до 600 пикселей по высоте и перенесены кнопки, чтобы можно было запустить на нетбуках.
-ConstantPWM сменен на мой любимый InstantPWM Как было 390Гц на квадриках, так и осталось, зато пропали лаги.
-Для конфигурации “летающее крыло” выведены два канала второго элевона: М2 для “одинаковых” сервомашинок, М5 - для установленных “зеркально”.

===============
апдейт 2.0.1933

GY-81-180 автодетектится.

===============
апдейт 2.0.1975 + наземка

  • Добавлена прозрачная “крышка” поверх органов управления наземки. Грубо говоря, пока движки включены, невозможно что-либо случайно поменять запоганить в полете, кроме скорости обновления. Также работают кнопки миссий и БАНО.
  • Теперь можно “удаленно” армить движки прямо с наземки: нажать любой кнопкой мыши на надпись ARMED/DISRM и выбрать из контекстного меню соотв. действие.

Поводом для изменений послужил случай товарища с РЦгрупс, который уронил квадрик из-за того, что в полете случайно ткнул Joystick enable

===============
апдейт 2.0.1991

Более-менее доведенная до ума версия ЕКФ с быстрой начальной установкой. Есть возможность переключать “на лету” - в дизарме,ессно, а не в полете - между старым добрым МАРГ и ЕКФ.
В наземке установка “галочки” на кнопке MAG включает использование фильтра Калмана. Снятие - включает МАРГ.

===============
2.0.1994 Сделал, чтобы в наземке вылетало окно с сообщениями о сбоях датчиков на старте. ОСД для этого теперь не нужен.

===============
2.0.2003 + наземка

  • автодетект барометра 085 (если есть - то подхватится). В поле Baro ALT абсолютная высота в сантиметрах, температуру тоже показывает…
  • наличие/отсутствие ЖПС вообще показывается в наземке в поле GPS fix

===============
2.0.2119
085й барометр доведен практически до идеала. Готов к реализации alt hold на квадриках и звукового вариометра на самолях.

===============

2.0.2146 + наземка

Полностью изменено представление авиамоделей. Фиксированный набор моделек теперь отсутствует. Вместо него, как в RC-передатчиках, есть 6 слотов для моделей.
ЛЮБЫХ долбанных моделей. От планера со всеми раздельными поверхностями до пентакоптера на реактивной тяге или VTOL с ходовым пропом.
Теперь, если вы не можете “запитать” свой пепелац мегапиратом, значит, вы не сможете запитать его НИЧЕМ 8-канальным.

Вместо привычного выбора “самолет, крыло, квадрик” теперь выбирается номер модели, а выше отображается ее символьное имя, задаваемое пользователем.

Теперь самое интересное. Чтобы полететь, нужно выбрать модель и сохранить ее в памяти СУ. Для этого сперва выбираем слот модели (Model #1, к примеру) и жмем write.
Теперь идем в Autopilot config и выбираем вкладку Custom Airframe.
Ага, глаза разбежались? Все проще. Выбираем в поле Pick airframe preset любой из готовых наборов - их там 17 - и жмем load. Задаем имя (по умолчанию совпадает с типом модели) и жмем Write. Аналогично заполняются по желанию все оставшиеся 5 слотов моделей.
Для редактирования текущей модели нужно жать Read каждый раз при открытии окна, чтобы заполнить все поля.
Каждое поле ввода и кнопка снабжены всплывающими подсказками, что и для чего нужно.

Параметры из главного окна (рейты и D) остаются общими для всех моделей. Custom Airframe - это отдельный миксер.

ВАЖНО в передатчике должны быть отключены все миксы между креном, тангажом, курсом и газом.
В миксере есть возможность прямого проброса входов 5…8 на выходы - см. альтернативные функции входов в окошке.
Также есть независимые триммеры ±15% для каждого выхода.

==============
Апдейт 2.0.2236 + наземка
===

  • добавлен вариометр со звуком и индикацией на ИЛС. Настраивается в новой вкладке OSD&Vario окна Autopilot Config. Звук, как у реального варио планеристов. При ненулевом газе звук отключается.

  • Настройка ИЛС добавлена в ту же закладку. Теперь ИЛС можно включать/выключать полностью с произвольного канала пульта прямо в полете. Также можно отключить по отдельности ненужные элементы ИЛС.
    При отключенном ИЛС телеметрия по видео все равно валит.

  • добавлена регулировка громкости, отдельная для голоса и варио. После применения настройки плата выдает одно из голосовых сообщений для оценки громкости. Громкость вариометра можно проверить, дунув на бародатчик. (ох, и надулся я сегодня )

  • отлажена индикация вектора движения на ИЛС. Он вычисляет пропорцию между вертикальной и горизонтальной составляющими движения и отображает точку, куда реально несет самолет, с учетом его ориентации. Выглядит, как маленький кружок. В статике чуть плавает вверх-вниз вокруг горизонта.

  • объединены баровысота и ЖПС. Фильтруют друг друга, при этом обеспечивая плавное изменение высоты без рывков. Здесь был задействован калман. При отсутствии одного из датчиков работает второй. Если нет ни баро, ни ЖПС, высота будет всегда 0, что очевидно.

==================
Апдейт 2.0.2300 + наземка

  • добавлена обработка датчика тока: амперы и мАч.
  • в окошке Autopilot Config активны кнопки датчика тока. Можно выбрать один из 3 диапазонов датчика ACS7xx : ±50,±100,±200А (брать обязательно биполярные!), а также изменить полярность и, естественно, выставить ноль. Также есть ручная подстройка отображаемого значения тока кнопками ±.
    Менять диапазон датчика тока нужно только один раз. При повторной смене сбросится ручная подстройка. На ноль и полярность не влияет.
    Все кнопки в группе Voltage & Current - немедленного действия. Диапазон датчика тока из платы не читается, работает только на запись при изменении “вслепую”.

Теперь о подключении датчика тока.
Запитывать его нужно от 3.3 вольт! На плате Дундела их можно добыть со второго с края платы штыря разъема I2C. Также на указанной плате нужно удалить резистор с маркировкой 222, находящийся прямо над буквой r надписи Curr. Афтору платы на заметку на будущее!
На плате Дискавери выход датчика подключать напрямую в порт РС2.
На плате CSG подключать к AIN3.

=============
Апдейт 2.0.2321 + наземка

  • отображение тока и мАч можно теперь отключить, если датчик тока отсутствует

  • измеряется 2-ое напряжение. Отображается с префиксом U2 справа вверху. Диапазон 0-42В. На плате Дундела вход VBat2, на Дискавери и CSG это входы РС0/AIN1 соответственно. В двух последних случаях нужен внешний делитель “вход-33к-РС0-2к2-земля”.
    Если входное напряжение U2 меньше 1В, его отображение пропадает. Также есть ручная подстройка показаний.

  • нарисована своеобразная “стрелка домой”. Если “Н” вверху, а “О” внизу - мы летим прямо на базу.

===============
апдейт 2.0.2356 + наземка

  • добавлена поддержка барометра MS5611-01BA. Выбор между BMP085 и MS производится в настройках вариометра.
    Важно: оба этих девайса имеют одинаковый адрес по I2C, так что автодетект невозможен. Поэтому, подключать можно только одно устройство одновременно и обязательно выбирать тип.

===============
===
апдейт 2.0.2394

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

Заметки: Есть ограничение по скорости спуска и подъема 2 и 5 м/с соответственно, основанное на вариометре.
В этом режиме планка мин.газа поднята, чтобы гарантированно не погасить движки. Для выбора режима на тумблере выбрать “—” между Stable и Loiter.

==============
2.0.2412 - serial PPM перетащен на RC8, чтобы на плате Дундела соединяться с приемником одним кабелем.

==============
2.0.2478 + наземка

===

  • проверка ключа сделана однократной при запуске платы
  • блокировка перезаписи ключа, если он правильный
  • включен супервизор питания 2.7-3.3В
  • полоски высоты и скорости, стрелка домой, курс, высота по ЖПС и координаты теперь отображаются и в деморежиме
  • разделены высота баро и ЖПС. Высота по ЖПС отображается в строке с координатами, баро - индикатор справа. При отсутствии барометра на индикаторе дублируется ЖПС-высота. Вариометр работает в обоих случаях.
  • увеличена скорость перемещения индикатора высоты. Одно деление - 1 метр.
  • изменен алгоритм разрешения аварийного возврата на базу. Теперь достаточно однократно после арминга отойти от базы на 20 и более метров, чтобы разрешить его включение даже над головой.
  • багофиксы по мелочи

Важно: введена настройка масштабирования авиагоризонта в зависимости от угла обзора камеры - так называемый FOV.
По умолчанию выставлен узкий обзор.
В закладке OSD есть кнопки настройки FOV. Настраивается следующим образом:
Закрепить плату и камеру на модели. Расположить модель так, чтобы реальный горизонт и нулевая линия совпадали с перекрестием. Наклонить модель вперед или назад на 10-15 градусов, ориентируясь по делениям авиагоризонта. Кнопками Wide-Narrow добиться совпадения нулевой линии авиагоризонта с реальным горизонтом. Настройка завершена.

================
2.0.2489

  • добавлена тень на ОСД, справа-снизу 1 пиксел.

================
2.0.2495
Доработан алгоритм синхронизации ОСД.

================
2.0.2498 + наземка

  • пофиксено постоянное включение ФС на сериал РРМ при выборе галки jittery RC (знак попутал)

  • тень на ОСД можно отключить во вкладке OSD&Sound, галка Shadow и нажать write.

  • сделан вывод необработанных данных гиры, акселя и компаса, так называемое “сырье”. Для включения зайти в настройки автопилота - general и нажать Raw display. Выскочит окошко с соответствующими данными. Окно настроек после этого можно закрыть.
    Отключение потока “сырья” происходит по нажатию кнопки Stop and Close в окне, или автоматом при арминге двигателя. А также через выключение питания платы.
    Однако, при разблокированных движках можно включить “сырье” повторно - для балансировки пропеллера по шуму гироскопа, например.
    Если наземку подключить к автопилоту, и при этом валит “сырье”, окошко с его отображением выскочит автоматом и будет вылазить (можно сдвинуть, чтоб не мешало), пока не нажмешь Stop and Close, так что всегда можно знать, идут данные или нет.

Dx Dy Dz сейчас пустые. Далее будет вычисляться т.н. дисперсия, простыми словами, шум на каждой оси каждого датчика.

==============
2.0.2514 + наземка

  • важно: изменена процедура калибровки компаса! это устраняет проблему с “ненулевым” креном-тангажом после калибровки компаса “на столе”, упомянутую ssh1 и Дунделом. Убрана подстройка гейнов каждый запуск, что сбивает настройку компаса.
    После обновления компас обязательно перекалибровать заново! Обновление наземки обязательно!
  • багофикс, устраняющий “нокауты” фильтра AHRS при кратковременных сбоях датчиков
  • багофикс по выводу тени на осд - предотвращает “переползание” тени через экран на след. строку, ведущий к срыву синхронизации.
  • очередная итерация устранения “окошек” в наземке.

=============
2.0.2623

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

================
2.0.2625

  • добавлена поддержка GPS-модулей на чипе SIRF.
    Для того, чтобы модуль “подхватился”, нужно сначала выставить ему с помощью программы Sirfdemo режим NMEA и скорость 9600, как написано тут.
    На скорости обновления датаграмм не смотрите, пират сам выставит, что нужно, на 5Гц

================
2.0.2757 + наземка

  • введен датчик удара, который будет дизармить мотор(ы) и переключаться в стаб при срабатывании.
    Чувствительность настраивается в закладке General - impact sensor. Можно отключить вообще. На маневрах с перегрузками не срабатывает, только на резкий удар.

  • введена настройка мин. и макс. уровней газа. В той же вкладке. Выставить мин. газ, нажать min, выставить макс, нажать max. Теперь на выходе мин. уровень газа на выходе всегда 900 мкс, но подстраивается триммером модели. Макс. уровень - пропорционально разнице уровней мин. и макс. газа с пульта. Т.е. диапазон остается тем же, но смещается в нужное место.
    Если нужно закалибровать регуль - калибруется выходом платы СУ, а не с пульта, как обычно. Если нужно калибровать, к примеру, квад, создаем в свободном слоте “пустую” модель, у которой столбец THR все по 100%, остальная матрица пустая - и калибруем все регули одновременно, запитав СУ отдельно.
    ВАЖНО! устанавливать пределы газа в первый раз нужно обязательно до арма!

  • по пожеланиям трудящихся введен “режим - хорошо лежим” : если включен авто или возврат, наземная скорость <10 кмч, высота <20 метров и аппарат является самолетом - все это в течение 5 секунд, включается дизарм и снимается авторежим.

  • введена подстройка “угла атаки крыла” в той же закладке. Можно выбрать в диапазоне -5…+5 градусов с шагом 0.1. Если плата лежит в горизонте, тангаж станет положительным на эту величину. Для применения надо нажимать Write.
    Разъяснение: цифра смещения означает “виртуальный” наклон платы. Если плата размещена по “строительной линии”, и самолет в стабе идет вниз, цифры нужно изменять в отрицательную сторону.

  • введена подстройка авиагоризонта и всех остальных движущихся причиндалов под “камеру, смотрящую вниз”. Во вкладке OSD есть кнопки AHI shift, нажатием на которые сдвигается вверх весь авиагоризонт целиком, вместе с целеуказателями и центром-прицелом.

  • кнопка калибровки акселя требует подтверждения во избежание случайного нажатия.

  • сдвинуты напряжение1 и ток на осд, чтобы не перекрывались символом батарейки на гопро.

  • теперь можно переключать режимы полета прямо из наземки (кнопка flight mode в панели navigation). Очередное переключение режима с пульта перепишет режим наземки.

  • теперь баровысота в наземке показывается с шагом 0.1м.

===============================

продолжение тут

  • 2170