OSD на ATmega1281

msv

Да, это пульт управления. Тут такой мыслительный процесс шел:
Поначалу задумался, как освободиться шнурка от пульта до LRS. Он если длинный- путается под ногами, если короткий- боишься шевельнуться… Вообщем- не комфортно. Тут Денис подсказывает замечательные модули на 2.4, почти бесплатные. В LRS такой модуль поставить- не проблема, даже может проще получится, чем аналоговый PPM парсить. А вот в пульт с самокодером запихать не так просто. Да и функциональность для FPV у него явно избыточная, что порой даже вредит.
Так прихожу к выводу, что проще сделать специально под FPV простенький пульт. Задумывал в нем один 2-осевой джойстик, слайдер для газа, ну и переключалки режимов полета. Неожиданно столкнулся, что купить один джойстик, да еще задешево, не так просто. Нашел какой-то маленький на ebay, и тут Алексей подсказывает что в два раза дешевле подобные можно выдрать из вии нучака…
А нунчак, это же не только джойстик, но и красивый эргономичный корпус…
А буквально несколько часов назад обнаружил, что с контроллером нунчака (который хотел безжалостно выбросит) можно легко и просто общаться по TWI… Тут вспомнил про fmkit и уже захотел сделать нечто подобное…
Сейчас пытаюсь придумать логику управления, но что-то пока не очень нравится.
Понятно джойстик однозначно для крена, тангажа.
Нажатие и удержание одной из кнопок - переключение управление джойстиком камерой.
Для переключения режимов придется трехпозиционный тумблер воткнуть. Вторая кнопка расширение управления режимами (как и сейчас- двух и трех позиционный тумблеры).
А вот что с газом делать, как акселем накручивать газ?.. У fmkit не очень понравилась неоднозначность, но до конца и не понял…
Какие идеи будут?

dollop

Так газом при фпв вроде не сильно часто рулить приходится. Сколько проектов видел для газа народ делает следующее:

  • Газ управляется акселем и Z кнопкой. (короткий клик - газ в 0, двойной клик - пропорциональный. Еще режим при нажатой кнопке - акселем газ установил, кнопку отпустил - положение газа зафиксировал). Это у fmkit
  • Вешают на джой - вниз вверх для +/- газа. Значит тангаж - на аксель.
  • Видел делают, например, кнопку C для увеличения газа, Z для уменьшения.
    Как удобней - только практика и привычка покажет. По-моему, самое понятное и удобоваримое, как, вы, Сергей, предлагаете - поставить слайдер на газ.

upd.
В общем в 90% случаев газ на аксель вешают.
И тут человеку вроде такое управление нравится
И в этом проекте тоже. Давим Z и от_себя/на_себя нучаком регулируем газ.

baychi
msv:

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

Если надо, fmkit-овская ветка с описанием его логики управления есть здесь: www.rcgroups.com/forums/showthread.php?t=1590512
Он рулит пальцем (крен/тангаж), газ либо кнопками, либо подъемом руки, согнутой в локте (с акселя).

PS: Говорят после обычного пульта трудно переучиваться. Не всем удается.

msv:

Какие идеи будут?

Есть куча маленьких (легких и изящных) ИК/РУ пультиков от детских игрушек (все эти микровертолетики, машики и т.п.). И с 2-мя дойстиками и с 1.5 и кнопочек/тумблеров нетрудно засунуть. С контроллера можно взять ЧМ или ШИМ сигнал для ИК диодов на 4-6 каналов, или выкинуть родной контроллер и подключить резисторы джойстиков через АЦП.
Но ИМХО, чем дальше в лес…, если нужен комфорт и функционал, все равно придем к эргономике стандартного пульта РУ, да еще со всеми наворотами… 😃

dollop

Немножко нунчака. Думаю, что 30х50 платка со скрипом влезет и то если все из него вытрусить 😦 Ввиду излишней эргономичности корпус очень не емкий.
ЗЫ. Извините за цвет аппарата 😛 - какой искать не пришлось, тот и запечатлел

varvar

Я как-то делал управление с нунчаком - грохнул с непривычки крылышко и успокоился. Общаться с ним по i2c - нет проблем. Проблема раз - у большинства китайских нунчаков активный ход маленький - чуть отклонил стик - уже максимум, рабочая зона маленькая. Проблема два - триммеров не хватает. Можно реализовать, но опять условные рефлексы не те. Проблема три - акселерометры - должны быть очень заученные махательные движения для управления. Я делал управление мотором - нажимаешь кнопку - газ устанавливается согласно наклону. Потом руку можно отпустить.
Нужно как следует забыть обычный пульт и полностью свои условные рефлексы перестраивать. Не понравилось.

msv

Полностью согласен, что все эти нунчаки, джойстики (если это конечно не стационарный пункт управления) итп- баловство… И в мобильном варианте никогда они не заменят стандарный пульт и полноценное “двухрукое” управление.
Но иногда не грех и побаловаться… 😃

varvar:

Проблема раз - у большинства китайских нунчаков активный ход маленький - чуть отклонил стик - уже максимум, рабочая зона маленькая.

Те. максимум наступает раньше механического ограничения?? Это грустная информация, тогда придется все-таки выкидывать встроенный контроллер…

varvar:

Проблема два - триммеров не хватает.

Для моей задачи триммирование не актуально. В АП будет режим автотриммирования. Его все равно собирался сделать, благо imu работает достаточно надежно.

varvar:

Проблема три - акселерометры - должны быть очень заученные махательные движения для управления.

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

  • Устанавливать газ пропорционально заранее откалиброванным углам? или в момент нажатия кнопки считать текущий угол соответствует текущему газу? (по логике управления имхо удобнее второе)
  • Менять газ сразу или с определенной ограниченной скоростью?
  • Может вообще угол отклонения должен определять скорость изменения газа а не собственно его значение?
    Ну итд…

Может на ряд вопросов появятся ответы после симулятора… Жаль только что мои нунчаки, меги итп, появятся у меня не раньше февраля… 😦

ubd

Сергей как всегда гениален! Авто-тримирование это мне нравиться!

У меня пока с IMU нет продвижения. Холодно на работе, в той комнатке где я всё паяю. С окна дует. Сидеть не возможно…

msv
ubd:

Сергей как всегда гениален!

Ну что есть, то есть…😇 На самом деле логика простая- АП все равно надо знать нули на управляющих каналах для точной работы ПИДов. Поэтому сейчас требуется установить эти значения после ручного триммирования, войдя в режим TRM. Но теперь, когда можно верить угла от imu, очевидно что зайдя в режим TRM это можно делать автоматом…

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 Сергей настроил. За что ему спасибо!

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

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