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

РД00
Dikoy:

Всё это симулируется в матлабе за час,…

Теперь отложите в сторону матлаб и возьмите в читальном зале учебник по ТАР и ТАУ. Пересказывать его я не буду.

РД00
smalltim:

Всё вышло в точности так, как задумано 😃 Выкладываю видео:

А я, честно говоря, не очень понял, что происходит 😃

а) индикатор уровня уходит в ноль, когда выключается передатчик (отличный практический результат !). Ну да, здесь вся диаграмма превращается в шум.
б) индикатор уровня реагирует на быстрые движения ручки элеронов (если это mode 2). Ну тоже понятно, тут гуляет вся диаграмма взад-вперед, может быть паразитная реакция, зависящая от алгоритма измерения длительности.
в) передатчик уходит под стол и там с ним что-то делают - уровень меняется от нуля до максимума. Эээ… а что делают ? 😃

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

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

smalltim
РД00:

в) передатчик уходит под стол и там с ним что-то делают - уровень меняется от нуля до максимума. Эээ… а что делают ? 😃

Ничего не делают вообще 😃

Антенна передатчика сложена, антенна приемника в клубке (с момента покупки не разматывалась 😃 ) поэтому 2-3 метра уже хватает для снижения качества сигнала, особенно если рядом долбит 700-милливаттный 2.4 ГГц передатчик видеосигнала.

Выложил всё с разъяснениями, кодом, картинками и более понятным видеороликом в блоге: rcopen.com/blogs/15368/4451

maloii

smalltim попробовал вашу новую прошивку. Работает всё, но есть замечания.

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

Кстати прикладываю фотки чего я напоял на ваших платках 😉

Плата с DIP корпусом по сити готова кроме барометрических датчиков. А на платку с маленькой мегой не могу найти LM1881M. Всё перерыл везде под заказ. Барометрических датчики нашел, скоро получу 😃.

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

smalltim

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

А дребезг сильный? Самолет при этом будет нормально управляться? По мне, само прыгание уровня сигнала должно говорить о том, что качество приема плохое.
В общем, напрашивается сглаживание количества “палочек” по времени и настройка величин требуемой точности ширины PPM для разного количества “палочек”.

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

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

>Кстати прикладываю фотки чего я напоял на ваших платках 😉

Вполне себе ничего, только видеосигнал надо будет в экранированном кабеле пускать 😃

>Есть ещё вопрос про температурный датчик, что то он у меня кажет больше, термометра дома нету но на глаз врёт, говорит что дома 30 градусов 😃 .

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

smalltim

>В общем, напрашивается сглаживание количества “палочек” по времени и настройка величин требуемой точности ширины PPM для разного количества “палочек”.

Сам себе отвечу 😃
На самом деле, сглаживать количество “палочек” по времени я б не хотел, лучше пусть мельтешат при помехах, нежели приходят и уходят плавно. А вот сделать, чтоб для отъема каждой палочки суммарная ошибка в ширине PPM увеличивалась не в 2, а, скажем, в 4, 8, 10, 100 раз - пожалуйста.
Надо только вот обдумать это неспешно. Например, ширина PPM импульсов может скакать сильно, и телеметрия покажет хреновый уровень приема, а сервы - штука инерционная, и дрожать и дергаться может совсем не очень страшно. Не вводить же симуляцию инерционности серв…

maloii

Аппаратура futaba12 FG, а приёмник multiplex rx-7-synth. Дёрганья умеренные были, по сути мало заметные. Возможн это из за того что в настройке канала его ширина была увеличена до 150%. Кстати тут тоже можна поиграться, дело в том что я сперва воткнул в канал элеронов, а у меня там 75% от ширины канала настроено, переключение функций телеметрии не срабутало, переткнул в канал поворота камеры, там как уже говорил 150%, сработало но и дергаться сильнее стало. Тоесть хочу сказать можно функцию калибровки ширины канала сделать и помнить её 😃.

Пока писал понял в чём проблема 😛. В отношении ширины канала, Вы её похоже забили жестко в программе.

smalltim

>Тоесть хочу сказать можно функцию калибровки ширины канала сделать и помнить её 😃.

Сделаем 😃

Dikoy
РД00:

Теперь отложите в сторону матлаб и возьмите в читальном зале учебник по ТАР и ТАУ. Пересказывать его я не буду.

Я пишу диссертацию на кафедре САУ. Успокойтесь.
Если есть конструктивные предложения - то есть с цифрами - в студию. Возможно, Вам удасца убедить меня и весь остальной мир, что 4 датчика мало.

Родил гениальную идею.
Зная GPS координату в момент включения автопилота, считать удаление от передатчика по прямой. ИМХО неплохое дополнение к уровню.
А передавать со сложеной антенной я бы не рекомендовал… Нагрузка на выходной каскад передатчика сильно подрастает…

smalltim:

Не вводить же симуляцию инерционности серв…

Не надо… Я этим сейчас занимаюсь (по воле непосредственного аллаха). Изврат тот ещё.
К тому же закон там нелинейный. Зависит от скорости и угловых ускорений - 20 грамм элерона * на рычаг сервы = нехилый момент при маневрах… 😃 В этих случаях дребезг вообще не окажет влияния.

smalltim:

>Тоесть хочу сказать можно функцию калибровки ширины канала сделать и помнить её 😃.

Сделаем 😃

Не только крайней ширины, но и люфта ручек у нулевого положения 😉
У меня так сделано, управление стало намного приятней.

2All
Заказал пирометры, ожидаются через месяц 😦 Код управления готов, осталось накропать чтение данных с пирометров и отоверсамплить родное АЦП МК, дабы мерить высоту.
На столе пилот спокойно добавляет свои, пока предварительно заданые, добавки к сигналу приёмника 😃

2smalltim
У Вас свободен SPI? А то у меня все интерфейсы вышли занятыми, кроме него.
Данные слать удобней в АНСИ или побайтно, в цифровом виде?
У Вас на высотомере используется оверсамплинг али иные способы улучшайзинга сигнала датчика?

maloii
smalltim:

есть в Митраконе: www.mitracon.ru/info/search.php?allsearch=lm1881

Спасибо 😃 , на обеде съездил купил LM`ки. Так же купил акселерометр 2 осевой LIS244AL. Стоит не дорого просто попробовать что это за зверь 😛 . Магазин очень понравился, сервис очень хороший. Покупка деталей заняла от силы 3 минуты, не то что в чипе бегать по отделам 😵 .

smalltim
Dikoy:

Данные слать удобней в АНСИ или побайтно, в цифровом виде?

Еще не знаю 😃

Dikoy:

У Вас на высотомере используется оверсамплинг али иные способы улучшайзинга сигнала датчика?

Используется 😃

maloii

Чем отличаются MPXV5004DP от MPXV5010DP? Просто вот выбираю купить, 5010 нет есть 5004 для схемы smalltim. Подойдёт ли он взамен MPXV5010DP

smalltim
maloii:

Чем отличаются MPXV5004DP от MPXV5010DP? Просто вот выбираю купить, 5010 нет есть 5004 для схемы smalltim. Подойдёт ли он взамен MPXV5010DP

Придется переделывать коэффициенты пересчета давления в высоту для высотомера

Dikoy
maloii:

Чем отличаются MPXV5004DP от MPXV5010DP? Просто вот выбираю купить, 5010 нет есть 5004 для схемы smalltim. Подойдёт ли он взамен MPXV5010DP

5010 мериет до 10 кПа, 5004 до 4 кПа.
Говоря про скорости, 5004 мериет до 400 км/ч, 5010 до… 😃

Еще не знаю 😃
Тогда так. Цифры (шрифты и почее) заданы в анси или массивами бит?
Например, число 5400 я могу передать как 0x15 0x18 или посимвольно, как 0x35 0x34 0x30 0x30.

Используется 😃
А кодом поделитесь? Точнее, кусочком с оверсамплингом. 😃
Выдирать из вашего ассемблерного листинга сложно… А так - смогу прицепить к проге как ассемблерную вставку.

maloii

а в корпусе с одной трубкой? типа MPXV5010GC6U

maloii

Вчера облетал телеметрию, но пока без датчиков. Всё никак их получить немогу 😦, так что показание высоты и т.д. можно не смотреть 😃

youtube.com/watch?v=BAdU72tPU8A[/url][url]http://y…

С подключением телеметрии заметил резкое ухудшение качество приёма приёмника. На видео даже явно видно ка дёргаются машинки, машинка которая камеру поворачивает резко поворачивалась на 90 градусов и сэйф мод постоянно врубался при отлёте на метров 100. До этого летал с тем же оборудованием но без телеметрии. Улетал чуть ли не за облака и ни одной помехи не поймал. Похоже по земле идут наводки, у кого какие советы есть?

Dikoy
maloii:

Похоже по земле идут наводки, у кого какие советы есть?

Какие антены используются для камеры и управления? Если штыри (проводочки) - расположить перепендикулятно.
Купить в магазине фербидов, либо в виде бусинок и надеть на провода, питающий и земляной, штучки по три. Либо впаять в разрыв питания, если оно в виде детальки.
Керамические кондёры, микрофарад на 5, по питанию.

А вообще странно… Такая зависимость говорит, что видеосигнал попадает в гармонику с частотой передатчика… 😃

maloii

До телеметрии этого небыло, и передатчик видео стоял! Грубо говоря летал также но без телеметрии. Тут только земля соединена. Антены стандартные штыревые на 2.4

smalltim
maloii:

До телеметрии этого небыло, и передатчик видео стоял! Грубо говоря летал также но без телеметрии. Тут только земля соединена. Антены стандартные штыревые на 2.4

У меня таких проблем никогда не было, хотя я пока не улетал с телеметрией дальше 500 метров…
По Вашим предыдущим фотографиям видно, что плата телеметрии длиннющими проводами подсоединена. А оно надо? Чем короче провода, тем меньше помех.
Ну, заодно можно экранировать плату телеметрии, Хотя я не экранировал нифига. Если плата уже в термоусадку упакована, можно обернуть ее фольгой и на землю 😃
А что с градусником? Не впаян? -39 градусов - это круто 😃

По делу:

  1. Ввел отслеживание ширины PPM в первые 15 секунд работы платы, во время инициализации. Всё, что нужно - двинуть ручку на передатчике в крайние положения на секунду.
    На экране в это время выводится текущая ширина PPM в миллисекундах и положение самой ручки в таком виде: <++++±--------->. Есть небольшое запаздывание на долю секунды, поскольку отображается “усредненное” по 8 PPM импульсам положение ручки.

  2. Увеличил пороги переключения режимов платы телеметрии. Теперь нужно вдвое дольше, примерно секунду, держать ручку передатчика в крайних положениях. Порог “крайнее положение” теперь составляет не 33% от интервала 1…2 мсек, а 20% от реального диапазона перемещения ручки.

  3. Загрубил показатель качества приема. Теперь каждая “палочка” с индикатора качества приема снимается при увеличении суммарной ошибки ширины PPM импульсов не в 2, а в 4 раза.

  4. Внимательно проверил код градусника. В коде всё чисто, а датчик ратиометрический, так что ищите проблемы на своей стороне.

Обновленная прошивка, видео и код - завтра днем в блоге.

Dikoy:

Цифры (шрифты и почее) заданы в анси или массивами бит?

Цифры - в ASCII

smalltim

Да, когда 4 кБ памяти Атмеги забились на 98.5%, понял, что надо что-то срочно придумывать. Свернул отрисовку на экран большим шрифтом в цикл, благо тайминги позволяют. Код уменьшился аж на 15%, так что место для сопряжения с другими платами и прочего функционала вновь появилось 😃

И еще одну вещь забыл упомянуть: если ручка передатчика при инициализации платы вообще не двигалась, то есть, плата не знает, где на самом деле крайние положения ручки ( в коде это выглядит как менее чем 0.25-миллисекундная разница между найденными минимальной и массимальной шириной PPM импульсов), то в конце инициализации за крайние положения ручки принимаются стандартные величины диапазона ширины PPM импульсов: 1 и 2 мсек. То есть, триммирование 0%, расходы 100%.