OSD на ATmega1281

Syberian
abalex:

DEC R16 ; Уменьшаем счетчик оставшихся символов
OUT VIDPORT,R18 ; 7
BRNE _out_ch

Вот оно че! (с)
А я голову ломаю, как они в 3 такта влезли без искажений…
Утащили дек в предыдущий такт вместо нопа!
У меня макрос был dec + brne , а это уже 4 веселых такта в конце байта

msv
RW9UAO:

я предлагал завести данные вниз через аудио канал передатчика.

Нее… Аудиоканал хочется оставить для его прямого назначения. Иной раз забуду перед взлетом включить в микшере микрофонный вход, так через некоторое время, когда уже самолет вне зоны прямой видимости, начинаю испытывать дискомфорт от полной тишины и лихорадочно включаю звук. А ведь там у меня кроме рыкы двигателей еще алармы пикают, что тоже весьма удобно.
ЗЫ Про звук вспомнилась история… 😃 Практически каждый раз на поле выходил с новой прошивкой, и все обходилось. И в АП настолько уже поверил, что не особо контролировал его после влючения. В один (не самый счастливый) день еще в июне отлетел метров на 500 что-то проверяя, потом включил АП. Через некоторое время понял, что что-то не то творится… Оказалось из-за ошибки в проге самолет вместо возвращения стал удалятся переменными галсами. Пока понял, что надо брать контроль в свои руки, успел только выключить двиги, и самолет влетает в крону дерева… Сидим, смотрим на экран бука… Отличная картинка, красивый вид, птички поют (это к звуку!.. 😃) и какие-то большие летают туда-сюда (рядом гнездо оказалось). Вижу, расстояние до базы 800м… Недалеко относительно, осталось сообразить только на какой опушке это дерево… Метнулся к ближайшей, а она на земле оказалась гораздо больше, чем казалась с воздуха… Ну в общем все закончилось хорошо, успокоились, внимательно отсмотрели записанное видео и пеленгом видео нашли и опушку и дерево и самолет на самой макушке метров на 20. Сбросить тоже удалось почти без потерь (ну как сбрасывали, это отдельная история…)…

msv

Кому совсем скучно, посмотрите кусочек видео крайнего полета (правда уже давненько это было, больше не позволяло отсутствие свободного времени или погода). Датчик тока отвалился, заметил уже после старта, решил продолжать полет… Ветерок можно оценить по скоростям “туда” и “обратно”. В нашей котловине он если есть - всегда порывистый. Практически весь полет в режимах стабилизации курса/высоты (LockCourse) и автовозвращения (Autopilot). Треугольнички/стрелочки на горизонтальной шкале компаса и вертикальной шкале высоты показывают целевые значения. Для режима LockCourse этими стрелочками можно управлять с пульта.

9 days later
a_freeman

// - у меня сегодня экзамен, поругайте меня. 😃
// - да такое х_йло хоть с самого утра! 😈
// ©

Круто, блин! То, что все открыто - вдвойне вкусней 😃
Алгоритмы работы автопилота расширять не собираетесь?
Тот-же полет по маршруту - ИМХО самая интересная и самая недостающая часть

Dikoy

Я 3 дня назад кандидатку защитил, пока я ничего вообще не собираюсь делать 😃)))
Потом посмотрим. Тут с профильными журналами проблема ИМХО. Радио, он немного не тот… И круг читателей у него не тот. А чисто на сайт выкладывать не очень хочется - расползётся по комерческим шарагам, а нахаляву всё равно останется шиш. Да и авторство какое-никакое хочется закрепить.

a_freeman

Кандидатскую именно по этой разработке?
Вообще конечно верно, выкладывать серьезные вещи жалко 😃

Dikoy

Да не в жалости дело. Выхлоп сомнителен. Народ у нас ленивый, сам апгрейдить не будет. Начнёт меня дёргать, в итоге я буду только на это и работать 😃 Но это ладно, хуже когда видишь свою поделку, продающуюся под чужим именем и за деньги. Такое у меня уже было… Вот и думай теперь, что делать - чахнуть над ней как кощей, или выпустить на вольное плаванье…

msv

Без OSD, чес. говоря, не слишком впечатляет. Совершенно невозможно оценить качество стабилизации.
Почему в матрице поворота у Вас sin45 и cos45 равен 0.5? (У меня, правда, то же… 😃 ) Надо бы было мат. обоснование сделать, а то народ не поймет…

Dikoy:

Вот и думай теперь, что делать - чахнуть над ней как кощей, или выпустить на вольное плаванье

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

Dikoy:

хуже когда видишь свою поделку, продающуюся под чужим именем и за деньги

Бродя по офисам подключая инет ( увы… такой фигней приходится комиться), частенько вижу свои проги, часто официально купленные и не у меня… 😃 Но обижаться не на кого. Сам в свое время либо продал с авторскими правами или выставлял в открытых источниках…

Syberian
msv:

Почему в матрице поворота у Вас sin45 и cos45 равен 0.5?

В военное время синус 90 градусов может достигать четырех! ©

Dikoy
msv:

Без OSD, чес. говоря, не слишком впечатляет. Совершенно невозможно оценить качество стабилизации.

Ну так в чём дело? 😃 Интерфейс стандартизован, пусть кто хочет делает ОСД. Это и есть принцип открытого проекта.

msv:

Почему в матрице поворота у Вас sin45 и cos45 равен 0.5? (У меня, правда, то же… ) Надо бы было мат. обоснование сделать, а то народ не поймет…

Это где так?.. Значение синуса там фиолетово, ибо оно всё равно сокращается при делении. Ну, то есть важно лишь равенство синуса и косинуса, а число не важно.

msv:

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

Не, в этой области я зарабатывать не вижу смысла. Для нужд хобби - с китайцами спорить бесполезно, они уже FMA склонировали. Для нужд БПЛА - все производители валят из РФ к чертям. Чистяков продал Грант украине, текнол ушёл в азию. Только Зала ещё что-то пытается с нефтянниками…

msv:

Но обижаться не на кого. Сам в свое время либо продал с авторскими правами или выставлял в открытых источниках…

Обидно, когда бесплатное впаривают за деньги. То есть людей обманывают. А если он переделал, улучшил и продаёт - пускай.

Кстати о качестве стабилизации. Запись крена/тангажа в ветер 6,5 м/с.

msv
Dikoy:

Это где так?.

Ой… и вправду… виноват… невнимательный… Решил, что 90град в пропорции это 180*0.5, а у Вас калибровочная дельта соответствует 90град… У меня решение более прямолинейное. Сначала считаю углы по трем точкам (для 90, 0 и -90град) в осях пирометров, потом поворачиваю на угол, заданный в конфигурации. При этом для 45град должно бы получаться:
R=0.7*S1+0.7*S2; P=0.7*S1-0.7*S2;
где R-roll, P-pitch, S1,S2- углы в осях сенсоров.
Но такой расчет завышает значения (вероятно из-за широкого угла чувствительности сенсоров) и более точно получается R=0.5(S1+S2); P=0.5(S1-S2);
Еще вопрос, для стабилизации Вы используете ПИД- регулятор? Какие постоянные времени используете для И и Д -ветви? Расчитваете ли это аналитически или подбираете оптимизируя переходную характеристику?
Я пока для своей поделки могу ориентироваться только по картинке и не могу строить графики. Но проект Graund Station продвигается, есть шанс, что на следующий сезон тоже смогу графики на ПК строить…

Dikoy
msv:

потом поворачиваю на угол, заданный в конфигурации.

Каждый раз?.. Это же дооолго…

msv:

Еще вопрос, для стабилизации Вы используете ПИД- регулятор?

Да, по углу и угл. скорости.

msv:

Какие постоянные времени используете для И и Д -ветви? Расчитваете ли это аналитически или подбираете оптимизируя переходную характеристику?

Есть метод с продувкой 3D модели, он громоздкий (а расчёт для одного самолёта уходит 2 месяца), но даёт результат сразу. Он больше “для науки”. Проще тупо полетать пару раз и подобрать. Обычно по углу получается 2, по скорости 0,5 для верхнепланов.
Стукнитесь в мыло, скину свою диссертацию под честное слово не распространять в инете. Просто пока её не утвердит ВАК, она ещё не защищена и её можно использовать в нехороших целях… Как утвердит, материалы опубликую.

msv:

есть шанс, что на следующий сезон тоже смогу графики на ПК строить…

Я их строил с “бортового самописца” 😃

msv:

Но такой расчет завышает значения (вероятно из-за широкого угла чувствительности сенсоров)

Нет. Из-за негармоничности их рабочей характеристики. Она отличается от синуса/косинуса в зависимости от конструкции датчика. Поэтому все методы - пропорциональный и тригонометрический - дают погрешности. Но с этим можно бороться 😃

9 days later
Soldir

А скока будет стоит и как приобрести данное творение (хотябы в виде мастер-кита. с электроникой дружу.) В ФПВ новичек, удовлетворило бы даже в виде Easy OSD.

msv
Dikoy:

Да, по углу и угл. скорости.

В каком смысле по скорости? Д-ветвь пид-регулятора и есть скорость… Или скорость измеряется отдельными акселерометроми, а Д-ветвь от пиромеров не используется?
А я, играя настройками целый сезон, в итоге пришел практически к тем с которых начинал… 😃 И для крена и для тангажа постоянная времени И-ветви 1-2сек, ограничение 20%, Д-ветви 0.1-0.2сек.

Soldir:

А скока будет стоит и как приобрести данное творение (хотябы в виде мастер-кита.

Да уж какой кит, даже печатки нормальной не разведено… Последний вариант схемы могу выложить (надо только себя заставить нарисовать…), hex-ом последней версии поделюсь безвозмездно, те. даром… От спонсорской помощи тоже не откажусь… 😃
За длинные выходные, в перерывах между “отмечаниями” великого празника, осилил передачу телетексто-подобных тестовых строк с OSD на свою GrounStation. Передаю в двух строках по 24-байта. 1,5 байта теряется на синхронизацию+0.5байта номер фрейма+2байта на CRC итого в остатке 40 байт чистых данных на полукадр. Более чем достаточно выдать практически все что можно с самолета, по сути в реальном времени…
А OSD гораздо симпатичнее в итоге можно сделать через DirectShow уже на ноуте… 😃 Ну это так… Когда совсем уж нечего делать будет…

Soldir

Больше беспокоит где рассыпуху в розницу прикупить(ЖПС, синхр. селектор),вот и подумываю может EASY OSD пока а потом, модернизировать ее. Платку могу в ПКаде развести и по фототехнологии травить. А на счет ОСД через ноут это клас, можно виртуальную панель с авионикой изобразить, наглядность.

msv

Да… покупка комплектухи, это задачка не хилая… Как вспомню, сколько искал пирометры… Казалось- вот оно!.. кажись нашел!.. Всего-то меньше бака… Начинаешь разбирать… это оказывается для партии от 10…0шт… В розницу или фиг, или под 20 за шт… Но если отнестись к этому, как к творческой задаче (“уламывание” менеджера по продажам- это почти разработка протокола… 😃 ), то даже прикольно… ну или типа, как к азартной игре…
Поэтому если торопитесь, конечно надо искать что-то законченное, готовое, в комплекте… А вот если интересен сам процесс…
Вот какую тучу параметров уже передаю на GS (точнее с GS на хост):

Осталось разобраться, что с этим счастьем делать… Виртуальная приборная панель-красиво… но банально… И по сравнению с OSD имхо это шаг назад, менее удобно и наглядно… Стоить тренды… конечно… Но в реальном времени смысла от них не много… Это уж после полете по логам разбирать переходные процессы итп… Получается в реал-тайм лучше просто тихо писать в лог…

UserM
msv:

Передаю в двух строках по 24-байта. 1,5 байта теряется на синхронизацию+0.5байта номер фрейма+2байта на CRC итого в остатке 40 байт чистых данных на полукадр

А, эта можно посмотреть кусок исходника для ПК который это реализует? Собствено меня интересует пример приёма данных из ком порта и реализация протокола. Ну например приняли несколько байт данных и CRC, проверили CRC если ОК вывели на экран и запросили следующий пакет данных. Если CRC не совпала , то запросили у контроллера повторить.

msv

Канал самолет-GS значительно менее надежен (помехи- рядовое явление), чем канал GS-хост.
Поэтому протоколы разные, получаемые данные GS с самолета перекодируются в другие структуры, более оптимальные для передачи в ПК. Удаляются дублирующие значения, наиболее важные параметров, немного причесываются, ну и добавляются локальные данные. С GS в хост данные передаются пакетами с интервалом 20мс, все данные разбиты на 5 фреймов, период полного обновления данных на ПК т.о. =100мсек. Протокол GS-ПК простой- байт поточной синхронизации, длина пакета, тип пакета (номер фрейма), собственно данные, один байт простейшей CRC.
Вот собственно весь проект (в BCB6) мониторинга данных с GS. Бонусом там реализована загрузка прошивки в GS через бутлоадер. Приложение тестовое, слепленное на скорую руку, сильно не ругайте…
Monitor.rar

UserM

Спасибо, буду пробовать разобраться.