Телеметрия (часть 1)
Гировертикаль и прочие указатели горизонта мне ( пока наверное) не интересны. Хочу чисто датчик ускорения/скоростей… Стоит попробовать делать или это все бред?
>Скажите, можно ли травить печатку из блога, не планируются ли в связи с изменениями в прошивке изменения и в разводке?
Нет, изменений в разводке нет.
А можете объяснить проблему акселерометров, почему с помощью них нельзя сделать авиа горизонт? Мы же знаем исходную точку горизонта, при ускорении получаем некую цифру и всё время расчитываем наклон на основании данных ускорения. тоесть ускорились в одну сторону, показали наклоненную линию и запомнили данные потом в другую, вычетам данные из запомненных, получаем новую линию горизонта.
Так секунд за 10 мы накопим столько ошибок, что ППЦ.
Тут уже написали, дополню.
Можно взять два акселя, направить оси друг против друга и вычитать показания. Теоретически, постоянная составляющая g в этом случае выделится.
Такая система используется в стабилизации морского оборудования, НО. Аксели должны быть очень хорошие.
Доступные нам ADXL и прочие мураты, ST, фрискейлы имеют неслабый собственный шум. Одно время я пытался проапгрейдить компьютерную мышку, схема которой была опубликована в Радио, она была на акселе и реагировала на наклон. Два акселерометра ADXL202 довольно неплохо выделяли g, но аже будучи в покое, за счёт незавных шумов, стрелка мышки ползала по эрану… Математика улучшила ситуацию, но не вылечила полностью… 😦
Плохо думали. Пара вертикальных пирометров добавляется не для различения верха с низом, а для калибровки коэффициента передачи горизонтальных. И, соотв., усиления во всей петле обратной связи.
Ок, подумаем хорошо.
-
Представим, что автопилот у нас не ламповый, а таки на МК. Почему нельзя направить крылья вверх/вниз, замерить температуры и посчитать температуру уровня горизонта? Для особо тонких извращенцев - направив датчики по очереди в одну точку почучить различие в показаниях.
И то, это нужно только чтобы задать угол крена. -
Автопилот таки ламповый. На кой лях его калибровать, если он работает на равность засветок датчиков? Если не ставить задачу совершать крены, калибровка не нужна.
Передаточная функция цепи управления - два кубика и сумматор, а закон управления - простейший T=tk+b; Начальных условий не имеет!
Всё это симулируется в матлабе за час, с учётом примерной прикидки моментов инерции модели. И будет работать. Хоть и хуже, чем с прекалибровкой в случае МК. -
Ваша модель держится в воздухе сутками? Моя - массимум 30 минут. За это время температуры земли и, страшно сказать, космоса, сильно не уплывут. Не вижу необходимости в постоянной калибровке.
-
Поставиь можно много чего. И 20 датчиков по кругу. Но это пЫонЭрство… 😉
Гировертикаль и прочие указатели горизонта мне ( пока наверное) не интересны. Хочу чисто датчик ускорения/скоростей… Стоит попробовать делать или это все бред?
Чисто конкретно (в натуре): для датчика скорости (на самолете) вовсе даже нужен не акселерометр, а дифф. датчик давления с пвд. А если хочется еще и вариометр-то абсолютный датчик давления…
Все это есть у Smalltima в его системе телеметрии, выложено бесплатно, то есть даддом!
А ускорение, как известно: прирост скорости за единицу времени.
Вот это уже можно посчитать “программно”.😃
А если Вам таким способом хочется “сделать” дпла, то это-вряд ли 😦
Всё это симулируется в матлабе за час,…
Теперь отложите в сторону матлаб и возьмите в читальном зале учебник по ТАР и ТАУ. Пересказывать его я не буду.
Всё вышло в точности так, как задумано 😃 Выкладываю видео:
А я, честно говоря, не очень понял, что происходит 😃
а) индикатор уровня уходит в ноль, когда выключается передатчик (отличный практический результат !). Ну да, здесь вся диаграмма превращается в шум.
б) индикатор уровня реагирует на быстрые движения ручки элеронов (если это mode 2). Ну тоже понятно, тут гуляет вся диаграмма взад-вперед, может быть паразитная реакция, зависящая от алгоритма измерения длительности.
в) передатчик уходит под стол и там с ним что-то делают - уровень меняется от нуля до максимума. Эээ… а что делают ? 😃
А нельзя ли на таком же видео плавно покачать передатчик вокруг осей, чтобы менялась взаимная ориентация антенн вплоть до перпендикулярной ? Там будет плавно меняться уровень принимаемого сигнала (правда, неочевидным образом. За счет отражений от стен интерференционная картинка в комнате будет меняться, как аллаху угодно, но как-то будет), как будет себя вести индикатор ?
Просто сейчас видно только, что надежно отслеживается полное пропадание сигнала, а при этом на приемнике без failsafe меры принимать уже поздно.
в) передатчик уходит под стол и там с ним что-то делают - уровень меняется от нуля до максимума. Эээ… а что делают ? 😃
Ничего не делают вообще 😃
Антенна передатчика сложена, антенна приемника в клубке (с момента покупки не разматывалась 😃 ) поэтому 2-3 метра уже хватает для снижения качества сигнала, особенно если рядом долбит 700-милливаттный 2.4 ГГц передатчик видеосигнала.
Выложил всё с разъяснениями, кодом, картинками и более понятным видеороликом в блоге: rcopen.com/blogs/15368/4451
smalltim попробовал вашу новую прошивку. Работает всё, но есть замечания.
- Тяжело понять уровень сигнала, он просто прыгает при дребезги машинок.
- На крайнее отклонение Вы настроили функционал размера шрифтов и отключение показа данных телеметрии. Когда начинается дребезг на машинках эти функции срабатывают, получается что помимо прыганья уровня сигнала ещё и прыгает телеметрия, то крупно то мелко то вообще нету.
Кстати прикладываю фотки чего я напоял на ваших платках 😉
Плата с DIP корпусом по сити готова кроме барометрических датчиков. А на платку с маленькой мегой не могу найти LM1881M. Всё перерыл везде под заказ. Барометрических датчики нашел, скоро получу 😃.
Есть ещё вопрос про температурный датчик, что то он у меня кажет больше, термометра дома нету но на глаз врёт, говорит что дома 30 градусов 😃 .
>1. Тяжело понять уровень сигнала, он просто прыгает при дребезги машинок.
А дребезг сильный? Самолет при этом будет нормально управляться? По мне, само прыгание уровня сигнала должно говорить о том, что качество приема плохое.
В общем, напрашивается сглаживание количества “палочек” по времени и настройка величин требуемой точности ширины PPM для разного количества “палочек”.
>2. На крайнее отклонение Вы настроили функционал размера шрифтов и отключение показа данных телеметрии. Когда начинается дребезг на машинках эти функции срабатывают, получается что помимо прыганья уровня сигнала ещё и прыгает телеметрия, то крупно то мелко то вообще нету.
Ну это вообще ни в какие ворота. Что ж там у Вас за приемник? 😃
Я как ни старался, не смог добиться того, чтоб у меня PPM вштырило настолько, что аж режим вывода на экран стал меняться.
Не вопрос, могу увеличить требуемое время задержки в крайних положениях для переключения вывода.
>Кстати прикладываю фотки чего я напоял на ваших платках 😉
Вполне себе ничего, только видеосигнал надо будет в экранированном кабеле пускать 😃
>Есть ещё вопрос про температурный датчик, что то он у меня кажет больше, термометра дома нету но на глаз врёт, говорит что дома 30 градусов 😃 .
Вообще говоря, у меня тоже показывает на 7-10 градусов выше комнатной температуры, но у меня датчик стоит прямо на плате и “подогревается” стабилизатором.
С другой стороны, другой из участников форума, сделавший телеметрию по моей схеме и прошивке, отписал что термодатчик работает идеально.
В общем, я внимательно пересмотрю код и доки по датчику, вдруг чего-то переврал с коэффициентами, пока возился со всем остальным.
>В общем, напрашивается сглаживание количества “палочек” по времени и настройка величин требуемой точности ширины PPM для разного количества “палочек”.
Сам себе отвечу 😃
На самом деле, сглаживать количество “палочек” по времени я б не хотел, лучше пусть мельтешат при помехах, нежели приходят и уходят плавно. А вот сделать, чтоб для отъема каждой палочки суммарная ошибка в ширине PPM увеличивалась не в 2, а, скажем, в 4, 8, 10, 100 раз - пожалуйста.
Надо только вот обдумать это неспешно. Например, ширина PPM импульсов может скакать сильно, и телеметрия покажет хреновый уровень приема, а сервы - штука инерционная, и дрожать и дергаться может совсем не очень страшно. Не вводить же симуляцию инерционности серв…
>А на платку с маленькой мегой не могу найти LM1881M. Всё перерыл везде под заказ.
есть в Митраконе: www.mitracon.ru/info/search.php?allsearch=lm1881
Аппаратура futaba12 FG, а приёмник multiplex rx-7-synth. Дёрганья умеренные были, по сути мало заметные. Возможн это из за того что в настройке канала его ширина была увеличена до 150%. Кстати тут тоже можна поиграться, дело в том что я сперва воткнул в канал элеронов, а у меня там 75% от ширины канала настроено, переключение функций телеметрии не срабутало, переткнул в канал поворота камеры, там как уже говорил 150%, сработало но и дергаться сильнее стало. Тоесть хочу сказать можно функцию калибровки ширины канала сделать и помнить её 😃.
Пока писал понял в чём проблема 😛. В отношении ширины канала, Вы её похоже забили жестко в программе.
>Тоесть хочу сказать можно функцию калибровки ширины канала сделать и помнить её 😃.
Сделаем 😃
Теперь отложите в сторону матлаб и возьмите в читальном зале учебник по ТАР и ТАУ. Пересказывать его я не буду.
Я пишу диссертацию на кафедре САУ. Успокойтесь.
Если есть конструктивные предложения - то есть с цифрами - в студию. Возможно, Вам удасца убедить меня и весь остальной мир, что 4 датчика мало.
Родил гениальную идею.
Зная GPS координату в момент включения автопилота, считать удаление от передатчика по прямой. ИМХО неплохое дополнение к уровню.
А передавать со сложеной антенной я бы не рекомендовал… Нагрузка на выходной каскад передатчика сильно подрастает…
Не вводить же симуляцию инерционности серв…
Не надо… Я этим сейчас занимаюсь (по воле непосредственного аллаха). Изврат тот ещё.
К тому же закон там нелинейный. Зависит от скорости и угловых ускорений - 20 грамм элерона * на рычаг сервы = нехилый момент при маневрах… 😃 В этих случаях дребезг вообще не окажет влияния.
>Тоесть хочу сказать можно функцию калибровки ширины канала сделать и помнить её 😃.
Сделаем 😃
Не только крайней ширины, но и люфта ручек у нулевого положения 😉
У меня так сделано, управление стало намного приятней.
2All
Заказал пирометры, ожидаются через месяц 😦 Код управления готов, осталось накропать чтение данных с пирометров и отоверсамплить родное АЦП МК, дабы мерить высоту.
На столе пилот спокойно добавляет свои, пока предварительно заданые, добавки к сигналу приёмника 😃
2smalltim
У Вас свободен SPI? А то у меня все интерфейсы вышли занятыми, кроме него.
Данные слать удобней в АНСИ или побайтно, в цифровом виде?
У Вас на высотомере используется оверсамплинг али иные способы улучшайзинга сигнала датчика?
есть в Митраконе: www.mitracon.ru/info/search.php?allsearch=lm1881
Спасибо 😃 , на обеде съездил купил LM`ки. Так же купил акселерометр 2 осевой LIS244AL. Стоит не дорого просто попробовать что это за зверь 😛 . Магазин очень понравился, сервис очень хороший. Покупка деталей заняла от силы 3 минуты, не то что в чипе бегать по отделам 😵 .
Данные слать удобней в АНСИ или побайтно, в цифровом виде?
Еще не знаю 😃
У Вас на высотомере используется оверсамплинг али иные способы улучшайзинга сигнала датчика?
Используется 😃
Чем отличаются MPXV5004DP от MPXV5010DP? Просто вот выбираю купить, 5010 нет есть 5004 для схемы smalltim. Подойдёт ли он взамен MPXV5010DP
Чем отличаются MPXV5004DP от MPXV5010DP? Просто вот выбираю купить, 5010 нет есть 5004 для схемы smalltim. Подойдёт ли он взамен MPXV5010DP
Придется переделывать коэффициенты пересчета давления в высоту для высотомера
Чем отличаются MPXV5004DP от MPXV5010DP? Просто вот выбираю купить, 5010 нет есть 5004 для схемы smalltim. Подойдёт ли он взамен MPXV5010DP
5010 мериет до 10 кПа, 5004 до 4 кПа.
Говоря про скорости, 5004 мериет до 400 км/ч, 5010 до… 😃
Еще не знаю 😃
Тогда так. Цифры (шрифты и почее) заданы в анси или массивами бит?
Например, число 5400 я могу передать как 0x15 0x18 или посимвольно, как 0x35 0x34 0x30 0x30.
Используется 😃
А кодом поделитесь? Точнее, кусочком с оверсамплингом. 😃
Выдирать из вашего ассемблерного листинга сложно… А так - смогу прицепить к проге как ассемблерную вставку.
а в корпусе с одной трубкой? типа MPXV5010GC6U