OSD на ATmega1281
Этот селлер один из крупнейших на торговой площадке e-bay. Брал у него раз двадцать - все отлично и быстро отпраляет.
Также несколько раз покупал у него - последнюю посылку не получил. Продавец в переписке долго клялся, что товар получу позже, но при угрозе “case’a” тут же вернул деньги. На Казусе многие писали про “кидки” данного продавца (обещает вернуть деньги на 50-55 день, но после 45 дня даже не отвечает на письма). IMHO, до 45-го дня выбивать с него refund (при отказе - открывать “case”), а если всё же повезёт и посылка придёт - делать “re-pay” через PayPal.
Итак, по-теме.
Уважаемые Сергеи! Спаял плату с IMU. Если подключить ее к питанию, то переморгнутся светодиоды и далее она молчит. Если же ее подключить к OSD, то около минуты-полторы мигает один из светодиодов (3-4Гц), после истечения этого времени он начинает мигать очень быстро (на глаз около 6-8Гц). На резкие движения платы реагирует второй светодиод своим вспыхиванием.
При движении платой на экране ничего не меняется, горизонт не показывает.
В конфигураторе OSD, опцию отвечающую за подключение IMU установил.
GPS со спутниками.
Приемник подключен. Пробовал в режиме MNL.
Плата IMU подключена к OSD четырехпроводным шлейфом длиной 15см. Подключение пин в пин к месту где должен быть установлен пиродатчик (Общий, +5, SCK, SDO).
Все ли правильно? Как еще можно проверить связку IMU+OSD?
Все работает! Медленное мигание говорит что настраивается коррекция дрейфа гироскопа (этап калибровки). В это время IMU должна оставаться в покое. Частое мигание- переход к нормальной работе. При этом вспышки второго диода означают что зарегистрирована перегрузка > ±0.5G (точно не помню…). Те. вопрос только с обменом с главной платой…
Первое что приходит на ум- догадались ли выпаять емкости с входов mega1281? Ведь для IMU там цифровая шина…
Ну и стоит убедиться в исправности и дополнительно подкалиброваться утилиткой TestIMU, зацепив комп по ком-порту к соответствующему порту IMU. Главную плату при этом можно не цеплять, только подать питание на IMU.
Вечером выложу обновления по IMU и распишу смысл коэффициентов, которые можно менять через TestIMU.
Если подключить ее к питанию, то переморгнутся светодиоды и далее она молчит.
Вот это странно… Должна и так работать… Ладно, для начала дождитесь обновления прошивок…
догадались ли выпаять емкости с входов mega1281?
Смотрел, смотрел на них. Но не выпаял. Спасибо!
Сергей, а утилиту TestIMU где можно взять?
Я думал что вложил ее в архиве с IMU… Ну будет вместе с обновлениями…
Крайнее обновление 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 Аналогично для курса. Только тут вместо “опоры”- акселя используется простое демпфирование.
Все детали можно подсмотреть в иходниках, ну и что не понятно, конечно постараюсь ответить.
Если подключить ее к питанию, то переморгнутся светодиоды и далее она молчит.
Возможно, так и есть. Подключите её к СОМ порту, через МАХ232, и запустите Test IMU, светодиоды замигают.
Мне IMU Сергей настроил. За что ему спасибо!
Сейчас думаю на Скае, как лучше расположить антенны.
Приёмник уже расположил в крыле, антенка съёмная.
Передатчик на задней балке, но антенна выносная на киле, над стабилизатором. Завтра буду думать как это всё красиво и надёжно закрепить.
Ну а потом, самое страшное - Трекер, и поворотное устройство…
Долго ли, коротко ли, дошли таки ко мне заказанные нунчаки, модули, меги (больше 2-х месяцев шли…). Ну и быстренько слепил из этого задуманную мини-систему RC.
Немного помаялся с нунчаком, пока не нашел альтернативные коды инициализации, по которым наконец получилось читать с него данные. Ну а генерить PPM для сима уже было дело пары часов. Погонял на симе, честно говоря не в восторге… Люфты в джойстики, фиговенькие резисторы (сразу пришлось перебирать, чистить), какая-та нелинейность. Такое ощущение, как будто стоит жуткая экспонента, в средней части практически не реагирует, а потом очень резко. Да и от акселя почему-то иногда “замерзают” значения, особенно когда очень плавно отклоняешь. Вообщем увы, соответствует цене… Ну да делать нечего, прилепил к нему и к своей LRS радиомодули.
А вот они с nRF24L01 порадовали… Практически сразу (все тупо по даташит) запустились и на прием и на передачу. Включил режим передачи пакетов с подтверждением, по аскам на нунчаке работает сигнализация исправности канала. В секунду улетает до 650 пакетов (период чуть больше 1.5ms), что решает проблему накопления задержки при ретрансляции. Походил по квартире. Опять был приятно удивлен. В пределах комнаты 100% связь. В другой самой дальней комнате, через две жб. стенки, с трудом можно найти места где канал валится (правда критерий- потеря больше половины пакетов).
В нунчаке пока реализовал такие функции:
1 Джойстик - элероны, РВ.
2. При нажатии Z наклон по акселю- газ. В момент нажатия текущий угол считается нулевым (относительно него все меняется). Для плавности и фильтрации линейных ускорений использовал экспоненциальные фильтры для данных от акселя и еще один на уже рассчитанный угол.
3. Двойное нажатие Z- газ в ноль.
4. При нажатии C- джойстиком определяются режимы работы.
5. При нажатии и C и Z джойстик поворачивает камеру с ограниченной скоростью.
6. Звуковая/световая сигнализация проблем канала связи.
7. Звуковая/световая разряда акка.
8. Подзвученная индивидуальной “музыкой” смена режимов полета.
9. Автовыключения.
Исходники не секретные, вышлю всем желающим.
Про нунчак Вас предупреждали 😃 - единственно, с акселем Вам крупно повезло - у меня проблем замечено не было, хотя этих нунчаков было несколько штук. Видимо, у Вас новая версия 😃
А какие там еще коды - если склероз не изменяет, все работает “из коробки”?
Или Вы оторвали процессор, что в нунчаке и датчики напрямую включали?
А платка в корпус нунчака не вошла? Батарейка большая?
А с радиомодулями - передача только от нунчака до основного передатчика, как видно на фотографии? Если пытаться до самолета гнать короткие пакеты с большим baudrate - могут не долететь, энергетику не обманешь. Недавно пытался задрать скорость до 40kb и еще раскидать спектр по 11 каналам - обломился, метров около 100 и все (на 868мгц rfm22b) Поставил взад 2400 😃
А какие там еще коды…
Они бывают двух типов: original, ну и вероятно “не оригинал”…
Первые запускаются записью в 0x40 регистр значения 0 и требуют декодирования данных. Вторым (как у меня) нужно два регистра записать 0xf0, 0x55 и 0xfb, 0x00 (без нормального даташит прямо магия какая-то…), зато данные не нужно декодировать. Забавно, что эта инфа была в обсуждениях в первой же найденной статьи по нунчакам, но я не дочитал и все думал что сам где-то накосячил. От проца нунчака оторвал только кнопку Z, тк. она работает как power on.
Платку удалось упихнуть в корпус нунчака, сверху идеально легла батарейка 200мАн от сдохшей камеры-брелка. Пока не нашел маленькую пищалку, но со временем найду. Жаль, что RF-модуль не залез, хотя надеялся и его запихать…
А с радиомодулями - передача только от нунчака до основного передатчика, как видно на фотографии?
Да, весь проект был вызван желание убрать провод от пульта до LRS. Надеюсь ожидаемых 15м он с запасом перекроет.
Грандиозно!
А я Серёгину Ground Station ваяю. Скоро будут первые фото.
Проверил потребление своего произведения в выключенном состоянии, ужаснулся… целых 140мка… А вроде должно быть около 1мка… Всю периферию меги даже явно пробовал отключать, все ноги в воздухе… Что так может жрать, не соображу…
Может кто игрался с режимами power-down на мегах и знает какую хитрость? Или искать утечки в монтаже, пассиве?
свободные ноги на выход и в 1-ку
Все проще оказалось, забыл отключить ADC… Плюс еще не включался BOD sleep (си-шный оптимизатор генерил слишком длинный код). Теперь мега88p пока спит жрет меньше 1мкА (замерить уже нечем). А вот радио-модуль меньше 3мкА не получилось сделать… Ну это терпимо, мой акк 200мАч разрядит за 7,6 года… 😃
Наконец то доделал свою версию msv трекера.
Сергей, добрый день.
Подскажите, я что то уже запутался в этой теме.
Я сейчас в процессе повторения “наземной станции” которая описана в сообщении rcopen.com/forum/f8/topic162911/530.
Ваши фотографии сильно отличаются от той версии. Скажите, это просто Ваша разводка или есть какие то более существенные отличия?
Ваши фотографии сильно отличаются от той версии.
Это тоже самое. Просто я свою конструкцию поворотного механизма разработал и изготовил, и корпус нижней части сам склеил из рекламного пластика (на знаю как он называется), ну и покрасил. А у Сергея msv корпус взят от пульта радиостанции ЛЁН, или подобной МАЯК ещё были такие в совковые времена.
Плата и схема, и прошивка та же самая. Есть чертежи, свой вариант платы, отличается тем что я на плате развёл импульсный ВЕС для мощных поворотных серв, и номиналы подписал. В личку мыло напиши, вышлю чертежи.
Есть чертежи, свой вариант платы, отличается тем что я на плате развёл импульсный ВЕС для мощных поворотных серв, и номиналы подписал. В личку мыло напиши, вышлю чертежи.
Спасибо, та плата наземки уже готова, так что буду пытаться запустить именно ее.
ЗЫ
Пока ждал ответа, вытравил ваш вариант платы самого OSD.
Дело движется…
Скоро будут фото )))… надеюсь…
Вот мой вариант платы трекера, и чертёж наземки.
Серёга вообще, гениальную разработку сделал. Всё работает и повторяемость хорошая.
Если нужны подробные фото наземки, это по почте.
Там в моей версии платы OSD в посте 712, не разведён вход комплексного сигналла РРМ. Если вам нужно то его там нет, придётся на ножку проца подпаиваться. Я плату затачивал на самодельный приёмник на RFM22.