OSD на ATmega1281

Dacor

И еще один вопрос, только не пинайте сильно.

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

Спасибо.

ubd

Ты радуйся что тебе бесплатно дали прошивки и схему, и платы. Довольствуйся тем что есть! То что есть вполне, больше и не нужно.
Остальное это хотелки, нужные только Вам.

Dacor

Меня вполне все устраивает. Мало того, меня всегда поражали люди, способные сотворить ТАКОЕ практически в одиночку от начала и до конца.
Дело в том, что автор темы говорил, что готов выслушивать предложения.

Никого не хотел обидеть.

P.S. Вы уж меня извените, но я обращался к разработчику.

ubd

P.S. Я обращался к разработчику.

Я его зам.
Мы сегодня летали.
Он сейчас отдыхает, после полётов.

А я не летал, я крылья забыл от Ская… Вот так…

Dacor
ubd:

я крылья забыл от Ская… Вот так…

Бывает.

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

ubd

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

Не даст разрешение пиксельного экрана. Виртуально экран, на котором можно выводить графику, меньше полного размера экрана. Шкалы высоты и скорости, как раз на границах этого экрана. Что бы сделать разрешение больше, нужно много чего переделать. Фактически это новая разработка.

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:

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

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