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

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 строки, но, когда не может определить координаты, он в соответствующие поля отсебятину пишет и в отдельном поле строки выставляет флажок “данные не валидны”.

foxtrot
Brandvik:

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

Ну то, что мигание означает контакт со спутниками (как и обратное) объяснялось еще при покупке. Тоже в поле пробовал без видео - 5 минут так ни одного спутника не находилось, но были подозрения что отсутствие видео может негативно влиять на инициализацию телеметрии. Аффторитетно можете подсказать ей при иницииализации видео сигнал обязательно нужен, позже его нельзя подать?

Я раньше бывало сначала включал видео, потом телеметрию, через секунду отключал видео, дожидался моргания ЖПС и опять включал видео.

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

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

Еще один вопрос по жпс-кику. Как я писал, кик не помог на балконе, но при первом полете зимой в поле жпс сам заработал. Однако при gps-кике я обратил внимание, что нормальных строк от модуля не было вообще, а сразу был мусор… вы же писали (ссылка на пост rcopen.com/forum/f90/topic207270/539, не знаю почему форум только название темы отражает в ссылке):

На экране должен быть вид обычной телеметрии, только сверху наложены строки с GPS. Через 2-3 секунды после включения с этой прошивкой на экране вместо строк GPS должен появиться мусор.

Если после заливки в телеметрию прошивки gpskicker на экране не появляются строки GPS, то у модуля, определенно, проблемы, и Вы на своей стороне их не поправите. Если через 2-3 секунды работы с gpskicker’ом вместо строк не появляется мусор, то у модуля проблемы: выгорел RX или кончилась FLASH память.

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

Да, у меня желтый провод в дополнительной фишке жпс постоянно включен в телеметрию (фишки просто скреплены скотчем), это может влиять на жпс при обычной эксплуатации (я так понял он нужен только для перепрошивок?).