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

Vad64
smalltim:

Автопилот - это система с регулируемой отрицательной обратной связью, так что тщательно настраивать средние положения и т.д. не надо.
Даже если и встанут рули раком при его включении, изменение ориентации аппарата заставит автопилот тут же выровнять самик и поддерживать нужный курс и ориентацию.
И даже инвертирование какого-либо из каналов - пофигу. Математике всё равно, какая ширина PPM приводит к крену в нужную сторону. Математика подберет PPM так, чтобы крен всегда шел в нужную сторону.
Ошибаюсь?

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

Что касается пирометров, как я понимаю, в данном случае достаточно иметь 2 пары датчиков и 2 канала АЦП, как в FMA Co-pilot.

smalltim - успехов!

smalltim

И когда же я успел утомить высочество?
Не надо огрызаться на попытки помочь, не будет “экивок”. Впорочем, дело твоё. Ставь хоть 10 пирометров и мерий ацп дискретные выходы. Только в уравнении всего 4 элемента, а остальные, как ни крути, сокращаются.

Мы, наверное, всё-таки о разных вещах говорим. Я - о вот таких пирометрах: www.platan.ru/shop/www_17.html
Стоят не 30 баксов + доставка из-за бугра, как датчики от Melexis, а 59 российских рублей, имеют аналоговый выход и требуют ОУ и АЦП.
По 2 датчика включаются мостом на один ОУ, дальше - на вход АЦП.

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

Про попытки помочь - ценю, без оговорок. На днях закупаю USB key и окунаюсь с головой.

Мне кажется, что датчик тока на сенсоре Холла так устроен - в момент подачи питания он автокалибруется на 0 (от температуры/внешнего магнитного поля как минимум), а потом уже показывает дэльту от авто калиброванного нуля.
Так что ничего удивительного что съелось 500 мА. Наверняка автокалибровка датчика съест и более.

Не, этот датчик тока ратиометрический, так что если питать его от того же, чем питается АЦП, при нулевом токе у него будет строго VCC/2 (ну, плюс/минус заявленная производителем погрешность) на выходе. Засада в том, что на плате распаян резисторный делитель 1кОм:2кОм, так что просто вычитать из показаний АЦП VCC/(2*3) не катит - резисторы имеют погрешность. На другом экземпляре платы, например, будет другое соотношение сопротивлений, и плата всегда будет добавлять 0.5А.
Поэтому я запоминаю, что присутствует на входе АЦП при старте телеметрии (в этот момент лучше не шевелить сервами и не грутить мотор), и потом просто вычитаю это из текущих показаний. Работает на ура 😃.

Artie
smalltim:

Но давайте не будем делать универсальную летающую теле-кофеварку с изменяемой геометрией и сушкой белья!

Дык, я ведь никого не уговариваю. Я предложил очередное свое уже [почти] готовое решение, на мой взгляд красивое (архитектурно) и с изрядным потенциалом по наращиванию функциональности. Если оная функциональность и красота никому не нужны, - так это дело хозяйское… - Буду есть сам, “в одну харю”. 😛

PS: А максимум расходов автопилоту знать все-таки нужно. Потому как они обычно ограничиваются не способностью РМ воспринимать канальные импульсы, а механикой рычагов, тяг, кабанчиков и собственно управляющих плоскостей.
Brandvik это хорошо определил: “чтобы не сломать самолет”.

Vad64
smalltim:

Мы, наверное, всё-таки о разных вещах говорим. Я - о вот таких пирометрах: www.platan.ru/shop/www_17.html

Я полагаю, эти датчики не подойдут. Они предназначены для охранных систем и нормально работают только с переменной составляющей сигнала. CO-pilot использует не пирометры, а термопары (thermopile). Вот они выдают постоянную составляющую и их можно включить встречно-последовательно до ОУ для идеальной балансировки. В пирометрах же встроены истоковые повторители и такое включение не получится. Ну и, конечно, главное - эти пьзопирометры не выдают постоянную составляющую (чувствительность обычно нормируется на 1 Гц переменном сигнале). Так что надо или быстро качать крыльями или ставить перед датчиками механические обтюраторы.

Dikoy
smalltim:

Мы, наверное, всё-таки о разных вещах говорим. Я - о вот таких пирометрах: www.platan.ru/shop/www_17.html
Стоят не 30 баксов + доставка из-за бугра, как датчики от Melexis, а 59 российских рублей, имеют аналоговый выход и требуют ОУ и АЦП.
По 2 датчика включаются мостом на один ОУ, дальше - на вход АЦП.

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

Датчик за 59р, это IRA-E710ST0? Что-то аналогового выхода я у него не нашёл…
Зато нашёл тестовый стенд: search.murata.co.jp/…/CatalogshowpageAction.do?sDi…
Как видно, на датчик дают импульсный сигнал, ибо постоянку он мерить не умеет. Что подтверждает вот эта схема на нём: www.masterkit.ru/main/scheme.php?num=723 Видно, что собран пороговый детектор. Постоянки там быть не может хотя-бы из-за наличия С2.
Иными словами, Ваша схема будет показывать изменение температуры. Но как только она выровняется, неважно на каком значении, датчик покажет ноль.
Буду рад, если окажусь не прав.
Пути обхода этого я представляю, но на практике ещё не применял.
Чтобы датчики работали мостом, надо выдержать равность их характеристик. Или вводить крутилки для выставления смещения в ноль в идеальных условиях. Калибровка цифрой не прокатит, т.к. в нормальной работе датчики в разные стороны и не в одинаковых условиях.

Мои мелексисы стОят 500р в москве и выдают температуру в цифре. Вот только купить их частнику проблема 😦 Если есть знакомое ЮЛ, которое переведёт безнал, - проблем нет, от 2 штук продают.
Кроме того, никто не мешает, обкатав алгоритм на заведомо рабочих пирометрах мелексис, пробовать удешевлять установкой обычных датчиков. Это логично. Но сразу с обычными датчиками можно погрязнуть в проблемах, источник которых совершенно не ясен.
Я покупал через контору, так что цена доставки пофиг.

Про 3 пары. Допустим, самолёт стоит и нижний датчик смотрит на тень. Взлетел - тени уже нет. И всё калибровка идёт лесом 😃
Пирогоризонт работает на принципе равности сигналов всех 4 датчиков. В идеале, ему вообще калибровка не нужна, но я пока этого не добился… Появится время, буду пробовать.
Сейчас калибруюсь повернув самолёт боком.

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

Vad64:

Я полагаю, эти датчики не подойдут. Они предназначены для охранных систем и нормально работают только с переменной составляющей сигнала. CO-pilot использует не пирометры, а термопары (thermopile). Вот они выдают постоянную составляющую и их можно включить встречно-последовательно до ОУ для идеальной балансировки. В пирометрах же встроены истоковые повторители и такое включение не получится. Ну и, конечно, главное - эти пьзопирометры не выдают постоянную составляющую (чувствительность обычно нормируется на 1 Гц переменном сигнале). Так что надо или быстро качать крыльями или ставить перед датчиками механические обтюраторы.

Вот и я о том же!
Можно коммутировать питание датчиков. По идее, сняв питание и замкнув выводы питания и выход, мы разрядим внутренний капацитор. Далее, подаём питание и считаем dU/dt. По сути равнозначно механическому чопперу.
Но это пока домыслы 😃

Vad64
Dikoy:

Мои мелексисы стОят 500р в москве и выдают температуру в цифре.

Дешевле купить готовый блок сенсоров fmadirect.com/products.htm?cat=20&nid=6, чем 4 датчика по 500р.

belkinnn

Мужики нужна помощь, собрал вашу схемку работает отлично но хотелось бы самому написать прогу только на С так как я не знаток асма.
Так вот все бы хорошо только не получается выводить данные, подскажите как осуществляется вывод символов.Буду благадарен.

Artie
belkinnn:

Мужики нужна помощь, собрал вашу схемку работает отлично но хотелось бы самому написать прогу только на С так как я не знаток асма.
Так вот все бы хорошо только не получается выводить данные, подскажите как осуществляется вывод символов.Буду благадарен.

Если под “прогой” подразумевается фирмвер для телеметрического модуля, то на сях для него писать не получится, - оно и на ассемблере еле успевает…
А символы выводятся программно, подтягивая “в нужных местах” видеосигнал до уровня белого. Выучите асм, посмотрите исходники - и сразу все поймете. - Не “бином Ньютона”. 😃

belkinnn
Artie:

Если под “прогой” подразумевается фирмвер для телеметрического модуля, то на сях для него писать не получится, - оно и на ассемблере еле успевает…
А символы выводятся программно, подтягивая “в нужных местах” видеосигнал до уровня белого. Выучите асм, посмотрите исходники - и сразу все поймете. - Не “бином Ньютона”. 😃

Теория понятна.Линии да квадраты получаются но как только начинаю работать с символами все растягивается как будто опирация присвоения выполняется милисикунд 10.

serj
Artie:

Если под “прогой” подразумевается фирмвер для телеметрического модуля, то на сях для него писать не получится, - оно и на ассемблере еле успевает…
А символы выводятся программно, подтягивая “в нужных местах” видеосигнал до уровня белого. Выучите асм, посмотрите исходники - и сразу все поймете. - Не “бином Ньютона”. 😃

Ну почему ж не получится- надо просто представлять во что компилируется написаннаяя тобой инструкция, и все… есть много успешных проектов, сделанных на С… в данной ветке ссылки на них давались. Ваш покорный слуга сделал это в 2000г на AT90S4433 кристалле.
Если не успеваете программно, делайте аппаратно, например SPI используя…

Dikoy
Vad64:

Не смешите. Питание и 2 аналоговых выхода
paparazzi.enac.fr/wiki/…/Other_Infrared_Sensors

И того 43$ за модуль с аналоговым выходом, у которого ещё резюки надо перепаивать под себя или 25*4 баксов за 4 полностью цифровых калиброваных сенсора, выдающих уже температуру (причём видимую и воздуха) с возможностью ифровой выставки. Я лично радикальной разницы не вижу 😃

всем
В выходные игрался с EZ0. Странный он… В цифре я его так и не запустил ( история любви тут: forum.ixbt.com/topic.cgi?id=48:7924-5#152 ), пришлось оценивать работу по вольтметру, подключённому к аналоговому выходу.

Во-первых, очень широкий угол обзора. Если держать его на вытянутой руке, он всё равно чувствует тело и из-за этого завирает. Приходится ещё чуть отклонять от себя. Но тут другой косяк - при наклонах выше ~15 градусов сонар теряет землю и показывает бесконечность…
Ещё непрятная особенность - он достаточно тормозной. Если резко водить вверх/вниз, начинает бесится. Если направлять на быстро подходящего человека, не успевает сообразить что происходит - стрелка вольтметра начинает истерично метаться. Если человек подходит медленно, всё ок.

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

Artie
serj:

Ну почему ж не получится- надо просто представлять во что компилируется написаннаяя тобой инструкция, и все… есть много успешных проектов, сделанных на С… в данной ветке ссылки на них давались. Ваш покорный слуга сделал это в 2000г на AT90S4433 кристалле.
Если не успеваете программно, делайте аппаратно, например SPI используя…

Может, конечно, я чего не понимаю, но:

  1. Разговор о конкретном проекте, в котором SPI не используется. А на программную реализацию скорости - в обрез.
  2. Человек сказал, что ассемблера не знает. Как при этом можно “представлять” результаты компилляции - не представляю.
  3. Посмотрите на то, как Тимофей свернул развернутый прежде цикл вывода строки (в данном конкретном проекте). - Если Вам удастся написать на сях конструкцию, дающую в результате код, сравнимый по времни выполнения, - обязуюсь всю оставшуюся жизнь называть Вас сишным гуру ! 😃

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

belkinnn:

Теория понятна.Линии да квадраты получаются но как только начинаю работать с символами все растягивается как будто опирация присвоения выполняется милисикунд 10.

Не видя Вашего кода, сказать что-то о причинах оного - затруднительно.
Общий ответ: “Вероятно, где-то ошибка”. 😎

На самом деле, у атмела достаточно удачный ассемблер (хоть и не без кривостей), так что при общем понимании “физики процесса” много времени на его изучение у Вас не уйдет; - за пару-тройку дней освоитесь.

Dikoy
Artie:
  1. Посмотрите на то, как Тимофей свернул развернутый прежде цикл вывода строки (в данном конкретном проекте). - Если Вам удастся написать на сях конструкцию, дающую в результате код, сравнимый по времни выполнения, - обязуюсь всю оставшуюся жизнь называть Вас сишным гуру ! 😃

Я если я вставлю в си ассемблерную втавку мне дадут удостоверение гуру? Хотя бы синенькое… 😃

На самом деле, можно и на Си сделать. Зависит от компилятора и камня. Ничто не мешает работать в Си побитно, сводя математику к двоичной логике. Трактуемый компилятором код будет мало отличаться от рукописного асма, но переносимость сохранится. Просто мне частенько раньше приходилось писать на Си “быстрые” прерывания. Уверяю, это возможно 😉 Просто нужно хорошо знать компилятор.

Artie
Dikoy:

Я если я вставлю в си ассемблерную втавку мне дадут удостоверение гуру? Хотя бы синенькое… 😃

Найн. Ни, беленького, ни серенького. 😛
Задача была озвучена, как “написать прогу только на С так как я не знаток асма”.

На самом деле, можно и на Си сделать. Зависит от компилятора и камня. Ничто не мешает работать в Си побитно, сводя математику к двоичной логике. Трактуемый компилятором код будет мало отличаться от рукописного асма, но переносимость сохранится.

ДЫк, корочки гуры ждут своего владельца 😉. Цикл был опубликован в этой же ветке чуть ранее (где-то в конце мая)

serj
Artie:

Может, конечно, я чего не понимаю, но:

  1. Разговор о конкретном проекте, в котором SPI не используется. А на программную реализацию скорости - в обрез.
  2. Человек сказал, что ассемблера не знает. Как при этом можно “представлять” результаты компилляции - не представляю.
  3. Посмотрите на то, как Тимофей свернул развернутый прежде цикл вывода строки (в данном конкретном проекте). - Если Вам удастся написать на сях конструкцию, дающую в результате код, сравнимый по времни выполнения, - обязуюсь всю оставшуюся жизнь называть Вас сишным гуру ! 😃

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

Я не имел в виду именно то, что я написал… повторить один в один-нереально, но и не нужно…
Вообще , имхо, обычно быстрее написать свою программу, чем разбираться досконально в чужой- из нее полезно взять идею 😃

На гуру даже претендовать не буду, пускай этим Dikoy занимается- он все пытается с другими чем-нибудь померяться 😁
в 8 кб впихнуть можно много, а не влезет- взять такой же по ногам кристалл с большей памятью…
Кстати, мой первый вариант видеотелеметрии был написан с асемблерными вставками, потом я их заменил сями:)

smalltim

Чипыдип угрюмый ацтой. Взяли еще 3 дня на обработку заказа по термодатчикам. А деньги уже уплочены 😦

Кстстаи, господа, можете помочь советом?
Я пока всё-таки больше склоняюсь к отслеживанию горизонта, нежели к гироскопам/акселерометрам. И математика проще, и цена значительно ниже.
Что если вместо пирометров взять ИК фотодиоды, только, разумеется, на нужный диапазон ИК? Что скажете, жизнеспособный вариант?

smalltim

Уфф. Я уж было испугался - думал, не бывает гнезд с шагом 2.54 на плату.
Вот они: www.chip-dip.ru/catalog/show/1342.aspx?st=1&mode=p…

Такие гнезда будут стоять на второй плате для соединения с первой и для механической прочности бутерброда из двух плат. Детальки на второй плате - вовнутрь бутерброда.
Соединение - по разъемам SPI, питания, GPS, PPM. Как раз по углам, кстати 😃

belkinnn

Да вы были правы асемблер не такой уж и замудреный как кажется с первого взгляда.Я вроде практически разобрался с исходником.И написал на си только через isp miso.А как на ваш взгляда в чем плюсы и минусы этих двух методов.Как мне кажется порт miso на контроллере всеравно свободен, почему бы его не использовать?

Artie
belkinnn:

Я вроде практически разобрался с исходником.И написал на си только через isp miso.А как на ваш взгляда в чем плюсы и минусы этих двух методов.Как мне кажется порт miso на контроллере всеравно свободен, почему бы его не использовать?

Не знаю у кого как, а лично у меня сейчас по spi обмениваются данными “вычислятель” с “отображателем”.
У Тимофея по тому же интерфейсу будет подключаться автопилот…

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

Artie
smalltim:

Что если вместо пирометров взять ИК фотодиоды, только, разумеется, на нужный диапазон ИК? Что скажете, жизнеспособный вариант?

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

  • Совсем не подарю, но “на ответственное хранение” 😉 - отдам.
Vad64

Насчет ИК фотодиодов. Нужен диапазон дальнего ИК излучения 8-14 мкм. В ближнем ИК солнце все будет портить. Фотодиодов и фоторезисторов (без охлаждения), работающих в дальнем ИК, насколько мне известно, не существует. Есть пирометры, болометры, термопары.

Насчет гироскопов. По моим данным, даже на относительно хороших датчиках (ADIS16100) следует ожидать дрейфа 1-2 градуса в минуту. Для системы стабилизации (автогоризонта) это многовато. Придется как-то компенсировать дрейф за счет использования акселерометров или еще как-то. Я лично пока отчетливо не представляю, как это делать. Система автопилота меня тоже интересует, но я все более склоняюсь к использованию головы от FMA direct, тем более что ее цена уже вполне адекватная, по-моему.

smalltim

Поискал всяческие thermopile датчики. Кто их только не делает, блин. Hahamatsu, Perkin Elmer, Heimann, Dexter, Melexis, HLPlanar, наших закрытых заводов штуки три. И цены - зачастую просто смешные. Но как купить всё это здесь, без ожидания в 3 недели и без доставки из-за бугра - жопа. 😦
В общем, готовые модули от FMA рулят, но это неспортивно и доставка опять же 😦
И по маркировке, кстати, видно, что FMA используют нифига не Melexis, это и по цене видно.
Буду бомбить Сеть дальше.