OSD на ATmega1281

Vlado

Тут special для Сергея… промшпионаж ground-play на 450МГц и все такое.
Знаменитый п Озор.
В предверии праздников, вотка и все и все…
Всех с наступающим 😃

28 days later
ubd

Ребята, повторил IMU Сергея. Всё работает! Спасибо, Сергею!
Установил на Ская, теперь Горизонт работает да же в комнате! Чего не было с пиро…
Теперь у меня освободились пиродатчики от Смалтим. Кому надо?

7 days later
Vlado

Ребята, повторил IMU Сергея

Я тоже, но этого зверя нет 9DOF
Mr Seller морочит голову а время идет, кароче кидалово.
Вопрос Сергею, можно и в личку, интересует RFM22 на 400MHz достижения, обратный канал? поделиться софтом, PCB и прочей информацией.

dollop

Этот селлер один из крупнейших на торговой площадке e-bay. Брал у него раз двадцать - все отлично и быстро отпраляет. И IMU для этого проекта брал у него же. Однако доставка получилась 59 дней. Сам виноват - нефиг под новый год заказывать. Но никакие кейсы/диспуты не открывал ибо знаю работу почты. А давить на китайцев-продов - смысла нет - они все делают как нужно и довольно быстро. А вот китай-почта плюс наша-почта делают погоду. Но тут влияния на них никакого нет.
Так что только вчера забрал “зверя” на выходных запайка и проверка стабилизации. На столе пока что. На улице выпала месячная норма осадков - 40см снега лежит.

Vlado

кейсы/диспуты не открывал

отколь информация:)
Я в этом не копенхавн.
А что у вас с радиоканалом.

dollop

Кейс переходящий в диспут это первое что пытается сделать покупатель, если не видит у себя в руках оплаченный товар на 45-й день. Это его законное право, которе и спасает его же кошелек. Так и следует делать, но, считаю, с одной поправкой - учитывать нужно сезон покупки. А так из-за почты/таможни можем остаться вообще “за забором”
Радиоканал пока самый обычный, не LRS вовсе. Будете смеяться, но это ВЧ часть от HobbyKing 2.4 первой версии с сателитом. Хочу налетаться недалеко от себя, в радиусе 1-1,5 км, а там может и дальше потянет, тогда буду думать. Пока на счету чуть больше 10 вылетов под закат сезона 2012 года. Еще не все нюансы понял, но затянуло.

MikeMDR
dollop:

Этот селлер один из крупнейших на торговой площадке e-bay. Брал у него раз двадцать - все отлично и быстро отпраляет.

Также несколько раз покупал у него - последнюю посылку не получил. Продавец в переписке долго клялся, что товар получу позже, но при угрозе “case’a” тут же вернул деньги. На Казусе многие писали про “кидки” данного продавца (обещает вернуть деньги на 50-55 день, но после 45 дня даже не отвечает на письма). IMHO, до 45-го дня выбивать с него refund (при отказе - открывать “case”), а если всё же повезёт и посылка придёт - делать “re-pay” через PayPal.

dollop

Итак, по-теме.
Уважаемые Сергеи! Спаял плату с IMU. Если подключить ее к питанию, то переморгнутся светодиоды и далее она молчит. Если же ее подключить к OSD, то около минуты-полторы мигает один из светодиодов (3-4Гц), после истечения этого времени он начинает мигать очень быстро (на глаз около 6-8Гц). На резкие движения платы реагирует второй светодиод своим вспыхиванием.
При движении платой на экране ничего не меняется, горизонт не показывает.
В конфигураторе OSD, опцию отвечающую за подключение IMU установил.
GPS со спутниками.
Приемник подключен. Пробовал в режиме MNL.
Плата IMU подключена к OSD четырехпроводным шлейфом длиной 15см. Подключение пин в пин к месту где должен быть установлен пиродатчик (Общий, +5, SCK, SDO).
Все ли правильно? Как еще можно проверить связку IMU+OSD?

msv

Все работает! Медленное мигание говорит что настраивается коррекция дрейфа гироскопа (этап калибровки). В это время IMU должна оставаться в покое. Частое мигание- переход к нормальной работе. При этом вспышки второго диода означают что зарегистрирована перегрузка > ±0.5G (точно не помню…). Те. вопрос только с обменом с главной платой…
Первое что приходит на ум- догадались ли выпаять емкости с входов mega1281? Ведь для IMU там цифровая шина…
Ну и стоит убедиться в исправности и дополнительно подкалиброваться утилиткой TestIMU, зацепив комп по ком-порту к соответствующему порту IMU. Главную плату при этом можно не цеплять, только подать питание на IMU.
Вечером выложу обновления по IMU и распишу смысл коэффициентов, которые можно менять через TestIMU.

dollop:

Если подключить ее к питанию, то переморгнутся светодиоды и далее она молчит.

Вот это странно… Должна и так работать… Ладно, для начала дождитесь обновления прошивок…

dollop
msv:

догадались ли выпаять емкости с входов mega1281?

Смотрел, смотрел на них. Но не выпаял. Спасибо!
Сергей, а утилиту TestIMU где можно взять?

msv

Я думал что вложил ее в архиве с IMU… Ну будет вместе с обновлениями…

msv

Крайнее обновление imu + test_imu.
Как показал опыт, реальные хар-ки сенсоров могут ощутимо отличаться от приведенных в datasheet.
Поэтому сделал возможность их ручной коррекции через test-imu.
Accel gravity- коэффициент для акселя. Значение по умолчание по datasheet в 17 строчке defined.h. Для подстройки надо смотреть на первую цифру в поле Quаlity. Эта цифра показывает отклонения от 1G по показанию акселя. 100 в этом поле, соответствует намерянному и насчитанному 1g. Отклонение ±0.5g покажет 0. Те. подбирая Accel gravity нужно добиться максимального значений при разных ориентациях платы без ускорений. Очень хорошо если получится 95-98.
(Кстати, второе число в этом поле- ошибка между векторами акселя и соответствующей строки DCМатрицы. 0-полное совпадение.)
Gyro gain -коэффициент для гиро. Значение по умолчание по datasheet в 19 строчке defined.h. Тут делаем такую проверку: плавно но быстро поворачивает имушку на 90 град скажем по крену. Смотрим как ведет себя 3d-моделька в Test_IMU. Возможно два варианта - модель недоповорачиват до положенного угла и видим медленное “доползание” за счет коррекции по акселю. В этом случае следует увеличить этот коэффициент. Во втором случае все наоборот: “переповорачивает”- уменьшаем.
В общем для нормальной работы системы стабилизации это все ловля блох…, и не так уж принципиально… Но если есть желание и время, можно поиграться…
KP_RollPitch Определяют скорость коррекции матрица акселем. Быстрая скорость есть шанс, что горизонт начнут кривить длительные линейные ускорения. Маленькая скорость - слишком долго выправляются накопленные ошибки.
KI_RollPitch Используется только на этапе калибровки IMU после каждого включения для устранения дрейфа от гироскопов по крену/тангажу .
Yaw damping Аналогично для курса. Только тут вместо “опоры”- акселя используется простое демпфирование.
Все детали можно подсмотреть в иходниках, ну и что не понятно, конечно постараюсь ответить.

ubd

Если подключить ее к питанию, то переморгнутся светодиоды и далее она молчит.

Возможно, так и есть. Подключите её к СОМ порту, через МАХ232, и запустите Test IMU, светодиоды замигают.
Мне IMU Сергей настроил. За что ему спасибо!

Сейчас думаю на Скае, как лучше расположить антенны.
Приёмник уже расположил в крыле, антенка съёмная.
Передатчик на задней балке, но антенна выносная на киле, над стабилизатором. Завтра буду думать как это всё красиво и надёжно закрепить.

Ну а потом, самое страшное - Трекер, и поворотное устройство…

ubd

Немного фоток, как я установил IMU.
Корпус от авто-сигнализации. Очень хорошо вписался в Скай 1,6м.
Там не видно, но между платками есть кусочек свинца, проложенный между двумя кусочками двухстороннего скотча.

28 days later
msv

Долго ли, коротко ли, дошли таки ко мне заказанные нунчаки, модули, меги (больше 2-х месяцев шли…). Ну и быстренько слепил из этого задуманную мини-систему RC.

Немного помаялся с нунчаком, пока не нашел альтернативные коды инициализации, по которым наконец получилось читать с него данные. Ну а генерить PPM для сима уже было дело пары часов. Погонял на симе, честно говоря не в восторге… Люфты в джойстики, фиговенькие резисторы (сразу пришлось перебирать, чистить), какая-та нелинейность. Такое ощущение, как будто стоит жуткая экспонента, в средней части практически не реагирует, а потом очень резко. Да и от акселя почему-то иногда “замерзают” значения, особенно когда очень плавно отклоняешь. Вообщем увы, соответствует цене… Ну да делать нечего, прилепил к нему и к своей LRS радиомодули.
А вот они с nRF24L01 порадовали… Практически сразу (все тупо по даташит) запустились и на прием и на передачу. Включил режим передачи пакетов с подтверждением, по аскам на нунчаке работает сигнализация исправности канала. В секунду улетает до 650 пакетов (период чуть больше 1.5ms), что решает проблему накопления задержки при ретрансляции. Походил по квартире. Опять был приятно удивлен. В пределах комнаты 100% связь. В другой самой дальней комнате, через две жб. стенки, с трудом можно найти места где канал валится (правда критерий- потеря больше половины пакетов).
В нунчаке пока реализовал такие функции:
1 Джойстик - элероны, РВ.
2. При нажатии Z наклон по акселю- газ. В момент нажатия текущий угол считается нулевым (относительно него все меняется). Для плавности и фильтрации линейных ускорений использовал экспоненциальные фильтры для данных от акселя и еще один на уже рассчитанный угол.
3. Двойное нажатие Z- газ в ноль.
4. При нажатии C- джойстиком определяются режимы работы.
5. При нажатии и C и Z джойстик поворачивает камеру с ограниченной скоростью.
6. Звуковая/световая сигнализация проблем канала связи.
7. Звуковая/световая разряда акка.
8. Подзвученная индивидуальной “музыкой” смена режимов полета.
9. Автовыключения.
Исходники не секретные, вышлю всем желающим.

varvar

Про нунчак Вас предупреждали 😃 - единственно, с акселем Вам крупно повезло - у меня проблем замечено не было, хотя этих нунчаков было несколько штук. Видимо, у Вас новая версия 😃
А какие там еще коды - если склероз не изменяет, все работает “из коробки”?
Или Вы оторвали процессор, что в нунчаке и датчики напрямую включали?

А платка в корпус нунчака не вошла? Батарейка большая?

А с радиомодулями - передача только от нунчака до основного передатчика, как видно на фотографии? Если пытаться до самолета гнать короткие пакеты с большим baudrate - могут не долететь, энергетику не обманешь. Недавно пытался задрать скорость до 40kb и еще раскидать спектр по 11 каналам - обломился, метров около 100 и все (на 868мгц rfm22b) Поставил взад 2400 😃

msv
varvar:

А какие там еще коды…

Они бывают двух типов: original, ну и вероятно “не оригинал”…
Первые запускаются записью в 0x40 регистр значения 0 и требуют декодирования данных. Вторым (как у меня) нужно два регистра записать 0xf0, 0x55 и 0xfb, 0x00 (без нормального даташит прямо магия какая-то…), зато данные не нужно декодировать. Забавно, что эта инфа была в обсуждениях в первой же найденной статьи по нунчакам, но я не дочитал и все думал что сам где-то накосячил. От проца нунчака оторвал только кнопку Z, тк. она работает как power on.
Платку удалось упихнуть в корпус нунчака, сверху идеально легла батарейка 200мАн от сдохшей камеры-брелка. Пока не нашел маленькую пищалку, но со временем найду. Жаль, что RF-модуль не залез, хотя надеялся и его запихать…

varvar:

А с радиомодулями - передача только от нунчака до основного передатчика, как видно на фотографии?

Да, весь проект был вызван желание убрать провод от пульта до LRS. Надеюсь ожидаемых 15м он с запасом перекроет.

ubd

Грандиозно!

А я Серёгину Ground Station ваяю. Скоро будут первые фото.

msv

Проверил потребление своего произведения в выключенном состоянии, ужаснулся… целых 140мка… А вроде должно быть около 1мка… Всю периферию меги даже явно пробовал отключать, все ноги в воздухе… Что так может жрать, не соображу…
Может кто игрался с режимами power-down на мегах и знает какую хитрость? Или искать утечки в монтаже, пассиве?

RW9UAO

свободные ноги на выход и в 1-ку

msv

Все проще оказалось, забыл отключить ADC… Плюс еще не включался BOD sleep (си-шный оптимизатор генерил слишком длинный код). Теперь мега88p пока спит жрет меньше 1мкА (замерить уже нечем). А вот радио-модуль меньше 3мкА не получилось сделать… Ну это терпимо, мой акк 200мАч разрядит за 7,6 года… 😃