OSD на ATmega1281

msv

Выношу на суд прогрессивной паяющей/летающей общественности очередную свою поделку- OSD-телеметрия на ATMega1281. Выбор проца обусловлен наличием на его борту 8К RAM, что позволило без особых напрягов сбацать графический экран 192х160 (пока…). Остальное все как у всех. Прога 90% написана на C.

Схемка - ничего интересного, сплошной даташит…

А вот испытытание на авто:

Теперь пишу для него конфигурируемый декодер (вход- стандартый групповой PPM), ну и дальше мечтаю авиагоризонт, автопилот… Места в чипе пока еще полно, ну и по времени (процессорному) еще есть резервы… Лишь бы своего времени и интереса хватило… 😃

ukkr

Вы молодец. Я пока себе делаю логгер на СД карточку на Mega32, чтоб в спокойной обстановке дома можно было бы проанализировать параметры полёта. Но подумываю и об ОСД.
Такой вопрос, чем обусловлен выбор ATMega1281? Ведь по его цене можно взять ARM7 от Atmel , что-то из

ATMEL AT91SAM7S161 - 16 Кбайт FLASH-памяти, 4 Кбайта ОЗУ, частота работы МК до 55 МГц.
ATMEL AT91SAM7S321 - 32 Кбайт FLASH-памяти, 8 Кбайта ОЗУ, частота работы МК до 55 МГц.
ATMEL AT91SAM7S64 - 64 Кбайт FLASH-памяти, 16 Кбайта ОЗУ, частота работы МК до 55 МГц.
ATMEL AT91SAM7S128 - 128 Кбайт FLASH-памяти, 32 Кбайта ОЗУ, частота работы МК до 55 МГц.
ATMEL AT91SAM7S256 - 256 Кбайт FLASH-памяти, 64 Кбайта ОЗУ, частота работы МК до 55 МГц.
ATMEL AT91SAM7S512 - 512 Кбайт FLASH-памяти, 64 Кбайта ОЗУ, частота работы МК до 55 МГц.

По возможностям эти АРМы рвут любую МЕГУ. А цена – фактически ваша ATMega1281.
Опять таки, влепить что-то типа автопилота можно без проблем в добавление к ОСД.

П.С. А можно ещё схему в большем разрешении приэтачить в зИПе, а то кроме Аллегровского датчика тока на 50А, остальные названия нечитабельны.

lesha_spb

Ой-ой-ой, как красиво!
Только расскажите поподробнее для чего, к чему подлючается и т.д.
Сам увлекаюсь микроконтроллерами, правда пока не такими мощными, так что проявляю неподдельный интерес!

msv

Мда… схемку форум маленько пожал, вот оригинал в rar.
osd.rar
ИМХО Интерес может представлять только модулятор с “тенями”, пришлось повозиться… В отличии от простейших модуляторов на диоде и резисторах, здесь уровень засвечиваемых пикселей можно четко поставить на уровень белого и он практически не зависит от уровня картинки. Тени, тоже оказалось не так просто… без ограничения спектра после дифференцирования заднего фронта, сходили с ума декодеры ПАЛ во всех моих теликах и тени сопровождались жуткими “факелами”.
Чип был выбран по критерию минимальной достаточности с некоторым запасом. Правда пришлось его разогнать до 20мГц, что бы получить более квадратный пиксель. Т. е. смотрел линейку ATMEL от простейших к тяжелым и на меге1281 решил остановиться. Цена- 280р более чем устроила. Сдернули за пересылку еще 300, но это уже неизбежные издержки провинциального радиолюбителя. А т.к. перед этим мегу128 брал в местной лавке почти за 600р, то вообще воспринял, как подарок.
Да, еще… OSD калибруется/конфигурируется с ПК простейшей программулиной через COM-порт. (Ну лениво было разбиратся с USB, а так практически за один вечер слепил конфигуратор…)
2lesha.spb задавайте конкретные вопросы, постараюсь ответить…

Ale_andr

Ну и цены:). У нас в Тюмени ATMEGA128-16AU стоит 245руб в не самом дешевом магазине - в самом дешевом её почему то нет.

ukkr

У нас в не самом дешёвом магазине
www.imrad.kiev.ua/search.shtml?qs=ATMega1281&query…
цена ATmega1281-16AU 82.21 грн = 289.26 рубля

А цена на АРМ7, второй по крутизне, что я дал AT91SAM7S256-AU-001
www.imrad.kiev.ua/search.shtml?qs=AT91SAM7S256&que…
цена 76.54 грн = 269.315 рубля

Потому я и говорю, что АРМ, будучи намного более нафаршированной темой, стоит дешевле ATmega1281.

ubd

Сергей, как всегда в своём репертуаре - МОЛОДЕЦ! Очень уважаю людей с руками и головой!
Скажи а что там у тебя такое, ток жрёт от 2,4 до 5,2А? И почему то этот ток плавно поднимается?

msv

Ок, спасибо. Датчик тока только вчера выкупил (кста- 380р. 😦 ), а это на открытый вход АЦП что-то набегает…
Раз уж вопрос о ценах подняли, может кто что посоветует по авиагоризонту в этом плане? Собственно варианта, как мне показалось, два:

  • пиродатчики (какие, где, почем?) Не очень меня этот вариант радует, но практически все делают на них.
  • трех-осевой акселерометр+двуосевой гироскоп. Это было бы классно, но цены на гироскопы невменяемые… Или у кого-то есть спец.предложения?
Aleksey_Gorelikov

Сергей, посмотри ветку “полеты по камере>телеметрия”. Там уже много чего обсуждалось, про пиродатчики в частности, и есть люди, у которых уже все работает (в т.ч. автопилот).

msv

Эту ветку я изучил вдоль и поперек… Наверное большую часть времени своего проекта ушла на то, что-бы перечитать эту тему с самого начала. 😃 Но здорово помогло кучу чужих граблей обойти. Правда без своих все же не обошлось…
Там псевдографика, автопилот на отдельном МК,- это не наш путь…
А вот датчик тока и GPS-модуль там подсмотрел.
Но с пиродатчиками ответа на вопрос не нашел. Те, которые применил уважаемый smalltim, достать за дешево непросто… Да и не очень нравится такой принцип определения горизонта. А вариант гироскоп+аксель там всерьез не расматривался. Возможно тоже потому, что слишком большая цена вопроса…

ukkr

Не знаю, то ли это, что Вам нужно, но работал с вот такими
IRA-E710ST0 Муратовскими
www.platan.ru/cgi-bin/…/id=309039614&group=1138
и IRA-E940ST1
Порядка 2х-2х с половиной баксов у нас они стоят.
Не знаю, может поможет
www.platan.ru/news/news.shtml?code=606
www.symmetron.ru/suppliers/sensors/pyro.shtml

Эх, ещё б кто-то кинул на материал, где разжовано, как используя пиродатчики получить авиагоризонт…

ukkr

ОФФТОП:
2 PigTail , большое человеческое спасибо!!!
Эх, жаль, что ща рабочий день и дофига работы, прийдётся украдкой почитывать…

Nick_Shl
msv:

Раз уж вопрос о ценах подняли, может кто что посоветует по авиагоризонту в этом плане?

Самое простое решение(но не самое надёжное) - один гироскоп, срабатывающи

msv:

Раз уж вопрос о ценах подняли, может кто что посоветует по авиагоризонту в этом плане?

Самое простое решение(но не самое надёжное и точное) - один гироскоп, срабатывающий на крен(поворот вдоль своей оси). Для определения положения самолёта в пространстве достаточно двух вещей: вектора направления движения и значение крена. Вектор направления движения можно получить по двум соседним координатам GPS. Для получения крена нужно на старте каким-то образом указать, что крен = 0, затем циклически опрашивать гироскоп и корректировать текущий угол крена.

msv

Спасибо за ссылки! (хоть они мне и знакомы) Про IRA710-e кто-то, где-то уверял, что они не выдают постоянную составляющую. По даташит этот момент мне непонятен. Вроде бы явных кондеров там не просматривается. Но проверить непросто…
Папараци молодцы, конечно… Но… PID - это классика управления. Вся хитрость в волшебных пузырьках (коэффициентах), о которых, как мне показалось, там скромно умолчали( хотя смотрел их сайт по диагонали).
2Nik_Shl Что-то не понял мысль… Вектор по GPS более менее точно можно определить по направлению ( и то этот вектор будет совпадать с продольной осью самолета при 0-вом боковом ветре). Высота по GPS может скакать до 100м ( причем эти значения практически не удается как-то отфильтровать/сгладить) и может быть использована только для оценки, но никак не для определения тангажа. Но самое главное- не понял, как, даже зная вектор продольной оси самолета, можно корректировать гироскоп крена???

Vad64
msv:

Про IRA710-e кто-то, где-то уверял, что они не выдают постоянную составляющую. По даташит этот момент мне непонятен.

msv, поздравляю, отличный проект!

ПИРОдатчики не подойдут точно, любые. Датчики на пироэффекте реагируют только на переменную составляющую (можно почитать, например, здесь cultinfo.ru/fulltext/1/001/008/089/311.htm). FMA используют thermopiles (термопары или термобатареи) - они реально могут выдавать постоянную составляющую.

Что касается авиагоризонта на акселерометрах и гироскопах, то тут, по-моему, все очень непросто в математике. И, кстати, я не уверен, что достаточно двух гироскопов, а не трех.

Nick_Shl
msv:

2Nik_Shl Что-то не понял мысль… Вектор по GPS более менее точно можно определить по направлению ( и то этот вектор будет совпадать с продольной осью самолета при 0-вом боковом ветре). Высота по GPS может скакать до 100м ( причем эти значения практически не удается как-то отфильтровать/сгладить) и может быть использована только для оценки, но никак не для определения тангажа. Но самое главное- не понял, как, даже зная вектор продольной оси самолета, можно корректировать гироскоп крена???

Гироскоп не надо корректировать. Гироскоп надо интегрировать. Постоянно. На выходе получаем угол крена. Зная вектор движения(вот про ветер я не учёл, а на машине почему-то высота не скачет, если конечно спутников много) и крен(его не возможно определить по вектору движения) мы точно знаем положение самолёта в пространстве. Правда, как заметил Vad64, с математикой запарка будет.

astr
Nick_Shl:

Гироскоп не надо корректировать. Гироскоп надо интегрировать. Постоянно. На выходе получаем угол крена.

Получите не угол крена, а интегральную ошибку, через небольшой промежуток времени после сброса, расчетный крен с реальным будет иметь мало общего.

msv

Может у кого есть ссылки, где можно купить (подешевле, конечно) эти самые thermopiles? Да и про FMA много слышал, но как-то не отложилось- где и почем?
2Nik_Shl Все равно не догоняю… Даже при идеальном определении высоты ее изменение вовсе не определяет тангаж.
После интегрирования по времени данных от гироскопа имхо можно получить только некоррелированную ошибку. В моем представлении данные от гиро наоборот надо дифференцировать по времени и складывать с проинтегрированным данными от акселя. Не вижу никаких проблемм с математикой, постоянные времени дифференцирования/интегрирования достаточно очевидны и определяются качеством (скоростью “ухода”) гироскопа. Хотя может чего не понимаю…

О… уже опередили…

Nick_Shl
msv:

Даже при идеальном определении высоты ее изменение вовсе не определяет тангаж.

Не высоты! С GPS мы получаем координаты и высоту. Их можно рассматривать как трёхмерные координаты - x,y,z. Имея координаты двух соседних точек мы можем определить положение самолёта в пространстве. Можем определить угол к горизонту. Однако этому положения не хватает “крена”. Можно самолёт представить насаженным на ось - и на ней он может свободно вращаться, а направление при этом не изменяется.

msv:

После интегрирования по времени данных от гироскопа имхо можно получить только некоррелированную ошибку. В моем представлении данные от гиро наоборот надо дифференцировать по времени и складывать с проинтегрированным данными от акселя. Не вижу никаких проблемм с математикой, постоянные времени дифференцирования/интегрирования достаточно очевидны и определяются качеством (скоростью “ухода”) гироскопа. Хотя может чего не понимаю…

Чего-то как-то слишком много умных слов… уже перестаю понимать 😃. Под интегрированием я понимал складывание(крен в одну сторону положительный, в другую - отрицательный). В результате имеем угол отклонения(крен) от продольной оси самолёта. А на счёт ошибки: разве не так работают гироскопы с удержанием хвостовой балки? Как я понимаю, их задача руля машинкой удерживать угол изменения в нуле(если хвост ушёл в сторону на 5 градусов, его надо повернуть в другую сторону на эти же 5 градусов). И ведь прекрасно держат…

Единственное что я не учёл - необходимо постоянное отслеживание положения самолёта в пространстве. В ситуациях когда мы развернём самолёт только с помощью руля направления или сделаем пол петли и направление движения самолёта и крен(относительно самолёта) будут одинаковы, а вот крен относительно земли будет отличатся на 180 градусов…