Телеметрия (часть 1)
Спасибо, буду разбираться с прерываниями, я ведь только учюсь, а настройки мне codeVisionAVR сгенерила
Про пирометры: я и раньше скептически к ним относился - а ну как поведет себя самолетик если будет пролетать мимо деревьев и домов? Крениться? 😃
А добила меня мысль о том, что в один из пирометров может заглянуть солнышко. Человек, который эту систему пользовал, подтверждает: в таком случае начинаются опаньки.
Про пирометры: я и раньше скептически к ним относился - а ну как поведет себя самолетик если будет пролетать мимо деревьев и домов? Крениться? 😃
Самолет можно будет сбивать зеркальцем, как жители Сиракуз римские корабли.
Тут где-то обсуждается тема про цифровые магнитные компасы. Что если поставить трехосевой датчик, откалибровать его перед запуском, и он будет выяснять положение самолета относительно вектора Магнитного Поля Земли в данный момент полета. А от вектора МПЗ через калибровочные углы переходим к положению относительно горизонта. Ну и выравниваем, чтобы он был горизонтален. А азимутальную составляющую результатов компаса можно выводить на OSD 😃
Что если поставить трехосевой датчик, откалибровать его перед запуском, и он будет выяснять положение самолета относительно вектора Магнитного Поля Земли в данный момент полета.
К сожалению, не получится однозначно определять положение. Представим ситуацию, когда одна ось датчика параллельна вектору магниного поля. Две другие оси будут выдавать нули. При этом получается неопределенность - можно вращать модель вокруг первой оси на 360 градусов, а выходы датчиков будут одинаковыми.
Я даже пытался испытывать такую систему, пока не напоролся на эти очевидные грабли.
Что касается пирометров. Если на них стоят ИК фильтры на 8-14 мкм, то Солнца они не увидят.
maloii, в компиляторе Си нужно поставить оптимизацию по скорости (в cvAVR по умолчанию стоит оптимизация по размеру).
Project -> configure -> c compiler -> optimize for: speed
после этого вывод станет в 2 раза быстрее
Вот тут читаю, ребята так же парятся electronix.ru/forum/index.php?showtopic=41013&st=0.
Это как раз я там и парился 😃 Почитайте ту тему до конца, там все ответы есть, я дошел до вывода нормальных циферок 😇
maloii, в компиляторе Си нужно поставить оптимизацию по скорости (в cvAVR по умолчанию стоит оптимизация по размеру).
Project -> configure -> c compiler -> optimize for: speedпосле этого вывод станет в 2 раза быстрее
Это как раз я там и парился 😃 Почитайте ту тему до конца, там все ответы есть, я дошел до вывода нормальных циферок 😇
А можеш готовую прошивку дать посмотреть?
У меня просто ещё проблема с настройками портов, с контроллером неделю ещё не работаю, много вопросов глупых 😃
А можеш готовую прошивку дать посмотреть?
смотри личные сообщения
смотри личные сообщения
Спасибо за прошивку! Разобрался, в личку можно не отвечать. Но одно Но, символы большие, если взять к примеру прошивку от smalltim то всё маленькое выходит, а в данном варианте большое 😃 . Хотя может я чтото неправильно настроил в компиляторе, поделитесь 😃
Наверно это обсуждалось в начале, но все-таки, чем можно заменить датчик высоты MPX4115 . На сайте пишут Not Recommended for New Design … ( меня это не смущает в плане повторения работающей конструкции ) Но хотелось бы из новых … Вроде бы у MPXA6115A6t1 похожие
характеристики? Или что то еще порекомендуете?
Наверно это обсуждалось в начале, но все-таки, чем можно заменить датчик высоты MPX4115 . На сайте пишут Not Recommended for New Design … ( меня это не смущает в плане повторения работающей конструкции ) Но хотелось бы из новых … Вроде бы у MPXA6115A6t1 похожие
характеристики? Или что то еще порекомендуете?
Да, насколько я понимаю, 6115 должен прекрасно заменять 4115 😃
Да, насколько я понимаю, 6115 должен прекрасно заменять 4115 😃
Правильно! В марке- “115” означает предел давления.
Все остальное- тип корпуса и прочую цоколевку .
Спасибо за прошивку! Разобрался, в личку можно не отвечать. Но одно Но, символы большие, если взять к примеру прошивку от smalltim то всё маленькое выходит, а в данном варианте большое 😃 . Хотя может я чтото неправильно настроил в компиляторе, поделитесь 😃
Эхх, а я уже почти ответил 😃
Насколько большие? Я делал вот такие electronix.ru/forum/index.php?act=Attach&type=post…
Можете нарисовать буквы любого размера, изменяя шрифт в начале кода
Эхх, а я уже почти ответил 😃
Насколько большие? Я делал вот такие electronix.ru/forum/index.php?act=Attach&type=post…
Можете нарисовать буквы любого размера, изменяя шрифт в начале кода
Да, у меня такие же получаются, просто по меньще их не сделать. Из-за длины так сказать пикселя, то есть длительность одного сигнала велика получается. В прошивке от smalltim это длина в 2 раза меньще и поэтому он смог сделать буковки меньше. В прошивке smalltim я почти разобрался, он делает всё тоже самое, но из за того что там ассемблер, всё поэкономичней получается, чего в си компилятор наворотил фиг знает 😁 . Ща поразбераюсь, хочу всётаки в Си заставить всё как следует работать, а то не дело на тёте асе писать, гиморно это очень
Vad64
К сожалению, не получится однозначно определять положение. Представим ситуацию, когда одна ось датчика параллельна вектору магниного поля. Две другие оси будут выдавать нули. При этом получается неопределенность - можно вращать модель вокруг первой оси на 360 градусов, а выходы датчиков будут одинаковыми.
+1. Ибо во всех компасах использован акселерометр для определения истинной вертикали по вектору g. Но в полёте это не аксель, а генератор шума 😃 Надо городить полноценную БСО на гироскопах, а это задача иного уровня.
Что касается пирометров. Если на них стоят ИК фильтры на 8-14 мкм, то Солнца они не увидят.
Опять +1. Если б “заинтересесованые” граждане потрудились посмотреть даташиты, то обнаружили бы, что кремниевые ИК фильтры имеют место быть у всех пирометров. А ещё и угол обзора у них разный.
Товарищь видимо пользовал оптический автопилот, а ля PA-2. Того действительно зеркальцем сбить можно.
Вроде бы у MPXA6115A6t1 похожие
характеристики? Или что то еще порекомендуете?
Бери его и не парься. Хороший датчик.
Народ объясните плиз, как увеличить точность АЦП. Плавно перешел к замеру напряжения на паке и упёрся в то чно у меня шаг изменения до десятки, а я хочу до сотки, вроди и частоту настроил по максимому у АЦП и от стабилизатора напряжения подал напряг на AVCC, даже фильтрующий кондёр поставил на 47мФ перечитал датащит и уже незнаю чего ещё включить, в прошивке smalltim точность до сотых и я так же хочу, но асемблер тяжковато чтото даётся, немогу вкурить как это smalltim добился.
Народ объясните плиз, как увеличить точность АЦП. Плавно перешел к замеру напряжения на паке и упёрся в то чно у меня шаг изменения до десятки, а я хочу до сотки, вроди и частоту настроил по максимому у АЦП и от стабилизатора напряжения подал напряг на AVCC, даже фильтрующий кондёр поставил на 47мФ перечитал датащит и уже незнаю чего ещё включить, в прошивке smalltim точность до сотых и я так же хочу, но асемблер тяжковато чтото даётся, немогу вкурить как это smalltim добился.
Входной диапазон АЦП равен Uref/2^n, где n - число разрядов АЦП, Uref - напряжение на входе REF.
Про него, кстати, ни слова. Там что?
И 47 мкФ ей не нужно. Ей лучше микрофарад, но керамику! Причём лучше однослойную. На крайняк - тантал.
В остальном ничего не понял - какие десятки? Какие сотки?..
А… Десятые доли чтоли? С АВРкиным АЦП лучше на этом и остановиться. До сотых оно шумит, хоть и не сильно.
АЦП надыть включить в 10 битный режим, вот и будут сотки. Частота тут непричём (если оверсамплинга не делается). Ну и опору задать хорошую. В м8 внутреннего ИОНа нет, если склероз не изменяет…
на AREF ничего не кидал, а надо было? Кинул напряжение со стабилизатора на AVCC и землю на AGND и кондёром их соединил чтобы помехи скинуть. Вот думою правильно сделал или нет 😃 , я ведь только учусь.
Частоту АЦП лучше не завышать без необходимости, в Атмеговском даташите написано, что чем больше частота, тем больше шумов. У меня частота равна базовым 16 МГц делить на 128 по-моему. АЦП в 10-битном режиме используется, каждый канал АЦП опрашивается с 64-кратным оверсэмплингом, и поверх этого еще для 1-го и 2-го канала, где висят датчики давления для скорости-высоты, делается скользящее окно шириной 8 пачек. Сейчас 8, а в готовых прошивках в блоге было 16.
Да, AREF я задал равным AVCC, т.е. 5 в с линейного стабилизатора.
Сейчас только вот с америкосии вернулся, временной сдвиг из-за часовых поясов в норму придет, добью всё то, что планировал - осталось только анализ PPM сделать.
на AREF ничего не кидал, а надо было? Кинул напряжение со стабилизатора на AVCC и землю на AGND и кондёром их соединил чтобы помехи скинуть. Вот думою правильно сделал или нет 😃 , я ведь только учусь.
Ref, это опорное напряжение. Относительно его АЦП и мериет.
У АВР доступно 3 источника, выбираемых программно - внутренний на 2,56 вольта, внешний, подключённый к ARef и Avcc. В любом из трёх случаев кондёр на 0,1 мкФ от лапки Aref до земли должен иметь место быть.
Разумеется, ИОНы можно менять в процессе работы из программы, изменяя конфигурационные биты.
Если вы обмеряете датчики давления, которые ratiometric по своей национальности, то следует запитать их от того же напряжения, что идёт на AVcc и в качестве ИОН тоже установить AVcc.
А вот мерить напряжения аккумов лучше относительно внутреннего ИОНа, предварительно согнав диапазон напряжений аккумулятора к входному диапазону АЦП (0…2,56 в данном случае).
А вообще, почти всё по АЦП тут: dikoy44.narod.ru/projects/Beginners.htm
Начиная с пункта 2.
Сейчас только вот с америкосии вернулся, временной сдвиг из-за часовых поясов в норму придет, добью всё то, что планировал - осталось только анализ PPM сделать.
Какого рода анализ? Если перехват, то уже сделано. Правда, по внешним INT. Для м8 предпочтительней PCINT использовать ИМХО, хоть и более заморочно.
Спасибо за ответы, попробую как Вы написали. Только один вопрос касающийся 10-битным режимом АЦП, чтото не могу найти этого в датащите, как я понял это зависит от способа считывания регистров ADCL и ADCH, но я работаю через codeVisionAVR и там помошник генерит код и он упорно предлагает использовать 2байтный регистр ADCW. Как лучше получать данные с АЦП? Плюс вычитал что рекомендуют брать несколько показаний и потом усреднять их.