OSD на ATmega1281

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

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

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

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. Автовыключения.
Исходники не секретные, вышлю всем желающим.