Телеметрия (часть 1)

Dikoy
Artie:

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

Чип мега 128, но унеё в оперативе ещё FAT для флешки сидит.

Так у меня так же сделано! 😃 Определяю строку, считаю запятые, распихиваю символы по буферу. Код только выглядит громоздким, а так там всего 3 вложеных свитча, которые довольно шустро выполняются. Зато по окончанию приёма пакета у меня в буфере готовые данные, там, где надо. Только флажок монирорь и всё 😉

А на 51-х я сейчас вынужден работать 😵 Програмлю всякое древнее барахло, которое попьяне закупили дяденьки-начальники…

smalltim

>Единственный потенциальный минус у такого подхода - это если мы допускаем возможность подключения совершенно произвольного приемника, из которого может выпасть “неожиданный” пакет, хэш для которого совпадет с одним из известных.

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

ReGet

smalltim, только что закончил собирать телеметрию с вашей прошивкой и схемой (только разводку платы немного изменил под детали, что были). Заработало сразу, еще раз благодарю за проделанную работу!

Датчики не цеплял никакие, в среду подключу к своему самолету и проверю на помехи. На этих выходных уже разнес приемник rc от передатчика видео и камеру поставил под крыло, прямо рядом с передатчиком.
Если после всех этих манипуляций помехи от телеметрии не исчезнут - не знаю что и делать тогда… просто мистика получится

smalltim
ReGet:

smalltim, только что закончил собирать телеметрию с вашей прошивкой и схемой (только разводку платы немного изменил под детали, что были). Заработало сразу, еще раз благодарю за проделанную работу!

Датчики не цеплял никакие, в среду подключу к своему самолету и проверю на помехи. На этих выходных уже разнес приемник rc от передатчика видео и камеру поставил под крыло, прямо рядом с передатчиком.
Если после всех этих манипуляций помехи от телеметрии не исчезнут - не знаю что и делать тогда… просто мистика получится

Да, выглядит оно сурово 😃 Пожалуйста, наставьте блокировочных конденсаторов по 0.1 … 1 мкф поближе к микросхемам между питанием и землей. У меня в схеме этого нет 😦

А я основательно перетряхнул код на предмет оптимальности и компактности и полностью доделал всё, что касается GPS. Ура! Сегодня, как детеныша спать уложу, первое подключение GPS модуля! 😃
А с завтрашнего вечера четыре дня халявы, буду отлаживать GPS и обновлять блог 😃

maloii

Ещё совет разместить телеметрию подальше от приёмника, как писал не ближе 25 см. У меня осталась ещё одна платка от smalltim, но без датчиков давления, думою потестить её. Просто долго игрался в поисках устранения помех и наконец то победил.

Ещё раз обращаю внимание.

Провода жестко скрутить спиралью.
приемник rc от передатчика не ближе 25 см от видео передатчика.

В таком варианте даже кольца не нужны. Притом сперва полетал со скрученными проводами но приёмник лежал в носу прям под передатчиком, резко увеличилась дальность, чем без скрученных. А как разнес приемник и передатчик, на 2 км отлетал и небыло помех, дальше не решаюсь пока 😃

ReGet

Окей, в этот раз буду пробовать с разнесенным как можно дальше приемником.
Какие провода скручивать, от серв или питание телеметрии, камеры, передатчика?

maloii
ReGet:

Окей, в этот раз буду пробовать с разнесенным как можно дальше приемником.
Какие провода скручивать, от серв или питание телеметрии, камеры, передатчика?

Провода серв, вобщем те провода которые входят в приёмник. Кстати и антену приёмника тоже подальше.

Artie
smalltim:

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

Не-а, не побъется. Негде ему биться. 😁
Я даже чексам не проверяю, бо на единицах (а даже и на десятках) сантиметров длины и единицах килобод скорости для возникновения битовой ошибки нужна ТАКАЯ помеха, от которой будет уже не до точности ОМП; - модель бы спасти…
С другой стороны, если не контролировать валидность извлеченных из строки данных, то куда бы ни попал этот гипотетический сбой - в заголовок, или в поле данных, - результат будет строго одинаковым.

Впрочем, я ведь никого не уговариваю… Просто поделился технологией.

Dikoy
Artie:

Не-а, не побъется. Негде ему биться. 😁
Я даже чексам не проверяю,

+1
Тем более, что чексам там хреновая и нормальной защиты всё равно не обеспечивает…

ReGet

Поставил блокировочные конденсаторы как надо, все исходящие провода вокруг феррита обмотал, засунул в фюзеляж подальше от приемника.
И ситуация всё таже - передатчик rc со сложеной антенной лежит в 15 метрах, все управляется без помех. Включаю телеметрию - все сервы и двигатель начинают дрыгаться по сторонам на весь свой ход. При таких фокусах никакой речи о полете и быть не может 😵

Пипец, целый день потратил и опять впустую, завязываю нафиг с этим делом… надо купить какуюнить готовую плату у буржуев и не парить мозг 😠

maloii
ReGet:

Поставил блокировочные конденсаторы как надо, все исходящие провода вокруг феррита обмотал, засунул в фюзеляж подальше от приемника.
И ситуация всё таже - передатчик rc со сложеной антенной лежит в 15 метрах, все управляется без помех. Включаю телеметрию - все сервы и двигатель начинают дрыгаться по сторонам на весь свой ход. При таких фокусах никакой речи о полете и быть не может 😵

Пипец, целый день потратил и опять впустую, завязываю нафиг с этим делом… надо купить какуюнить готовую плату у буржуев и не парить мозг 😠

Сегодня и вчера облётывал OSD. Вобщем помехи фигня не понятная 😃 ,но в целом помехи с OSD увеличелись, но ненамного. Всётаки наводки какие то есть, но с разнесёным приёмником их стало существенно мало. Отлетаю также далеко 1 - 1,5 км вроди нармуль, но с OSD порой подёргивает самолёт, терпимо, но подёргивает. Думою если заэкронировать то будет все ок.

Думою основная проблема от AV передатчика, сильное поле от него, нужно приёмник покруче покупать и подальще от пердатчика ставить.

ReGet

Отключил физически провода от ходовой батареи и от приемника, лишился указателя заряда батареи и качества сигнала. Но на земле помехи пропали.
Полетел в небо до 370 метров от земли - тоже без проблем, гораздо приятнее летать, зная высоту и скорость. В целом остался доволен, все-таки не зря собирал и прикручивал к самолету. 😒

В воскресенье попробую полетать в других местах, если ветра не будет.

maloii:

Думою основная проблема от AV передатчика, сильное поле от него, нужно приёмник покруче покупать и подальще от пердатчика ставить.

При включении AV-передатчика ни одной помехи не проскакивает. Начиаются помехи только при выводе букв от телеметрии

smalltim

Меня вчера-позавчера тоже немного потряхивало, но я никаких экранирований не делал, никаких блокировочных конденсаторов тоже, и плата телеметрии у меня в 10 сантиметрах от приемника. Видеопередатчик - в 15 сантиметрах.

smalltim

Вот, наделал скриншотов с видео. Видео пока не обрабатывал, больно много получилось.
Трясти начинало порывами по доле секунды раз в минуту-две на высотах больше 400м. Но иногда случалось и прямо под носом, на высоте 50 и удалении в 100 метров. Впрочем, я не напрягаюсь по этому поводу. Если в 100 метрах от полетов идет 3 охрененных ЛЭП, от которых даже в сухую погоду идет 50-герцовый треск, а в 5 километрах - военная РЛС московского округа ПВО, то лучше не жаловаться на помехи 😃

Летал без вида из камеры - у ноутбука днем плохо виден экран, а очков у меня пока нет. 600 метров - максимум, что смогли выдержать глаза, дальше просто нереально, самолета просто не видно. Можно было бы полетать и выше, ориентируясь по картинке с ноутбука, но местность не очень знакомая, а единственнный GPS модуль, который можно было подключить к телеметрии, оказался мертвеньким 😦

smalltim

>Отключил физически провода от ходовой батареи и от приемника, лишился указателя заряда батареи и качества сигнала. Но на земле помехи пропали.
>Полетел в небо до 370 метров от земли - тоже без проблем

Та-а-ак… Вот это уже интересно.

Стало быть, вариант с помехой от кварца и прочей метафизикой отбрасываем. Никуда эта гипотетическая помеха от кварца не делась при отключении от ходовой батареи, однако у Вас всё стало замечательно.
Что остается? Питание и/или связь с батареей.

Гуру, выручайте, пожалуйста! Соединение с батареей сделано следующим образом: Земля и 3 входа, каждый через резисторный делитель 2кОм/1кОм идет на свой вход АЦП, при этом последний вход, то есть, с последней банки, то есть, 3.6*3 В, идет на линейный стабилизатор 5В для питания платы телеметрии.
Нужно ли ставить конденсаторы со входов резисторных делителей на землю?
В части питания, я так понимаю, нужно сделать длину проводника (и соответствующей земли) от батареи к стабилизатору питания минимальной, и поставить правильных конденсаторов, поскольку потребление платы телеметрии _сильно неравномерно_ - часть кадра процессор спит, часть активно считает.

Кстати, чисто по питанию, помимо помехи с частотой 50 Гц, вызванной частотой следования кадров, плата телеметрии теоретически может генерировать помехи с частотой 15.625 кГц ( частота строчной развертки PAL), поскольку в течение строчного интервала гашения процессор спит, а во время отрисовки строки - не спит.
Как именно можно загасить такие помехи, если, как у ReGet, они влияют на качество приема?

ReGet
smalltim:

Стало быть, вариант с помехой от кварца и прочей метафизикой отбрасываем. Никуда эта гипотетическая помеха от кварца не делась при отключении от ходовой батареи, однако у Вас всё стало замечательно.

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

smalltim:

Соединение с батареей сделано следующим образом: Земля и 3 входа, каждый через резисторный делитель 2кОм/1кОм идет на свой вход АЦП, при этом последний вход, то есть, с последней банки, то есть, 3.6*3 В, идет на линейный стабилизатор 5В для питания платы телеметрии.

Замечу, что у меня питание видео-части (и телеметрии в часности) сделано от отдельной батареи. То есть с ходовой батареей связаны только земля напрямую и плюс через делитель на вход АЦП.

Я не спец в электронике, но на уровне предположений мне кажется, что в момент включения-выключения вывода PD7 (выдает уровень белого в видео) идет какая-то просадка по питанию и оно “шумит”. В итоге при подключении к ходовой батарее даже одного провода земли начинаются заметные помехи 😵
Может и вправду какой конденсатор спасительный можно попробовать?

maloii

Давайте перечислим приёмники и видео передатчики и как питаем все, вобщем для полноты картины.

У меня.
Приёмник rc: Multiplex Rx-7
Передатчик AV: 2,4 GHz 1 ват
Питание приёмника и видео раздельно.

smalltim

У меня

  • приемник Hitec Electron 6 на 35 МГц
  • передатчик 2.4 ГГц 700мВт
  • питание телеметрии, камеры и передатчика от ходовой батареи
ReGet

У меня

  • приемник Hitec Electron 6 на 35 МГц
  • передатчик 2.4 ГГц 1-2 Вт, точно не помню. Кушает 300 мА от 12 вольт
  • питание телеметрии, камеры и передатчика отдельно от ходовой батареи
smalltim

>В итоге при подключении к ходовой батарее даже одного провода земли начинаются заметные помехи

Значит, он работает как антенна.

maloii

Сегодня игрался c ICP на отстойном приёмнике, который дрожить по всякому поводу и заметил следующее, подключаю плату к приёмнику через ICP, тишина, потом AV соединяю с телеметрией и серва начинает дрожать, питание к телеметрии не подсоединино! Вобщем наводки от PAL сигнала.