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

smalltim

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

Первое, что приходит в голову - датчик тока на ходовую батарею. Его надо делать, естественно, не на плате телеметрии, а выносным.
Что еще?

ReGet
smalltim:

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

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

Кстати, свободно еще два канала АЦП. Пока не утрясли схему и я не начал разводить плату, можно набрать пожеланий на эти два канала.

Датчик тока ходовой батареии с подсчетом израсходованых мА - было бы очень хорошо.

Кстати, раз переделываете плату, почему заодно не хотите перейти на новый МК, атмега168, например? Раз делается новая плата по уму и на долго, то почему бы не иметь в запасе в 2 раза больше памяти и заодно 20 МГц, кто знает какие идеи родятся через неделю/месяц. Как мне извесно, чипы полностью совместимы 😃

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:

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

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