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

Brandvik

Ага, с новым процем можно будет замахнуться на великого нашего Вильема Автопилота по принципу подруливания как у того же ОСД от ранжа 😉

ReGet

Вот пара скринов со вчерашнего видео

Солнце почти село

Посадка при боковом ветре, реальное направление полета - вдоль линии берега и даже правее (см. курс по GPS)

Ну и заодно конкурс - угадай место 😁

Artie
smalltim:

>Не очень понял почему не меняется, в случае с ветром выходит все тоже самое. Стрелка будет показывать, что самолет летит не туда, куда на самом деле и база будет точно также не 30 градусов левее, чем нужно.

Сейчас у Вас позиция базы на миникарте зависит только от расположения самика. Будет зависеть и от расположения и от курса. Это надо?

Надо, надо.
Без этого приходится изображать из себя не только пилота, но и штурмана, а это - лишний напряг.
… Я ведь сразу советовал так сделать, но благородный дон отказался. 😉

Могу поделиться готовым кодом (asm) отрисовки 36 (sic !) пеленгов на “картушке” 3х3. Требует 13 символов знакогенератора на каждый значок (у меня их два - “база” и “север”. В случае совпадения, первый, как более значимый, перекрывает второй; - может и не так красиво, зато более функционально).

А вот это, чесслово, пофигу. Ну какие там токи? 100мА вместе с тем. что жрет GPS модуль? Какие там потери? Ну, упадет на 7805 от 4 до 7.6 вольт в зависимость от заряда батареи, хоть он LDO, хоть он обычный рабоче-крестьянский. Будет на нем в виде тепла 0.4…0.8 ватт выделяться. Да и хрен с ним. Или нет?

“Или нет”. 😎
Здесь дело не столько в потерях, идущих в тепло (бо они будут одинаковыми), сколько в минимальном напряжении на входе, при котором стабилизатор еще будет чего-то стабилизировать.
У меня, например, аппарат летает от двухбаночной полимерки, так что под конец полета напряжение на ней падает существенно ниже 7В. Соответственно, “обычный” 7805 при этом просаживал и выходное напряжение, а LDO (Low DropOut) регулятор кормит “мозги” до отсечки двигателя…

Brandvik

А почему база сзади? вы ее перелетели на посадке? Я так понимаю при направлении на базу кружок должен быть перед стрелкой?

ReGet
Brandvik:

А почему база сзади? вы ее перелетели на посадке? Я так понимаю при направлении на базу кружок должен быть перед стрелкой?

Перелетел, причем почти на пол километра, а аккумулятора на второй заход уже не было

smalltim

Reget, а что с показаниями скорости по барометрическому датчику, почеу нули?
И где расстояние до базы? Оно должно выводиться справа от миникарты.
Широта и долгота не выводятся - Вы тестовую прошивку взяли?

Про атмега 168 - сейчас вот изучаю. Отличий на самом деле много, названия регистров, разводка как минимум. Не хочется в отлаженный код заново лезть.
Потом, руления сервами в этом чипе абсолютно точно не будет, просто попытка уложить в один кристалл все эти увязанные на время процессы - PPM, вывод на экран, GPS, опрос АЦП - уже потребовало поизвращаться, а если еще и сервами рулить в каком-то фоновом относительно вывода на экран режиме - это будет мегаизвращение.
Будет отдельная плата со своим кодом, своими датчиками горизонта, рулением сервами, и т.д. Связанная с первой платой и с GPS. Ну, если у меня еще терпения хватит этим заниматься.

Про карту - ну, если все подряд хотят направление на базу стрелкой относительно текущего курса, тогда ок, убедили. Лично для себя я оставлю текущий вариант 😃
Всего-то надо взять DX, DY по земле, высчитать, что больше, высчитать, в каком октанте находимся, и прогнать через таблицу арктангенсов.
Получить азимут на базу. Вычесть из направления текущего курса.
Скорее всего, даже меньше кода, чем сейчас получится.
24 положений стрелки, как сейчас, хватит?
Блин, а если у вас вертолет? Или самик во встречном ветре завис над землей и скорость относительно земли нулевая, а значит, с GPS вместо направления курса приходит хаотический песец? Как будете определять, куда лететь и где ваще самик относительно базы? Да, согласен, сейчас не очень привычно, но информативнее и надежнее!

Про LDO - убедили. Про две банки в батарее я как-то даже и не подумал, сам летаю на 3 банках всегда. Если есть LDO с цоколевкой как у 7805, я и менять собственно ничего не буду. Хотите - ставьте LDO 😃

Про датчики тока и миллиампер-часы - вывел входы ADC6 и ADC7 наружу, там посмотрим, что можно будет к ним прилепить. Ну и заодно подправил схему в соответствии с комментами:

Brandvik

Я вот не пойму в чем спор о картах и базах? Я предлагаю зафиксировать стрелку и перемещать базу(кружочек) вокруг нее. Нагладно видно с какой стороны база и куда поворачивать. Вы ведь в кабине, вам негогда отвлекаться, глянул быстро, ага база справа от курса, поворот вправо, пока курс не укажет на базу. Неужели так не проще? + сэкономите пару строк кода избавившись от лишних манипуляций по вращению стрелки. В случае ветра доворачиваете на базу по курсору и все. Зачем вращать стрелку компаса и плюс вокруг нее базу? Что бы вы не вращали получите приведение к ветру если предположить что вы не видите земли (тоесть нет ориентиров ктоме как ОСД) траектория полета будет следующей извиняйте за халтуру 😃
О пока писал уже ответ дали.

Блин, а если у вас вертолет? Или самик во встречном ветре завис над землей и скорость относительно земли нулевая, а значит, с GPS вместо направления курса приходит хаотический песец? Как будете определять, куда лететь и где ваще самик относительно базы? Да, согласен, сейчас не очень привычно, но информативнее и надежнее!

Ага, я кажется вник в сокральную мысль. Но это скорее всего для вертолетов больше подойдет, а зависнуть против ветра, так в такой ветер лучше вообще далеко и незнакомых местах не летать.

Artie

Кстати, Тимофею на заметку:

Это - один из вариантов платы нашего “основоположника” - товарища Шеререра.
Предлагаю взять на вооружение его вариант размещения разъемов: Г-образных, в два ряда, а если места нехватает - то и в две стороны… Ну и вся прочая компоновка у него тоже ничего.

… А вот дублирование групп контактов для программирования я рекомендую не повторять (если Вы таки послушаетесь стариков 😒 и заложите место под второй кристалл). Лучше вывести общую шину SPI с “разорванным” SCK: через один разъем можно будет шить оба кристалла (программатором имени Саши Редчука - прямо сразу, а всеми прочими - через хвостик-переходничок с одним переключателем). - Так и место экономится, и отладка ускоряется.

smalltim

Честное слово, мне пофигу, что изображать. Хотите относительно текущего курса - пожалуйста. Сделаем, куда деваться.

>Без этого приходится изображать из себя не только пилота, но и штурмана, а это - лишний напряг.
>… Я ведь сразу советовал так сделать, но благородный дон отказался.

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

>Неужели так не проще? + сэкономите пару строк кода избавившись от лишних манипуляций по вращению стрелки.

Вы будете смеяться, но нет, так не проще 😃

>Кстати, Тимофею на заметку

Конечно, я это изучил и облизнулся.
Пока к разводке не приступил, но в целом всё будет близко к тому, что делает Шеререр. Только кристалл будет на плате таки один. Второй кристалл - на второй плате.

Artie
smalltim:

Ну и заодно подправил схему в соответствии с комментами:

Тогда уж дорисуйте сразу делители на оставшиеся входы АЦП (строго такие же, как от батареи).
Номиналы резисторов сейчас неважны (множно написать “0” и “DNP”), но какие-то ставить все равно придется, - так пусть для них будет место на плате…

smalltim

Кстати, про плату - хорошая тема. Какую плату разводить-то?
Кто - целевая аудитория “проекта” ?
На четырех слоях всё развести очень легко и просто, но сможет ли кто-нибудь повторить конструкцию?
Заказать четырехслоек и торговать ими? Или даже готовыми девайсами? Недешево выйдет, да и заниматься торговлей не очень хочется.
Разводить под лазерно-утюговую технологию? Тогда куча ограничений…

>Тогда уж дорисуйте сразу делители на оставшиеся входы АЦП (строго такие же, как от батареи).
Ок.

Artie
smalltim:

>Без этого приходится изображать из себя не только пилота, но и штурмана, а это - лишний напряг.
>… Я ведь сразу советовал так сделать, но благородный дон отказался.

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

Прошу пардону, не хотел обидеть…
Просто я начал именно с “компаса”, но обнаружил, что это неудобно. - Как выясняется, не один я такой урод. 😁

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

Ну, у него секретный самолет, оптовые партии, и вообще все очень серьезно… 😉
А мы - так, в игрушки играемся.

Конечно, я это изучил и облизнулся.
Пока к разводке не приступил, но в целом всё будет близко к тому, что делает Шеререр. Только кристалл будет на плате таки один. Второй кристалл - на второй плате.

Ok.
Тогда могу порекомендовать вывести SPI (он же - сразу и для программирования) на такой же разъем на краю платы, как и все прочие, вкупе с землей и питанием…
Захотим - собственно гребенку паять не будем, прицепим к площадкам пять проводков, зашъем через них кристалл и отпаяем.
Захотим - поставим Г-образные пины и прицепим к ним вторую плату через шлейфик.
Захотим - пины ставим прямые, и “автопилотную” плату ставим вторым этажом. (Для такого варианта, кстати, хорошо бы сделать два отверстия под штырьки по углам на прямо противоположном краю платы; через них может даже ничего не идти (хотя можно там пустить дополнительную землю и/или питание), но главное их назначение - механическое крепление второго этажа).

PS: Уже увидев следующее сообщение:
По-моему, там все хорошо раскладывается на два слоя, так что четырехслойка не нужна.
Разводить лучше сразу под нормальную ДПП с металлизацией трюхольных и переходных отверстий (стараясь, впрочем, елико возможно, минимизировать количество VIA.) В таком варианте можно будет заказать и нормальную плату (причем, стоит ее изготовление будет не очень дорого), ну а те, у кого доступа к производству не будет, смогут легко воспроизвести все это на ЛУТ…

ReGet
smalltim:

Reget, а что с показаниями скорости по барометрическому датчику, почеу нули?
И где расстояние до базы? Оно должно выводиться справа от миникарты.
Широта и долгота не выводятся - Вы тестовую прошивку взяли?

Чудеса фотошопа 😒

Кстати, про плату - хорошая тема. Какую плату разводить-то?

Я бы предпочел сделать плату самостоятельно. Делаю фоторезистом, заморочек меньше, чем с ЛУТ и платы после 2-3 раз получаются отличного качества. В чип-дипе покупается текстолит с нанесенным фоторезистом, там же хлорное железо, в хоз. маге покупается “крот” для прочистки труб и УФ-лампа, прозрачная пленка для принтера в любом комп. маге. Вся процедура изотовления платы занимает 40 минут, при этом 35 - ожидание

dmk

To smalltim:
Я вижу Вы используете датчик абсолютного давления для измерения высоты. Не смотрел еще Ваш код, не знаю как Вы получаете с него шаг в 1 метр, только оверсемплингом или еще чем. Не хотите ли в новой плате вычесть лишнее напряжение(до давления уровня моря например) операционником? Если не ошибаюсь, где то в начале темы это уже обсуждалось.

smalltim

> Не смотрел еще Ваш код, не знаю как Вы получаете с него шаг в 1 метр, только оверсемплингом или еще чем.

Оверсэмплинг, по 64 выборки с АЦП суммируются, получается красивое полное 2-байтное число. И плюс “плавающее окно” с усреднением результата по 8 таким пачкам по 64 выборки.
Так делается для барометрических датчиков. Для температуры и вольтажа делается только оверсэмплинг - 64 выборки.

>Не хотите ли в новой плате вычесть лишнее напряжение(до давления уровня моря например) операционником?
А зачем усложнять то, что и так прекрасно работает? Уровень давления на нулевой высоте запоминается в памяти в момент старта телеметрии и впоследствии просто вычитается из текущих показаний.

3apw
smalltim:

Про LDO - убедили. Про две банки в батарее я как-то даже и не подумал, сам летаю на 3 банках всегда. Если есть LDO с цоколевкой как у 7805, я и менять собственно ничего не буду. Хотите - ставьте LDO 😃

Про датчики тока и миллиампер-часы - вывел входы ADC6 и ADC7 наружу, там посмотрим, что можно будет к ним прилепить. Ну и заодно подправил схему в соответствии с комментами:

IMHO, можно сделать следующие дополнения по принципиальной схеме OSD:

  • для защиты от переполюсовки на вход питания блока поставить диод
  • для защиты от ВЧ по входу цепи питания блока поставить П-образный LC фильтр или что-то типа BLM21
  • питание IC2 сделать через отдельный LDO стабилизатор или хотя бы через RC фильтр
  • на входы IC1 (контакты 15-17, 30) поставить блокировочные конденсаторы на 100 пФ
Artie
3apw:

[*]питание IC2 сделать через отдельный LDO стабилизатор или хотя бы через RC фильтр

Если не секрет, зачем ?

ReGet
smalltim:

Reget, а что с показаниями скорости по барометрическому датчику, почеу нули?

Пропустил вопрос, а он кстати очень интересный. Потому что на протяжении всего полета были нули и только иногда значение плавно поднималось до нормальной величины 😃

3apw
Artie:

Если не секрет, зачем ?

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

smalltim

>для защиты от переполюсовки на вход питания блока поставить диод

А вроде бы у 7805 защита от переполюсовки есть, или нет?
Я не из вредности спрашиваю, просто обжегшись на молоке, дую на воду. С диодом не станет хуже?
Какие-то дополнительные фильтры подавления ВЧ помех по питанию из-за диода надо прикручивать?

>для защиты от ВЧ по входу цепи питания блока поставить П-образный LC фильтр или что-то типа BLM21

Подскажите, пожалуйста, номиналы!

>питание IC2 сделать через отдельный LDO стабилизатор или хотя бы через RC фильтр

Не знаю, LM 1881 простая как бревно, неужели простого блокировочного конденсатора не хватит? Он там уже есть.
Если ставить R, то какого номинала? 4.7 Ом пойдет?

>на входы IC1 (контакты 15-17, 30) поставить блокировочные конденсаторы на 100 пФ

Они ж сконфигурированы они как входы, точно надо ставить блокировочные?

>Пропустил вопрос, а он кстати очень интересный. Потому что на протяжении всего полета были нули и только иногда значение плавно поднималось до нормальной величины

Когда плата телеметрии стартует, она в течение первых 15 секунд каждые три секунды обнуляет показания датчиков скорости и высоты.
Как это делается: текущие показания на входах АЦП (разумеется, сглаженные, прооверсэмпленные) запоминаются в памяти и впоследствии всегда вычитаются из текущих уровней на АЦП когда самик уже в полете.
Поэтому если в течение первых 15 секунд в ПВД задувал сильный ветер, давление воздуха в ПВД в это время принимается за условие нулевой скорости. И если впоследствии самик летит не быстрее этого ветра, то на указателе скорости - нули. Если летит быстрее, то на указателе скорости - реальная скорость минус скорость ветра, задувавшего в ПВД в момент старта платы телеметрии.

Другие варианты глюка - неконтакт, повреждение датчика, сильные просадки по питанию. Последнее маловероятно, т к датчики давления ратиометрические и питаются одним и напряжением с АЦП атмеги.

На этих выходных полетать не удалось - жуткий мерзкий моросящий дождь, зря только изика и два чемодана авиа-пожитков на дачу свозил 😦

Artie
3apw:

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

Гм. По моему глубокому ымху (а также и по практическому опыту), видеосигнал здесь - это явно не тот “аналог”, для которого стоит городить отдельное питание. LM’ка у нас получает это самое видео только по входу, собственное потребление у нее совершенно смешное, и вообще, с функциональной точки зрения, она - значительно более “цифровая”, нежели “аналоговая”…
Плюс к этому, наложение титров делается все равно напрямую с ног самого главного “генератора шума” - однокристаллки, так что никакие земли тут (в рамках разумного усложнения схемы) не отвяжешь.

Короче, ничего сложнее блокировочного конденсатора специально для LM’ки делать не нужно, а самый большой источник “звезд и полос” на картинке (если не вспоминать с какой камеры мы вообще ее получаем) - это шумы по питанию видеопередатчика, а также (в случае питания телеметрии от ходового аккумулятора) - от работы ESC’а.
От последнего значительно лучше спасает Low ESR конденсатор большой емкости по входу питания (в идеале - после дросселька, но я ограничился лежачим резистором в единицы ом), однако в габариты предполагаемой Тимофеем платы такая дура вписывается явно плохо, так что лучше пусть особо желающие повесят его самостоятельно…