Smalltim OSD and autopilot (часть 1)

baychi
smalltim:

Сдается мне, это модуль GPS такой попался. Это 1-герцовый Локосис?

Нет, это уже, новый 5-Гц (из той первой партии АП).
Причем раньше всегда справно работал. Дурить лишь в последнее время начал.
Попробую сегодня от другой модели GPS подключить, но чувствую дело не в GPS.

baychi
baychi:

Попробую сегодня от другой модели GPS подключить, но чувствую дело не в GPS.

Оказалось все-же - GPS модуль! Другой экземпляр запускается стабильно. А этот, как будто что-то ловит в момент включения и либо начинает выдавать посылки, либо засыпает.

smalltim

Александр, попробуй его кикером пнуть еще разик.

По софту - вчера опять вылез непонятный глюк с повреждением данных во флеше: настройки и калибровки автопилота иногда портятся при перепрошивке автопилота и при ресете.
Ну, то есть, при частом ресете - когда по кнопке ресет секунд 5 долбишь хаотически. Понятное дело, что это идиотская ситуация, но надо быть готовым ко всему.
Похоже, если в тот момент, когда во флеш пишутся данные, приключается ресет, то данным песец.
Разбросал настройки по непересекающимся страницам флеша и трехкратно продублировал, и ввел проверку контрольной суммы, помогло 😃
Для логов контрольный байтик к каждой записи изначально писался, там всё хорошо.

>Тим ! А ты диверсити не планируешь ?
Не, есть же замечательные готовые системы.

Dikoy
smalltim:

Похоже, если в тот момент, когда во флеш пишутся данные, приключается ресет, то данным песец.

Есть такая фигня… Даже при чтении флешки, иногда, данные могут встать в FF во ВСЕЙ флеше.
Как такое происходит, не знаю, но сталкивался (DB642D).
Способов уменьшить влияние сторонних факторов (не вылечиться полностью) несколько.
Самый первый - повесить ресет флеши на ресет МК (соединить напрямую), использовать в цепи сброса резистор 10-20к, кондёр же на пару мкФ. Если линия связи длинная - у самой флешки повесить дополнительный кондёр 0,01-0,1 на землю. Последовательно с кнопкой поставить резистор на 100-500 ом. Это позволит избежать ресета при статической наводке или быстром жамканьи (дребезге).
Второй - не использовать в качестве сигнала CS PB0, то есть хардварный SS. Даже в режиме мастера он умудляется гадить… Лучше завести CS от сторонней лапы.
Ну и “терминаторы” - резисторы 51-510 ом последовательно в линии связи как можно ближе к соответствующему ВХОДУ.
До конца не излечивает, но ситуации, когда я коснулся платы при считывании лога, плата ресетнулась и вся флеш встала в FF на новых платах не повторялось.

А, ну и подтяжка внешняя на CS обязательна к питанию, причём лучше не более 20к.

smalltim

Со всей флешкой у меня ни разу проблем не было. Остальное в общем-то так и сделано, кроме терминаторов.

funtik26

господа извиняюсь что влез в вашу ветку, но может быть найдена альтернатива пиродатчикам- пришло сегодня письмо от ТЕРРАЭЛЕКТРОНИКИ, у них появились датчики положения на основе магнитов. может бть вам пригодится для стабилизациии и автопилотов

nmrz

если имеются ввиду это, то вряд-ли

альтернатива пиродатчикам есть, вопрос в только в том, есть ли интерес к автопилоту за 1000$ ?

ну и уже 2-й вопрос будет ли интерес возиться с таким автопилотом при том уровне интереса из первого вопроса 😁

mishaXXyears
funtik26:

господа извиняюсь что влез в вашу ветку, но может быть найдена альтернатива пиродатчикам- пришло сегодня письмо от ТЕРРАЭЛЕКТРОНИКИ, у них появились датчики положения на основе магнитов. может бть вам пригодится для стабилизациии и автопилотов

да и посмотрите внимательней, он измеряет угол поворота датчика внутри магнита!!!
т.е. магнит стоит жестко и датчик внутри вращается или наоборот, и как это применить к автопилоту?! получается необходимо делать специальный подвес для магнита (или датчика), при вращении модели, которотый должен оставаться к примеру всегда вертикально!

nmrz

ну в принципе, если использовать вместе с гировертикалью, однако о миниатюрности в таком случае речь уже не идет

Dikoy
smalltim:

Со всей флешкой у меня ни разу проблем не было. Остальное в общем-то так и сделано, кроме терминаторов.

А у меня вот было… Причём я специально потом считал все 8 Мб, там все байты были в FF. То есть полноценное стирание. Как такое могло произойти не знаю… Оно даже по времени не проходит - флешка несколько секунд стирается, а тут мгновенно в FF.
Терминаторы полезны для длинных линий, ну и от КЗ часто защищают. А основное их назначение гасить отражённую волну и, в идеале, согласовывать линию (но это очень сложно рассчитать). Для коротких линий (до 10см) они, в общем то, не нужны. Но лучше пусть будут.
Вообще, считается хорошим тоном ставить резисторы 510ом во все внешние интерфейсы. Причём и на передачу, и на приём.
Насчёт ресета, я твою схему не помню, но вроде там сделано как в кее? Это не есть хорошо. Я имел виду такой вариант (картинка). Он намного лучше.

Кстати у программаторов AS все линии имеют терминаторы, по этому конденсатор в этой цепочке не мешает ресету.

Для перестраху можно подключить программатор к верхнему контакту кнопки. тогда разрядный ток конденсатора будет ограничен R2.

smalltim

>Вообще, считается хорошим тоном ставить резисторы 510ом во все внешние интерфейсы. Причём и на передачу, и на приём.

Стоят везде, кроме SPI. Длина линий SPI от ядра до памяти ~0.5 см, от ядра до телеметрии ~ 3 см с учетом разъема.
На выходах PPM дополнительно стоят цепи, сглаживающие фронты импульсов.

>Насчёт ресета, я твою схему не помню, но вроде там сделано как в кее?

Как в кее. Проблем не приносило никогда.

baychi

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

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

Посему, по горячим следам несколько вопросов:

  1. Когда калибруется передатчик, АП запоминает нейтральное положение? Или только границы хода серв? (на картинке видны только границы).
  2. Как бы все-же упростить ввод корекции в положение пирометров? Ведь здесь, в режиме 2, я триммерами добился горизонтального полета, а при переключении в режим АП - тримирование естественно было проигнорированно.
  3. И самое главное - как совместить несовместимое - полная управляемость модели в режиме стабилизации (вплоть до перевернутого полета) и мягкого и плавного разворота в режиме возврата? Вроде для этого режим 2 вводился.
Dikoy
smalltim:

Как в кее. Проблем не приносило никогда.

Ага, а память сама по себе ресетилась? 😃
Приведённая выше схема - стандарт для цепей сброса ещё со времён рассыпухи и не только обеспечивает импульс сброса и надёжную 1, но ещё и давит ВЧ помехи на землю. И именно она будет держать ресет в 1 всегда и при любых шумах. Это не я придумал 😉 Проверено годами и применяется повсеместно. Кей - первый девайс в моей жизни, где цепь сброса так сделана (хотя она и не сброса на самом деле). Например, недавно писал нижний уровень для АСУшной железки, немецкого производства, там все кнопки так подключены (а их там под 40). И это правильно. В кее же тупо подтяжка с шунтом по вч… Конечно, в чипах сейчас свой вольтаж-детектор, и им не надо зажимать ресет пока не устаканится питание, но от RC цепочки отказываться рано. Пару лет назад целый тираж этих же немцев пошёл в корзину (перепайку) из-за того, что не запяли конденсатор сброса и чипы ресетились от каждого пука.
Впрочем, мне всё равно. Моё дело предложить…

smalltim
baychi:
  1. Когда калибруется передатчик, АП запоминает нейтральное положение? Или только границы хода серв? (на картинке видны только границы).
  2. Как бы все-же упростить ввод корекции в положение пирометров? Ведь здесь, в режиме 2, я триммерами добился горизонтального полета, а при переключении в режим АП - тримирование естественно было проигнорированно.
  3. И самое главное - как совместить несовместимое - полная управляемость модели в режиме стабилизации (вплоть до перевернутого полета) и мягкого и плавного разворота в режиме возврата? Вроде для этого режим 2 вводился.
  1. Да, конечно, запоминает.
  2. Можно вывести на кнопочку на автопилоте или дергание ручкой на 2м управляющем канале.
  3. Должно совмещаться на ура. Видимо, мы не до конца понимаем друг друга, а старая математика в старом пилоте дополнительно этому мешает 😃
Dikoy:

Ага, а память сама по себе ресетилась?

Ресет памяти к ресету проца подключен. Память ресетилась, когда нажимали кнопку ресет. Что непонятно?

foxtrot

Насчет неработающего ЖПС. Тим, если помнишь изначально присланный ЖПС модуль не хотел работать с телеметрией, мигал исправно, а телеметрия спутники не видела - вылечилось жпс-кикером. Были потом еще нестабильности, но прошивками 250-251-252 рассосались. Итория здесь:
стр. 65 rcopen.com/forum/f90/topic72390/2561 (в конце)
стр. 66 rcopen.com/forum/f90/topic72390/2601

Летом все летало нормально не падало, хотя иногда после первого моргания жпс молчал и запускался после перевтыкания питания телеметрии или камеры (точно не помню - по разному удавалось запустить).

Поехал на Урал в отпуск. Помнится пришлось побольше поплясать с перевтыканием питания, но в итоге все-таки заработало. Чес говоря не знаю точно как там внутри жпс шестеренки крутятся, но где то пробегало, что он якобы обновляет какой-то там журнал спутников что ли при включении, мож поэтому посчитал нормальным задержку с длительным стартом на новом месте. В сентябре вернулся в Ханты-Мансийск и забросил самоль в мастерскую. Собирать его было лень, да и погода не особо располагала.

Наконец на 31.01.2010 прогноз -14. Ну я накануне разгреб хлам, откопал самоль по частям, собрал. Осталось только на следующий день телеметрию проверить перед выходом в поле. 2-3 часа корячился с ней на балконе, где она нормально работала летом. ЖПС не стартует и все. Стандартно только мигал один раз при включении питания телеметрии. Попробовал его пнуть кикером - бестолку, кроме того в интсрукции к кикеру вроде говорилось, что сначала на экране должны пойти типа нормальные служебные строчки от ЖПС, а потом мусор. У меня сразу символьный мусор был. Попробовал разные прошивки 254, 261. В итоге в четвертом часу изматерившись плюнул на все и собрался в поле с тем, что есть, после 17:00 у нас уже сумерки. Погода правда по факту была -20, но после стольких трудов, стараний и нервов просто нужно было хоть как то полететь.

В поле (точнее по середине Иртыша) эта сволочь сама заработала и вроде сразу (притом небо было закрыто облаками). Перепроверил - стартует уверенно, при условии, что первым запитываю борт+телеметрию и только после начала регулярных подмигиваний - камеру с передатчиком. В обратном порядке не стартует (только один раз мигает при включении). Ну обрадовался, решил что просто видеопередатчик забивает жпс на старте, а потом ему не мешает. Отлетал, правда дальность видеосигнала была никакая - в некоторых ракурсах в 50 метрах не было приема вообще (0,5Вт @ 900Мгц), только в одном ракурсе при полете к мосту дальность до 300 метров получилась, разворачиваешь самолет боком - тут же пропадает. После того случая жизнь заставила попробовать сделать патч антенну. Вот в прошлые выходные испытал, претензий к ней нет (хотя уголки у элемента срезал на целый сантиметр больше…).

Но жпс больше никак не запускается, только один раз мигает при подаче питания и все. Температура на этот раз была -10…-12, небо ясное, штиль.

Я в ЖПС и в электронике профан, но подозреваю, что ему что-то мешает, может связано с переменой климата/времени года. Не даром ведь видеосвязь на морозе резко убавилась в дальности - мож мороз как-то на контуры и частоты там влияет? Мож фонит она на морозе активнее там, где ей не положено? Мож сам модуль жпс как-то по частоте съезжает? А мож просто зимой спутники по другим орбитам летают, т.е. не видны на нашей широте (поэтому в ракурсе на балконе не показывались)? Вот собирался в ближайшие выходные (нелетная погода будет) вытащить ЖПС и телеметрию из самолета и потестить их без видео в поле в чистых лаборатоных условиях, а потом уже если не заработает думал просить твоей помощи.

Но ты первый спросил 😃

Brandvik

Если один раз моргает, а потом тишина 100% это он не выловил спутники. Никакие кикеры тут не помогут. Попробуйте в поле подать питание тлько на на модуль ГПМ и посмотреть как скоро замигает… Мне тоже кажется что у вас видео передатчик фонит и забивает модуль.

Dronavt

Тоже иногда так хитрю, когда в квартире проверяю GPS. При старте отключаю видеопередатчик, дожидаюсь спутников, потом включаю и вуаля!

baychi
Brandvik:

Если один раз моргает, а потом тишина 100% это он не выловил спутники.

Не всегда. Есть еще эффект, типа моего GPS (смотри выше). Первый раз моргает стабильно, а потом молчит, как партизан, никаих посылок вообще, ни на какой скорости. Причем слать или не слать, решает в первый момент после подачи питания. А вот на каком основании решает - выяснить пока не удалось. Почему и просил Тимофея хоть как-то отображать факт прихода посылок на ожидаемой скорости (АП, как оказалось, показывает это дело зеленым индикатором).

Brandvik

А он что, что то шлет даже если не нашел ни одного спутника? Надо будет проверить. Да и в любом случае, если не моргает, значит нет спутников. (это конечно если речь идет о Locosys)

baychi
Brandvik:

А он что, что то шлет даже если не нашел ни одного спутника? Надо будет проверить.

Нормальный GPS всегда шлет посылки с координатами и состоянием (от 1 и более раз в секунду). Просто флажок, означающий наличие достоверных координат, равен ‘N’ (ни фига то есть). А в моем случае - смотрел на осциллографе - ничего не шлет вообще. Ровный логический уровень +3.3 В.

smalltim

Продолжаю подчищать хвосты перед релизом. Переписал общение автопилота и телеметрии, теперь спокойно обновляю экран телеметрии целиком 25 раз в секунду. Можно и чаще, но не нужно 😃
Анимация на экране абсолютно плавная, задержка авиагоризонта относительно картинки гораздо ниже чем раньше.
На синхронизацию, передачу туда-сюда, проверки контрольных сумм и распаковку данных у телеметрии и пилота уходит по ~3.5 мсек 25 раз в секунду. Скорость передачи пиковая 500 кбайт/сек, с учетом сжатия выходит ~2 Мбайт/сек.

На видео показано как плавно двигается авиагоризонт и показано мЫргание параметра “Съеденные миллиамперчасы” при превышении заданного в Контрольной Панели уровня в 1000мАч. Справа внизу над вольтажами видна пиктограмма батарейки, теряющей заряд со временем. Емкость батарейки, заданная в Контрольной Панели - 2200мАч.

vimeo.com/9538149

>А он что, что то шлет даже если не нашел ни одного спутника?

Да, любой ГПС модуль выстреливает NMEA строки, но, когда не может определить координаты, он в соответствующие поля отсебятину пишет и в отдельном поле строки выставляет флажок “данные не валидны”.