OSD на ATmega1281

msv

Игорь, режекторный фильтр это еще не решение проблемы (тут практически достаточно одного контура- “пробки”)…
Кстати, не хотелось бы связываться контурами, может есть для этого ПАВы?
Если его ставить на выход осд до сумматора, то как сложить сигналы с камеры и osd что-бы уровень белого osd был на уровне белого видеосигнала при его любом текущем значении (ставить мультиплексор- опять получим “разрывы” в поднесущей), а уровень черного, соответственно, на уровне черного?
Если после сложения, то как добавить поднесущую цвета (в идеале без подкрашивания OSD текущим цветом)?
Конечно все это наверняка решаемо, но надеюсь, что есть простое, оригинальное и красивое решение.
ЗЫ Интересно бы подсмотреть, как сделано у “конкурентов”… 😃

Vlado
msv:

Игорь, режекторный фильтр это еще не решение проблемы (тут практически достаточно одного контура- “пробки”)…
Кстати, не хотелось бы связываться контурами, может есть для этого ПАВы?
Если его ставить на выход осд до сумматора, то как сложить сигналы с камеры и osd что-бы уровень белого osd был на уровне белого видеосигнала при его любом текущем значении (ставить мультиплексор- опять получим “разрывы” в поднесущей), а уровень черного, соответственно, на уровне черного?
Если после сложения, то как добавить поднесущую цвета (в идеале без подкрашивания OSD текущим цветом)?
Конечно все это наверняка решаемо, но надеюсь, что есть простое, оригинальное и красивое решение.
ЗЫ Интересно бы подсмотреть, как сделано у “конкурентов”… 😃

Не ПАВ а керамика, вроде даже есть на 4.43 по типу режекции звуковой поднесущей. Но заламывают цену мама не горюй.

Vlado
avisenja:

Ceramic Trap XT SERIES Frequency range: 3.58MHz, 4.43MHz
Shenzhen, China. 😉

Используют как фильтр и дискриминатор но не режекторный фильтр.

avisenja

Вы ПДФ-ку смотрели или вам менеджер ответил, хотя какой там менеджер, разница во времени 4 часа - они там спят ещё.

Пишите менеджеру и спрашивайте что вам надо, в Шенжене и чёрта можно найти;), сам только две недели как оттуда прилетел.😵

24 days later
msv

Похвастаюсь…
Сделал QRP тест своей LRS. Мощность зажал до ~20мВт ( на приборе первое деление 100мВт, показывал мнооого меньше). Антенны и на приемнике и на передатчике- штыри. На передатчике честный штырь с тремя противовесами под 45 град, пол метра над крышей авто, КСВ чуть больше 1. На расстоянии 2км, высоте 150м уровни -70dbm, ни одного дропа… Причина возврата- выполнил полетное задание.
Вчера облетал свой IMU. Железо: мега8 (вообще первоначально думал сделать на нем только интерфейс для опроса сенсоров и сброса на хост, на котором отладил бы математику, и уж потом… выбрать под потребности необходимый проц…)+сенсоры. Алгоритм - классический DCM (изменения косметические). Пока математика без компаса (че-то не понравилось как у авторов сделано,да и флэша в меге может не хватить), с постоянной заданной линейной скоростью для расчета центробежных ускорений. Работает… ну уж точно не хуже пиросенсоров… Проблемы предсказуемые, основная- после долгих вращений из-за неточной коррекции центробежки не сразу точно встает в 0 по крену. Но для полетов вполне удолетворительно, в режиме стабилизации уронить не просто, авто-режимы отрабатывают нормально. Если нужны исходники адаптированные именно под эти сенсоры, выложу…

Vlado

а как с OSD?

Причина возврата- выполнил полетное задание.

ооо… звучит многообещающе.

На передатчике честный штырь с тремя противовесами под 45 град

буду банален, но при наличии такой крыши… никакой ground-play не нужен.
ИМХО 5/8 то что доктор прописал.

На расстоянии 2км, высоте 150м уровни -70dbm

судя по цифрам запас по расстоянию раз 10 и если еще 5/8 совсем гуд будет.

Петруччо

Сергей, а что вы скажете насчет вот такой www.ebay.com/itm/271031471551 IMU? Заказал себе недавно, жду теперь. Думал сначала взять как у вас, но решил попробовать что всё-таки за зверь этот Digital motion processor.
Я не буду слишком нахальным, спросив нет ли у вас исходников для расчёта DCM?

msv

Ну эти сенсоры уж точно не хуже моих…
Теория DCM легко находится гуглом: “direction cosine matrix imu”.
Исходники по: “ArduIMU_1.9”
Если хотите, могу выложить свой адапт+отладочный софт на BCB6, но там мин. комментариев.
На данный момент понял, что много лучше для расчета центробежки использовать скорость GPS, а не заданную константой. Ведь при полете по ветру и против она может отличаться в разы.
И пока засада… на хосте все нормально, на МК тот же код вызывает при больших скоростях заметную не устраняемую ошибку между ориентацией по акселю и гиры.

Петруччо

спс за наводку, DCM пошукаю по тырьнету.

msv:

заметную не устраняемую ошибку

я так понимаю это в купе ошибка интегрирования + дрейфы сенсоров…именно поэтому я решил взять invensense и покурить их DMP, заодно попробовать пропусть это через калмана, если таки до меня дойдет его логика работы😵 только вот мучать сразу решил кортекс-м4.

msv

Решил, проблему… Мой косячок… На столе работает замечательно…
калман, кортекс… Это все здорово… Но имхо важнее четко понимать физический смысл каждой строки алгоритма и четко представлять все его ограничения… В этом смысле DCM не превзойден своей гениальной простотой и очевидностью. А уж что влез в мегу8, сам не ожидал…
Вообще по плану инерциалку думал слепить только к следующему сезону, долго и нудно отлаживаясь долгими зимними вечерами. На удивление за недельку работы по вечерам склепал платку и адаптировал математику. Неожиданно сложно (целых два дня ушло) оказалась реализовать софтовый интерфейс с OSD (SPI, TWI, UART там уже недоступны).

Vlado:

а как с OSD?

Могу выложить прошивку последней версии с вертикальной парой пиросенсоров (наверное больше не буду ее поддерживать).

Vlado:

буду банален, но при наличии такой крыши… никакой ground-play не нужен.

Ну не play, конечно, а plane… 😃 Первоначально был штырек-четвертушка прямо в разъем. Тоже посчитал, что земли хватит… Но стало интересно померить КСВ. Попробовал коаксиальную слепить, на удивление не смог согласовать… А вот “классика”, сделаная в размер, сразу идеально согласовалась. Более того, по сравнению со штырьком в разъеме (видимо тоже не слишком был согласован…) показала почти +6dbm. Так что пока вполне доволен, только хранить и перевозить эту раскоряку конечно не очень удобно…

Vlado

Могу выложить прошивку последней версии с вертикальной парой пиросенсоров (наверное больше не буду ее поддерживать).

А ну сбросьте на майл. А что значит не поддерживать, те OSD как понимаю (творческая неудача ) и почил?
Антенки: либо блямба магнит либо отверстие в крыше ( я так понимаю не желательно ) предпочтительно 5/8. 1/4 из стальной проволоки в центре крыши с хорошим контактом ( теоретически 36 Ом плюс потерь на 14 Ом ), плюс блямбочка (емкость удлинняющая ) на кончике, тоже должно быть гуд.

ВитГо

делаю генерацию видео на меге32 (в 16ой памяти мало)

сделал текст 40х28 с графическим полем 88х72 которое можно размещать в произвольном месте (командой)

у графического окна есть пока 2 режима
общее разрешение 88х72 может выводиться в разрешении 320х224 (в разрешении текста)

и в разрешении 160х224 (по горизонтали в 2 раза крупнее)

все вертикальные линии получились ровные - уделил этому специальное внимание

ссылки на файлы в большом разрешении
vg.ucoz.ru/_fr/0/0708507.jpg
vg.ucoz.ru/_fr/0/5946348.jpg

может быть использовать как модуль наложения изображения в OSD ?
в качестве контроллера атмега 328
для общения с внешним миром - планирую uart или i2c (spi занят на дисплей)

в графическом окне можно рисовать авиагоризонт, и выводить какую то другую графическую инфу…
а в текстовой выводить все остальное…

в принципе сейчас делаю другие графические режимы (текстовый 20х28 и графический (полностью графика) 160х92 )

8 days later
msv

Молодцы, мужики! Интересные проекты.
Видео- прям OSD с марсохода… 😃
Виталий, как прямо по ходу строки умудряешься успевать сообразить, когда пора графику выводить, а когда опять псевдо?
Возможность полного заполнения экрана по вертикали это здорово, но надо ж ещё когда-то успеть как мин. перерисовать видеобуфер…?

varvar
msv:

но надо ж ещё когда-то успеть как мин. перерисовать видеобуфер…?

Я уже как-то говорил, что с MSP все делается элементарно - например, для того, чтобы получить такую картинку, понадобилось меньше 3К ОЗУ на все-про все - видеобуфера (целых 4 штуки! - по 45 байт каждый 😃 плюс отдельный буферок под горизонт - но не рабочий, а для предварительного формирования линий), переменные, стеки, строки и т.д. и т.п. Причем рисуются и белые, и черные точки:

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

ВитГо
msv:

Виталий, как прямо по ходу строки умудряешься успевать сообразить, когда пора графику выводить, а когда опять псевдо?

у меня генерация видео на асме… полностью…

перед каждой строкой текста (44 байта) идет байт который указывает с какой текстовой позиции выводить графику и байт адреса этой самой графической строки в графическом буфере…
правда все равно поля где то в полтора символа слева и справа есть для графического поля - я адрес вычислял на ходу… буду переписывать сделаю заранее - тогда наверное поля уменьшатся втрое

msv:

Возможность полного заполнения экрана по вертикали это здорово, но надо ж ещё когда-то успеть как мин. перерисовать видеобуфер…?

я даже во время генерации кадровой последовательности успеваю основную программу исполнять…
плюс до и после вывода 224 строк изображения у меня суммарно более 60 строк “ничего не делания” - так что по моим прикидкам на остальные задачи процентов 8-9 процессорного времени остается…

где то был тест со скролингом экрана, так там если задержки убрать вообще мелькание символов снизу вверх… хотя скролл полностью программный

msv
ВитГо:

у меня генерация видео на асме… полностью…

Это само собой разумеется… 😃 Да и действительно стыковать графическое окно с текстом пиксель в пиксель нет смысла… Сколько тактов на пиксель в режиме текста и графики получилось?
Ни и конечно, не подумал…, что для текстового режима нет необходимости отрисовывать в видеобуфере каждый пиксель буковки… Поэтому конечно много быстрее получится экран обновить…

varvar:

Если делать маленькую белую точку, а за ней черную - цветной факел на белом гарантирован

Эх… больная тема… В теории вроде так… Но ведь у rvosd и прочих уважаемых изделиях все чистенько… Подсмотреть бы у них схемку модулятора…

varvar
ВитГо:

у меня генерация видео на асме… полностью…

msv:

Это само собой разумеется…

А меня на С++ … полностью… 😃 само собой разумеется 😃
Ни одной ассемблерной вставки 😃

msv

Но это так увлекательно из слабого на сегодняшний день проца выжимать все на что он способен, и даже чуть больше… 😃 Прямо спортивный азарт… 😃 Вообщем хобби такое…
Ни коем случае не хочу обидеть (безусловно оценил и грамотность выбора проца, и грамотное использование его аппаратных возможностей), но то что вам удается обходиться без асм-а, как бы не совсем ваша заслуга… 😃
Хотя, если у меня дело дойдет до следующего релиза (пока нет в планах), вполне возможно он будет на чем-то типа MSP430 или даже STM32…