Проект выходного дня - микроАППА для микрокоптеров (и др. микромоделей)

Tahorg

При детальном рассмотрении - не надо на таймер. Потому что гавно этот АВР, простите. Я тут переделал один свой скетч старый, преобрзователь ппм -> каналы ПВМ. Сначала был простой - в лупе проверял пин и по мере изменения соотвественно менял каналы. Все работало. Но некрасиво же - повесил на прерывание, на falling edge, код упростился, стало все частенько и красивенько. Вот только одна беда - сервы начали нееееемножко подергиваться. Чуть-чуть. Долго бился - все правильно, а подериваются. Особенно на “дальних” каналах.

Вобщем, в отличии от стм, где все стоит как влитое, тут прерывания отрабатывают (таймерные тоже) не совсем “вовремя”. А при точности 1мкс и частоте 16МГц у нас выходит неободимая точность в 16 тактов. А чтоб посчитать время надо 16бит на 8битном процессоре. Что тоже жрет такты. Вобщем - нафиг прерывания с такими скоростями. Ну или нафиг Атмегу 8 битную.

Я купил несколько STM32F103 плат за 4 евро (да, четыре евро) штука. ПВМ на нормальных таймерах, нормально работающие прерывания, 1 такт на 32битную логику, 72МГц … и по цене дешевле ардуины. Да, немного сложнее писать “стартовый” код, но гугл помогает. Вобщем - нафиг ардуину.

rual
Tahorg:

При детальном рассмотрении - не надо на таймер. Потому что гавно этот АВР, простите. Я тут переделал один свой скетч старый, преобрзователь ппм -> каналы ПВМ. Сначала был простой - в лупе проверял пин и по мере изменения соотвественно менял каналы. Все работало. Но некрасиво же - повесил на прерывание, на falling edge, код упростился, стало все частенько и красивенько. Вот только одна беда - сервы начали нееееемножко подергиваться. Чуть-чуть. Долго бился - все правильно, а подериваются. Особенно на “дальних” каналах.

Т.е. проблема именно в формировании импульса? Это можно проверить загрузкой константы в в регистры захвата. Но сдается мне тут проблема в буферизации регистров, на STM32 она так же проявиться если не выставить нужные биты в конфигурации таймера. Если внимательно изучить режим формирования ШИМ на таймере думаю проблему можно устранить.

Tahorg:

А при точности 1мкс и частоте 16МГц у нас выходит неободимая точность в 16 тактов. А чтоб посчитать время надо 16бит на 8битном процессоре.

не думаю что есть проблема быстродействия, никаких сложных вычислений тут не нужно. Люди вон до сих пор на АрдуМеге летают, там кроме ШИМа полно вычислительной нагрузки.

Tahorg:

Я купил несколько STM32F103 плат за 4 евро (да, четыре евро) штука. ПВМ на нормальных таймерах, нормально работающие прерывания, 1 такт на 32битную логику, 72МГц … и по цене дешевле ардуины. Да, немного сложнее писать “стартовый” код, но гугл помогает. Вобщем - нафиг ардуину.

Есть вот такая “Ардуина”, в части работы с ней не чем не отличается от оригинальной, но много быстрее и библиотеки работы с интерфейсам SPI и IIC обрабатываются в прерываниях.

Tahorg

неа, в формировании импулься проблем нет, тут как раз все хорошо. А вот с ЧТЕНИЕМ импульсов прерыванием все не очень хорошо. Пока войдет в прерывание, пока стек перенесет, и все это на 16МГц. А в прерывании надо еще считать показания таймера, которое 16бит, проверить, что оно не длинней синхропаузы … ну и т.д. И выходит что начинается гуляние туда-сюда на 20-30 микросекунд. И начинает дрожать серва.

Проблема не в вычислениях, проблема в точности времени захвата сигнала. Т.е. большую часть времени ничего не делаем, а потом пошел сигнал, и вот тут почему-то, если его ловить прерыванием получается проблема - оно не сразу туда входит. А если в цикле пин опрашивать - то все хорошо.

Аналогично с ШИМ. Если просто заливать в OCRx значиния - прекрасный ШИМ. А вот если на прерывание таймера повесится и по прерыванию самому в коде пин переворачивать - жопа, начинает гулять серва. Потому что прерывание вызывется с запаздыванием и это запаздывание не прогнозируемо. На кортексах это тоже, вероятно, есть. Но там из-за быстрого процессора и 32 битной архитектуры, когда большинство вещей выполняются за 1 такт, задежка, если и есть, выходит меньше 1 микросекунды, и на результат не влияет.

Ну вобщем, где-то так.

ПС: Ну и на стм32 аж 3 таймера по 4 канала на каждом. И делители любые. И топ настраиваемый. ШИМ генерировать - одно удовольствие. Делитель 72, топ 20000, только меняй значение канала в компараторе.

fpv_mutant

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

grafis
fpv_mutant:

Подскажите,есть в природе стики компактных размеров

В микро пультах используют такие такие от XBox

fpv_mutant
grafis:

В микро пультах используют такие такие от XBox

У этого стика возможно самоцентровку “убрать”,и.как он по сравнению с традиционным народным стиком (из турниджи) себя проявит в точности управления (мне для коптера) супер точность не нужна?

grafis
fpv_mutant:

У этого стика возможно самоцентровку “убрать”

я сделал микро пульт на базе nine eragle там стояли такие же у одного не было центровки.
стандартные то же можно попробовать переделать.

fpv_mutant
MxM:

проблема не в генераторе ppm эта вещь пишется на ардуине за пару часов с нуля, проблема в стиках. они настолько плохие что использовать их даже в дешевом симуляторе у меня не получилось, перепробовал 3 разных типа, в итоге проект перешел на нормальные стики ну и корпус за ними пришлось подтянуть.
Так что сама по себе идея неплохая с точностью до того насколько готовы мириться с хреновым качеством управления (из-за стиков) у получившегося гибрида.

Подскажите,о каких стиках шла речь?-не те,что в xbox?

MxM

нет. от хbox мне не перепадали. те что я пробовал от микровертолета 911, из китая с ebay и от пультяшки sony playstation. Несмотря на некоторую разницу в механике и неплохие резисторы сам конструктив имеет , не ошибки, а скажем так, “особенности” которые не позволяют воспользоваться ими для точного управления, нет четкого нуля, нет регулировки жесткости(болтаются как сопля), неубираемые люфты. такие что проще переделать чем пытаться починить. как то так

вот эта вещь гораздо правильнее, точнее и вообще лучше, при достаточно демократичной цене

grafis

Интересно какие джойстике в мелком пульте мультиплекса

fpv_mutant
MxM:

нет. от хbox мне не перепадали. те что я пробовал от микровертолета 911, из китая с ebay и от пультяшки sony playstation. Несмотря на некоторую разницу в механике и неплохие резисторы сам конструктив имеет , не ошибки, а скажем так, “особенности” которые не позволяют воспользоваться ими для точного управления, нет четкого нуля, нет регулировки жесткости(болтаются как сопля), неубираемые люфты. такие что проще переделать чем пытаться починить. как то так

вот эта вещь гораздо правильнее, точнее и вообще лучше, при достаточно демократичной цене

…они оч.большие…заказал ради интереса от х-бокс,посмотрим

RW9UAO

walkera devo 7E, не карманная конечно… зато после установки deviation весьма юзабельна. входила в карман старой зимней куртки =)

rual
RW9UAO:

walkera devo 7E, не карманная конечно…

ARXITEKTOR:

У Turnigy TGY-i6 AFHDS

Вот в том и дело что не “карманная”

5 months later
rual

Так и не дождавшись рождения нового DIY модуля от FrSky, а новый XJT в корпусе весьма дорог, решился преобресть старый - DHT.

С целью уменьшения размеров и удобства монтажа решил заменить штатный блок управления

(сх. привожу) на мелкую кнопку и тумблер с закрутками, при этом тумблер взял двухпозционный - исключил режим прошивки модуля (если будет нужно сделаю руками), т.е. красную веточку от переключателя с резистором, зеленю оставил. Получилось два режима: D серия - 2 WAY (тумблер разомкнут) и V серия - 1 WAY (тумблер замкнут). Если V серии не нужно, то переключатель можно вообще убрать, оставив кнопку бинда и светодиод.

В итоге: получил компактную аппу для фрискайных приёмышей V и D - серий. Стики не очень точные и плохо центрующиеся, но для коптера вполне сойдут. Куда важнее вес и компактность! Можно легко забросить мелкого с аппой в небольшой рюкзак или пакет, не боясь повредить дорогой пульт.

pilot258:

а где демонстрация результата?

www.youtube.com/watch?v=Cfdct5wiByA

зы: Да, ещё немного переделал прогу - формирование PPM сделал в прерывании, что уменьшило дрожание каналов.

Ardu_PPM.rar

14 days later
rual
fpv_mutant:

Удобно управлять такими стиками?

Коптером при полетах блинчиком вполне. Вертом не рискнул бы.
С другой стороны у меня тушка пульта совершенно игрушечная, и стики соответствующие. Если взять что-то по приличней, результат будет лучше.

11 days later
AndyGr

Друзья, подскажите. Может кот-то что-то делал.

Есть желание сделать свою аппу, совмещенную с FPV приемником/монитором в форм-факторе вот такого вот чемодана.
Из имеющегося есть FrSky DHT, стики от тараниса, переключатели и крутилки. Есть желание в качестве контроллера использовать полетный контроллер AIOP (читай Atmega2560) и к нему экран от MultiWii.

В первую очередь интересно посмотреть на адаптацию er9x. Или не стоит заморачиваться?

rual
AndyGr:

Есть желание сделать свою аппу, совмещенную с FPV приемником/монитором

Тоже интересуюсь, только вот надо посчитать, может дешевле готовую купить (ну или как заготовку под своё ПО). Про это много в самолетной ветке ФПВ.

AndyGr:

В первую очередь интересно посмотреть на адаптацию er9x. Или не стоит заморачиваться?

Если “чисто под коптер”, то не вижу смысла заморачиваться с ЕР9, ибо сама аппа работает в одном профиле (ну или в 2/3), все настройки выполняются в полетниках. Планирую взять за Р/У основу FrSky XJT, Arduino Nano для PPM-генератора и дешифратора телеметрии, ЖК панель (а лучше 2 😃 ) для видео и вторую под “атомную” матплату.

AndyGr:

в форм-факторе вот такого вот чемодана.

Чё та он хрупко выглядит и дорого стоит?

AndyGr
rual:

Чё та он хрупко выглядит и дорого стоит?

Второй год таскаю по походам под технику. С точки зрения соотношения неубиваемости на вес - для меня оптимально.

rual:

Тоже интересуюсь, только вот надо посчитать, может дешевле готовую купить (ну или как заготовку под своё ПО). Про это много в самолетной ветке ФПВ.

Дело в том, что все уже есть в наличии.

rual:

Если “чисто под коптер”, то не вижу смысла заморачиваться с ЕР9

Тоже к этому прихожу.