OSD на ATmega1281

msv
Dacor:

Сергей, скажите, а почему сигнал канала руля направления не проходит через автопилот?.. С функцией удержания курса АП справлялся бы еще лучше. Да и стабилизация по курсу не лишняя.

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

Dacor:

И вопрос по размеру цифр текущих координат. … Может есть смысл увеличить шрифт?

Да, согласен. Единственно, что в течении полета эти цифры обычно вообще не нужны и только будут загромождать экран.
Надо только подумать (с вашей помощью) по каким критериям автоматом менять шрифты этих полей. С ходу могу предложить по нулевой скорости GPS в момент остановки полетного таймера. Этого будет достаточно?

Dacor:

Нет ли в планах разделить экран на зоны? Центральная с “радаром”, линией горизонта ну и т.д. Верхняя часть, нижняя часть. Ну и индикацию скорости и высоты раздвинуть в стороны.

К сожалению это очень непросто сделать. Пока генерируется OSD проц ничем другим заниматься не может (всего три такта на пиксель). Но В конце строки ему все равно нужно успеть: выполнять обмен с IMU, читать данные LRS по UART,читать данные с LRS по UART или принимать SUM_PPM. И делать хотя бы минимальную предварительную обработку полученного (хотя бы записать в буфер и сделать инкремент счетчика байт). Если раздвигать телеметрию по горизонтали, можно чего-то не успеть. Примерно тоже самое по вертикали… Обработка всех данных, основные расчеты автопилота и самое машиноемкое - отрисовка видеобуфера делается после последней выведенной строки и надо уложиться до первой. Может и возможно какие-то функции вынести на обработку между некими горизонтальными зонами, но все это потребует долгой кропотливой отладки, и потом будет очень непросто делать какие-то изменения.

JT_UA

Есть вопрос по OSD/АП.
Немогу запустить SUM_PPM.
Приёмник FrSky D8R-II plus перепрошитый на FrSky D8R-ХР(3 и 4 канал замкнул).
Прошивка OSD/АП та что в 712 посту с подержкой IMU.

dollop

Летаю с этим АП и ОСД на таком же приемнике. Если правильно расположить стоковые антены то 3км летаю без бибиков. При разворотах попискивает телеметрия о слабеньком сигнале. До ФС удалением не доводил - только передатчик выключал в полете принудительно - самолет благополучно вернулся на базу. Прошивал по инструкции прошивка по первой ссылке (не от D8R-ХР). Никаких проблем!
Что показывает осцилл на ноге приемника с предполагаемым CPPM? Сколько каналов ППМ вы настроили в ОСД? Должно совпадать то что настроили и то что генерит ваш передатчик. Куда подключаете сигнал CPPM? Формирователь на транзисторе собирали?

JT_UA

CPPM с приёмника уходит.
Формирователь на транзисторе собраный , на входе

На ноге меги

К сожалению осцилографа неимею и делал эти осцилограммы через микрофонный вход зк.
Количество каналов выставил.

JT_UA

Вопрос снят.
Dollop большое спасибо , перешился на простую прошивку и оно заработало.

msv

Хоть все решилось, на всякий случай:
Cистема ожидает пакет PPM с параметрами:

  1. Количество каналов должно соответствовать конфигурации;
  2. Длина синхро-импульса должна быть меньше 17ms и больше 2.5ms;
  3. Длины всех стробов должны быть меньше 0.6ms и больше 0.2ms;
  4. Длины канальных импульсов+ длина строба должны быть меньше 2.2ms и больше 0.8ms.
    После этого должна хотя-бы крутиться палка RC на OSD…
msv

Информация о состоянии IMU была интересна и полезна на период отладки. Теперь хотелось бы сделать что-то попроще, попонятнее… Например уровень вибрации. Но что-то не соображу как это реализовать… Если просто поставить ФВЧ с частотой среза скажем 5Гц на длину вектора акселя, то будут честно измерены вибрации от 5 до 25Гц (частота опроса акселя всего 50Гц). Реальные вибрации от двигателя до ~170Гц. Поднимать частоту опроса акселей до 400Гц только для оценки вибрации не слишком хочется (если вообще пройду по быстродействию). Может есть какие идеи?

varvar

Если хочется странного - то может, полезнее будет фурье? - по нему можно определять частоту раскачки ероплана и пытаться автоматически ПИД настраивать? Частоты пониже - герцы и доли герца, и вроде как полезнее - система теоретически становится самонастраивающейся. А двигатель чтобы не вибрировал - пропеллер надо балансировать 😃

msv
varvar:

Если хочется странного…

Задача скромная - выдать на OSD полезную и наглядную информацию о состоянии IMU. Может из OSD вообще все по IMU выкинуть, только загружает пилота? В принципе о качестве работы IMU можно и просто по линии горизонта судить?

varvar:

…и пытаться автоматически ПИД настраивать?

Если и успею на меге БПФ посчитать, и даже из спектра убрать шумы, то дальше построить ПХ модели имхо непросто… Пытался почитать про самонастраивающиеся регуляторы, там либо трехэтажная математика с потерей для меня всякого физического смысла и предупреждениями о куче ограничений, или общие идеи типа: 1. снять ПХ-объекта, 2. построить регулятор с обратной функцией (напоминает детскую загадку о бегемоте и холодильнике).

varvar:

А двигатель чтобы не вибрировал - пропеллер надо балансировать

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

  • Пробовал разные винты (конечно проверял или делал статическую балансировку). Одна простая зависимость: больше шаг - больше вибрация.
  • Пробовал разные мягкие подвесы ВМГ. Однозначный результат один: сама ВМГ начинает вибрировать гораздо сильнее. Корпус вибрирует немного меньше только в определенном диапазоне оборотов.
  • Пробовал делать отдельную платформу на мягком подвесе ( втулки от CD-ROM) на которую крепил только акк и камеру… Радикально проблему тоже не решило.
    Вообщем пока плюнул на это дело…
ubd

Одна простая зависимость: больше шаг - больше вибрация

Вот от винта она и идёт.
Я читал на форуме где то, что эту проблему решает 3-х лопастный винт.

rw9hk

Заинтересовался тоже этим проектом, здорово получается! Попробую собрать.

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

ubd

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

Сергей этого делать не хочет. Я ему об этом говорил.
Я бы ещё хотел полёт по точкам…

Вообще проект, для самодельщиков. Кто его сделает самостоятельно, то ему не нужны те функции, которые описаны выше.
Делайте, не пожалеете.

msv
rw9hk:

Для контроля вибраций в полетном прямолинейном полете думаю хватит сканирования акселей с частотой среза 10-15Гц (меняя произвольно частоту сканирования). Если будут какие то нелогичные всплески - сигнализировать на экран.

Вы сможете эту идею довести до уровня алгоритма? Мне уже не очень понятно что значит “сканировать с частотой среза”…

varvar
msv:

В принципе о качестве работы IMU можно и просто по линии горизонта судить?

Искусственного горизонта должно быть за глаза

msv:

Если и успею на меге БПФ посчитать, и даже из спектра убрать шумы, то дальше построить ПХ модели имхо непросто…

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

msv
varvar:

Посчитать успеете, если не накапливать информацию, а потом считать, а на лету считать, как точка пришла,

Так работают фильтры БИХ или КИХ. Фильтрами много чего можно придумать кроме бананальных ФНЧ, ФВЧ, ПФ. Например организовать задержку на 90 град (очень полезно, можно мгновенную частоту определить в любой точке) даже ПИД-построить. Но БПФ требует конечное количество выборок, и никак иначе… Или я что-то забыл в ЦОС.
Вообщем тоже предлагаю довести до уровня алгоритма, а то пока все на уровне ощущений идеи…😃

rw9hk
msv:

Вы сможете эту идею довести до уровня алгоритма?

Попробую объяснить на картинке идею, в математике не силен, долго думать придется.

Каждый следующий запрос сдвигаем по фазе со смещением на величину той дискретности которую хотим увидеть. Т.е. примерно отрисовать синусоиду вибраций с частотой 100Гц можно 10 опросами во времени 1000 мс.

Иван

протестил Осд на МЕГЕ2560 - работает, пока что в макете - тоесьт только вывод осд. просто закинул прошиву 2.3, спаял плату с лм1881. буду дальше собирать весь комплект:) !!!
Сергею БОЛЬШОЕ СПАСИБО за разработку!!!

rw9hk

В тему или нет, но думаю интересно посмотреть. Интересный случай синфазности движения камеры и самого вертолета нашел в серии фотоснимков, делала дочь друга, пулеметом строчила просто. Кадры с разницей 2 секунды, но тряска фотоаппарата совпала с изменением положения вертолета в пространстве. Клянусь, ничего не редактировал, только размер уменьшил и в gif сложил 2 кадра.

ftp.hamsk.ru/fpv/2013-04-28/1111.gif

Как бы в тему о сдвиге фаз.

Иван

Сергей, прошу уточнить - на какие лапы меги ОСД цеплять ИМУ ?
плату почти отрисовал под 2560 мегу

JT_UA

Прошу помощи.
Собранный GPS модуль на ев500 надо отконфигурировать.
$PMTK314,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0* подскажите как посчитать контрольную сумму этой команды.
Иван подключаеться на 55 56 ноги меги 1281 без конденсаторов.

ubd

В место пиродатчиков XY. Там на плате разве не написано?