Smalltim OSD and autopilot (часть 1)
Тим ! А ты диверсити не планируешь ? Как фишку я рекомендовал бы сделать не двух, а трехканальный диверсити на штырь, средний и узкий патч (или ягги). Впереди планеты всей
Да чего уж мелочиться, поставьте сразу bester-ltd.ru/…/antenna-bester-parabolic-2400/ . Ловит хорошо (на 4.5км как на штырях рядом) и стоит недорого.
Правда модельными серво для наведения не отделаетесь.
А если серьезно, вполне хватит двух.
На 2.4 те же штыри обеспечивают дальность до 4км вполне надежно привысоте полета около 200м.
С направленными типа патча или аналогичным (по усилению) волновым каналом TV-сигнал на той же дальности наблюдался при снижении модели до 40м
Зеленый светодиод на новом и старом пилоте мигает как раз по приходу валидной строки(прошла проверку контрольной суммы, но не обязательно содержит валидный фикс) и горит всё время парсинга строки. Парсинг у меня мегабыстрый, но заметить вспышки вполне можно. Выглядит это всё как очереди из 4-5 вспышек 5 или 10 раз в секунду.
Хотел бы уточнить пару деталей. У меня с одним из GPS сложилась странная ситуация. После включения питания, индикатор на самом GPS зажигается всегда (на полсекунды), а вот зеленый индикатор автопилота, начинает отображать прием пакетов в одном случае из трех. Причем, если прием пакетов пошел - то GPS дальше будет работать нормально, без сбоев. А вот если нет - то хоть отключай/подключай GPS модуль (не отключая АП), хоть разъемы шевели - связи не будет. Но осцилограффе, на TX от GPS это выглядит, как нормальные посылки на 9600 в первом случае и полное отсутствие посылок (уровень +3.3 В) во втором.
Тимофей, у тебя какая логика инициализаци интерфейса GPS? Когда соотв. вход меги переводится на “чтение” (в АП и телеметрии)? И не может ли он по каким-то причинам перейти в режим “выход” и там остаться?
Вчера весь вечер шаманил, так и не понял в чем дело. Мне показалось, что результат зависит от степени “жесткости” включения питания (я разъемом включаю сразу все). Там вроде в первый момент еще сервы дергаются в крайние положения, и только через 100-200 мс в нейтраль. Может с этим связано? Если отсоединяю GPS от пилота, посылки появляются всегда.
Посмотрю. После подачи питания ноги Мег всегда стоят на входы.
>Тимофей, у тебя какая логика инициализаци интерфейса GPS?
Инициализировали USART, подцепили прерывание по приходу символа, слушаем. Больше никакой логики нет.
Сдается мне, это модуль GPS такой попался. Это 1-герцовый Локосис?
Сдается мне, это модуль GPS такой попался. Это 1-герцовый Локосис?
Нет, это уже, новый 5-Гц (из той первой партии АП).
Причем раньше всегда справно работал. Дурить лишь в последнее время начал.
Попробую сегодня от другой модели GPS подключить, но чувствую дело не в GPS.
Попробую сегодня от другой модели GPS подключить, но чувствую дело не в GPS.
Оказалось все-же - GPS модуль! Другой экземпляр запускается стабильно. А этот, как будто что-то ловит в момент включения и либо начинает выдавать посылки, либо засыпает.
Александр, попробуй его кикером пнуть еще разик.
По софту - вчера опять вылез непонятный глюк с повреждением данных во флеше: настройки и калибровки автопилота иногда портятся при перепрошивке автопилота и при ресете.
Ну, то есть, при частом ресете - когда по кнопке ресет секунд 5 долбишь хаотически. Понятное дело, что это идиотская ситуация, но надо быть готовым ко всему.
Похоже, если в тот момент, когда во флеш пишутся данные, приключается ресет, то данным песец.
Разбросал настройки по непересекающимся страницам флеша и трехкратно продублировал, и ввел проверку контрольной суммы, помогло 😃
Для логов контрольный байтик к каждой записи изначально писался, там всё хорошо.
>Тим ! А ты диверсити не планируешь ?
Не, есть же замечательные готовые системы.
Похоже, если в тот момент, когда во флеш пишутся данные, приключается ресет, то данным песец.
Есть такая фигня… Даже при чтении флешки, иногда, данные могут встать в FF во ВСЕЙ флеше.
Как такое происходит, не знаю, но сталкивался (DB642D).
Способов уменьшить влияние сторонних факторов (не вылечиться полностью) несколько.
Самый первый - повесить ресет флеши на ресет МК (соединить напрямую), использовать в цепи сброса резистор 10-20к, кондёр же на пару мкФ. Если линия связи длинная - у самой флешки повесить дополнительный кондёр 0,01-0,1 на землю. Последовательно с кнопкой поставить резистор на 100-500 ом. Это позволит избежать ресета при статической наводке или быстром жамканьи (дребезге).
Второй - не использовать в качестве сигнала CS PB0, то есть хардварный SS. Даже в режиме мастера он умудляется гадить… Лучше завести CS от сторонней лапы.
Ну и “терминаторы” - резисторы 51-510 ом последовательно в линии связи как можно ближе к соответствующему ВХОДУ.
До конца не излечивает, но ситуации, когда я коснулся платы при считывании лога, плата ресетнулась и вся флеш встала в FF на новых платах не повторялось.
А, ну и подтяжка внешняя на CS обязательна к питанию, причём лучше не более 20к.
Со всей флешкой у меня ни разу проблем не было. Остальное в общем-то так и сделано, кроме терминаторов.
господа извиняюсь что влез в вашу ветку, но может быть найдена альтернатива пиродатчикам- пришло сегодня письмо от ТЕРРАЭЛЕКТРОНИКИ, у них появились датчики положения на основе магнитов. может бть вам пригодится для стабилизациии и автопилотов
если имеются ввиду это, то вряд-ли
альтернатива пиродатчикам есть, вопрос в только в том, есть ли интерес к автопилоту за 1000$ ?
ну и уже 2-й вопрос будет ли интерес возиться с таким автопилотом при том уровне интереса из первого вопроса 😁
господа извиняюсь что влез в вашу ветку, но может быть найдена альтернатива пиродатчикам- пришло сегодня письмо от ТЕРРАЭЛЕКТРОНИКИ, у них появились датчики положения на основе магнитов. может бть вам пригодится для стабилизациии и автопилотов
да и посмотрите внимательней, он измеряет угол поворота датчика внутри магнита!!!
т.е. магнит стоит жестко и датчик внутри вращается или наоборот, и как это применить к автопилоту?! получается необходимо делать специальный подвес для магнита (или датчика), при вращении модели, которотый должен оставаться к примеру всегда вертикально!
ну в принципе, если использовать вместе с гировертикалью, однако о миниатюрности в таком случае речь уже не идет
Со всей флешкой у меня ни разу проблем не было. Остальное в общем-то так и сделано, кроме терминаторов.
А у меня вот было… Причём я специально потом считал все 8 Мб, там все байты были в FF. То есть полноценное стирание. Как такое могло произойти не знаю… Оно даже по времени не проходит - флешка несколько секунд стирается, а тут мгновенно в FF.
Терминаторы полезны для длинных линий, ну и от КЗ часто защищают. А основное их назначение гасить отражённую волну и, в идеале, согласовывать линию (но это очень сложно рассчитать). Для коротких линий (до 10см) они, в общем то, не нужны. Но лучше пусть будут.
Вообще, считается хорошим тоном ставить резисторы 510ом во все внешние интерфейсы. Причём и на передачу, и на приём.
Насчёт ресета, я твою схему не помню, но вроде там сделано как в кее? Это не есть хорошо. Я имел виду такой вариант (картинка). Он намного лучше.
Кстати у программаторов AS все линии имеют терминаторы, по этому конденсатор в этой цепочке не мешает ресету.
Для перестраху можно подключить программатор к верхнему контакту кнопки. тогда разрядный ток конденсатора будет ограничен R2.
>Вообще, считается хорошим тоном ставить резисторы 510ом во все внешние интерфейсы. Причём и на передачу, и на приём.
Стоят везде, кроме SPI. Длина линий SPI от ядра до памяти ~0.5 см, от ядра до телеметрии ~ 3 см с учетом разъема.
На выходах PPM дополнительно стоят цепи, сглаживающие фронты импульсов.
>Насчёт ресета, я твою схему не помню, но вроде там сделано как в кее?
Как в кее. Проблем не приносило никогда.
Сегодня попробывал полетать на Cularis-е с уменьшенными в несколько раз коэффициентами.
В результате только ухудшились возможности по управлению моделью в режиме стабилизиции (ход элеронов, РН и РВ просто уменьшился в несколько раз).
Видимо пирометры стояли немного криво, и только тримером “в упор” удалось компенсировать правый крен в режиме стабилизации.
Зато в режиме АП этот крен (видимо не учитывается) приводит к плавной правой спирали снижения. Намного более плавной, чем в прошлый раз, но это все равно штопор.
Пытался поправить крен пирометров физически, подкладывая кусочк ипластика под плату, но на третьей попытке такого тримирования, при выходе из очередной спирали, сломалось крыло … и тему Cularis-а можно закрыть. 😃
Обидно не за сломанное крыло - слишком разбитая была модель (держатели крыльев склеяны в нескольких местах) и это должно было рано или поздно произойти, обидно что не удалось подобрать настройки.
Посему, по горячим следам несколько вопросов:
- Когда калибруется передатчик, АП запоминает нейтральное положение? Или только границы хода серв? (на картинке видны только границы).
- Как бы все-же упростить ввод корекции в положение пирометров? Ведь здесь, в режиме 2, я триммерами добился горизонтального полета, а при переключении в режим АП - тримирование естественно было проигнорированно.
- И самое главное - как совместить несовместимое - полная управляемость модели в режиме стабилизации (вплоть до перевернутого полета) и мягкого и плавного разворота в режиме возврата? Вроде для этого режим 2 вводился.
Как в кее. Проблем не приносило никогда.
Ага, а память сама по себе ресетилась? 😃
Приведённая выше схема - стандарт для цепей сброса ещё со времён рассыпухи и не только обеспечивает импульс сброса и надёжную 1, но ещё и давит ВЧ помехи на землю. И именно она будет держать ресет в 1 всегда и при любых шумах. Это не я придумал 😉 Проверено годами и применяется повсеместно. Кей - первый девайс в моей жизни, где цепь сброса так сделана (хотя она и не сброса на самом деле). Например, недавно писал нижний уровень для АСУшной железки, немецкого производства, там все кнопки так подключены (а их там под 40). И это правильно. В кее же тупо подтяжка с шунтом по вч… Конечно, в чипах сейчас свой вольтаж-детектор, и им не надо зажимать ресет пока не устаканится питание, но от RC цепочки отказываться рано. Пару лет назад целый тираж этих же немцев пошёл в корзину (перепайку) из-за того, что не запяли конденсатор сброса и чипы ресетились от каждого пука.
Впрочем, мне всё равно. Моё дело предложить…
- Когда калибруется передатчик, АП запоминает нейтральное положение? Или только границы хода серв? (на картинке видны только границы).
- Как бы все-же упростить ввод корекции в положение пирометров? Ведь здесь, в режиме 2, я триммерами добился горизонтального полета, а при переключении в режим АП - тримирование естественно было проигнорированно.
- И самое главное - как совместить несовместимое - полная управляемость модели в режиме стабилизации (вплоть до перевернутого полета) и мягкого и плавного разворота в режиме возврата? Вроде для этого режим 2 вводился.
- Да, конечно, запоминает.
- Можно вывести на кнопочку на автопилоте или дергание ручкой на 2м управляющем канале.
- Должно совмещаться на ура. Видимо, мы не до конца понимаем друг друга, а старая математика в старом пилоте дополнительно этому мешает 😃
Ага, а память сама по себе ресетилась?
Ресет памяти к ресету проца подключен. Память ресетилась, когда нажимали кнопку ресет. Что непонятно?
Насчет неработающего ЖПС. Тим, если помнишь изначально присланный ЖПС модуль не хотел работать с телеметрией, мигал исправно, а телеметрия спутники не видела - вылечилось жпс-кикером. Были потом еще нестабильности, но прошивками 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, небо ясное, штиль.
Я в ЖПС и в электронике профан, но подозреваю, что ему что-то мешает, может связано с переменой климата/времени года. Не даром ведь видеосвязь на морозе резко убавилась в дальности - мож мороз как-то на контуры и частоты там влияет? Мож фонит она на морозе активнее там, где ей не положено? Мож сам модуль жпс как-то по частоте съезжает? А мож просто зимой спутники по другим орбитам летают, т.е. не видны на нашей широте (поэтому в ракурсе на балконе не показывались)? Вот собирался в ближайшие выходные (нелетная погода будет) вытащить ЖПС и телеметрию из самолета и потестить их без видео в поле в чистых лаборатоных условиях, а потом уже если не заработает думал просить твоей помощи.
Но ты первый спросил 😃
Если один раз моргает, а потом тишина 100% это он не выловил спутники. Никакие кикеры тут не помогут. Попробуйте в поле подать питание тлько на на модуль ГПМ и посмотреть как скоро замигает… Мне тоже кажется что у вас видео передатчик фонит и забивает модуль.
Тоже иногда так хитрю, когда в квартире проверяю GPS. При старте отключаю видеопередатчик, дожидаюсь спутников, потом включаю и вуаля!
Если один раз моргает, а потом тишина 100% это он не выловил спутники.
Не всегда. Есть еще эффект, типа моего GPS (смотри выше). Первый раз моргает стабильно, а потом молчит, как партизан, никаих посылок вообще, ни на какой скорости. Причем слать или не слать, решает в первый момент после подачи питания. А вот на каком основании решает - выяснить пока не удалось. Почему и просил Тимофея хоть как-то отображать факт прихода посылок на ожидаемой скорости (АП, как оказалось, показывает это дело зеленым индикатором).
А он что, что то шлет даже если не нашел ни одного спутника? Надо будет проверить. Да и в любом случае, если не моргает, значит нет спутников. (это конечно если речь идет о Locosys)
А он что, что то шлет даже если не нашел ни одного спутника? Надо будет проверить.
Нормальный GPS всегда шлет посылки с координатами и состоянием (от 1 и более раз в секунду). Просто флажок, означающий наличие достоверных координат, равен ‘N’ (ни фига то есть). А в моем случае - смотрел на осциллографе - ничего не шлет вообще. Ровный логический уровень +3.3 В.
Продолжаю подчищать хвосты перед релизом. Переписал общение автопилота и телеметрии, теперь спокойно обновляю экран телеметрии целиком 25 раз в секунду. Можно и чаще, но не нужно 😃
Анимация на экране абсолютно плавная, задержка авиагоризонта относительно картинки гораздо ниже чем раньше.
На синхронизацию, передачу туда-сюда, проверки контрольных сумм и распаковку данных у телеметрии и пилота уходит по ~3.5 мсек 25 раз в секунду. Скорость передачи пиковая 500 кбайт/сек, с учетом сжатия выходит ~2 Мбайт/сек.
На видео показано как плавно двигается авиагоризонт и показано мЫргание параметра “Съеденные миллиамперчасы” при превышении заданного в Контрольной Панели уровня в 1000мАч. Справа внизу над вольтажами видна пиктограмма батарейки, теряющей заряд со временем. Емкость батарейки, заданная в Контрольной Панели - 2200мАч.
>А он что, что то шлет даже если не нашел ни одного спутника?
Да, любой ГПС модуль выстреливает NMEA строки, но, когда не может определить координаты, он в соответствующие поля отсебятину пишет и в отдельном поле строки выставляет флажок “данные не валидны”.