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

maloii

Интересно, есть ли какие нить сервера типа контроллера версии, но для разработки электронных плат? Можно устроить оля опен соурц. Предлагаю всей толпой объединится и замутить мега OSD. Во главе всего ставлю модульность сего девайса.

  1. Ядро. Несколько atmega, одна отвечает за графику остальные или остальная 😃 за математику. От них выводы идут для модулей.
  2. Модуль замера напряжения. Включает необходимые напряжения, фильтры и делители напряжения.
  3. Барометрический датчик высоты.
  4. Барометрический датчик скорости.
  5. GPS
  6. Датчик горизонта
  7. Блок управления. Входы ppm для замера помех или переключения функций.
    и т.д.

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

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

Вобщем предлагаю скинуться мозгами и сделать чтото действительно мега крутое!!!

smalltim

Готовых мегапроектов в Сети хватает, честно говоря, и у нас на форуме - тоже. См. блог 3apw.
Изобретать велосипед повторно вряд ли кто захочет.
Я сосредоточился на масимально простом в разработке и повторении девайсе, просто потому, что опыта было 0 и всё делалось на чистом интересе, лишь в надежде, что выйдет что-то дельное. Только недавно что-то действительно интересное начало получаться. Но принципа “можно сделать лазерным утюгом и спаять на коленке” я и впредь буду придерживаться 😃

Dikoy и Кузнецов - похоже, зубры - планируют гораздо более навороченные вещи.

Объединяться, конечно, можно, только у всех разные цели, и что получится в итоге - совершенно непонятно.
Модульность - хорошо, но это заведомо усложняет разработку и изготовление. Если за что-то мегакрутое браться, то надо изначально подходить на профессиональной основе: писать софт поддержки девайса на PC, начиная от управления режимами работы телеметрии с компука через USB и заканчивая расстановкой контрольных точек на карте для полета по GPS и сливом в компук всех логов данных с последующим отображением на графиках-диаграммах. Ну, и аппаратная часть: достойный процессор, правильный софт для программирования, разводка многослойной печатной платы в правильном софте, с учетом всех электромагнитных вещей, серьезные полетные испытания… И потом пытаться это продавать, потому что самостоятельно такое хрен кто изготовит? Нафик-нафик.

foxfly
maloii:

Вобщем предлагаю скинуться мозгами и сделать чтото действительно мега крутое!!!

Незабвенный Остап Ибрагим ибн Бендер- тоже выдвигал лозунг: “бензин- ваш, идеи- наши!”)
В свете предыдущих речей (“…Я в этом лапотень и в общих понятиях путаюсь” )- предложение “скинуться”- звучит весьма заманчиво 😦!!!

maloii
foxfly:

Незабвенный Остап Ибрагим ибн Бендер- тоже выдвигал лозунг: “бензин- ваш, идеи- наши!”)
В свете предыдущих речей (“…Я в этом лапотень и в общих понятиях путаюсь” )- предложение “скинуться”- звучит весьма заманчиво 😦!!!

Зря Вы так, я же не с целью нажиться сделал это предложение. Просто вижу что варианты всё в одном тупиковые, они рано или поздно упрутся в то что нужно будет всё переделывать с ноля. В случае модульной системы шанс упереться в тупик стремится нолю.

Да, я ещё лох в электронике и когда я писал первый пост в этой теме у меня даже паяльника небыло, но за короткий период разобрался чё по чём, может ещё не сделал ничего что можно показать, но у меня есть желание сделать и не просто сделать, а сделать чтото хорошее. Я не говорю что всё что здесь ребята выкладывают плохое, я говорю что если стремится к повышению возможностей, то рано или поздно можно упереться. Упереться в производительность чипа, или количество портов чипа и т.д.

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

foxfly
maloii:

Зря Вы так, я же не с целью нажиться сделал это предложение.

К сожалению я не разделяю Вашего оптимизма. Конечно, Вашу тягу к знаниям- можно только приветствовать! Но, занимаясь разработкой и производством электроники более 30 лет (и именно с целью “наживы”- то есть живу за счет этого) могу сказать: ни одно устройство (достаточно сложное, конечно: новогодние гирлянды в расчет- не берем 😃) ни разу еще к окончанию разработки- внедрения- не имело того вида, который планировался изначально! Хотя с головой и с руками у меня- все в порядке.
Просто электроника- довольно неформальная наука с множеством интуитивных моментов, особенно это касается разработки.
А тут главное- опыт, опыт и опыт…И с этим то у молодых- главная проблема.
А спросить- не у кого 😦

Кузнецов

Что можно сказать??
Это означает только, что отсутствовало ТЗ и ПОНИМАНИЕ, или как вариант, никакой Вы , к сожалению, не профессионал.
Всегда, если есть ТЗ - даже макетные образцы сдаются заказчику.
Тоже вариант … нет заказчика… нет ТЗ, есть мысля… вперед… впереддд… какое-нибудь НИИ академическое, например, когда бабки государственные, и когда ВООБЩЕ ничего и никогда не работает…только ДЫШИТ.
По существу есть что ??

Dikoy

Зря Вы так, я же не с целью нажиться сделал это предложение. Просто вижу что варианты всё в одном тупиковые, они рано или поздно упрутся в то что нужно будет всё переделывать с ноля. В случае модульной системы шанс упереться в тупик стремится нолю.

Не совсем так. У нас самолёт, надо минимизировать плату. По этому я все возможные функции возлагаю на контроллер, и контроллер выбрал таким, который потянет всё. Программа у меня писана как Queue system, то бишь псевдо-ос. Любой желающий может пристыковать свой исходник к ядру, работающему с железом - там в центре буфер обмена 😉

Упереться в производительность чипа, или количество портов чипа и т.д.

Не упрётся. А если и упрётся - у AVR полная переносимость. За час перенесём хоть на ARM.

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

Громоздко… Есть набор датчиков, минимальный, который нужен самолёту для полёта. Откройте любой учебник по прлётам в облаках и посмотрите, чем пользуются пилоты. Эти приборы нам и нужны. Это высотомер, горизонт и датчик скорости. + устройство навигации, как опция.
Его и рализую. Интерфейс I2C, он позволяет вешать до 127 девайсов на два провода. Хотя, практически любой интерфейс AVR можно сделать сетевым, если надо.
Протокол да, надо обдумать. Но пока до него дело не дошло.

smalltim:

>Кольцо сделать земляное с РАЗРЫВОМ + 4 феррита по краям.

А можете рассказать подробнее? Я не являюсь профессиональным разработчиком РЭА, какие ферриты, куда именно?

Электрический ток, он как вода. По плюсу зетекает, по минусу стекает. Вот разводка на плате должна быть такой, чтобы аналовые части были в самом конце плюсового провода, а их земли проходили либо через земли цифровых частей (и далее к источнику) либо отдельным проводником к источнику, от задачи зависит…
Вообще, обратным токам много чё посвящено. Ещё Маркони парился.
В интеренета материала много, где-то были у меня ссылки… Ща поищу.

>фербиды

Где почитать о них?
http://www.google.ru/search?sourceid=navcl…;q=ferrite+bead

Вот ссылки:
Хорошая статья:
rezonit.ru/pcb/support/articles/cad/03/
Про землю:
www.elart.narod.ru/articles/…/article1.htm
И в целом:
www.elart.narod.ru

maloii
Dikoy:

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

Купил дросселя BLM41PG600SN1L. Как я понимаю я должен их подключить как показано на прикрепленном файле. И ещё вопрос, рекомендовали кондеи поставить на 1mF, их с каждого плюса на землю ставить?

smalltim

To Dikoy:

У меня USART целиком свободен, можно использовать для коммуникации с Вашей платой или напрямую с GPS модулем.
Сейчас занимаюсь причесыванием кода, чтобы больше места “про запас” оставалось. Там мнооого можно места под код освободить. Так что, думаю, реализовать связь и кучу всего дополнительного - не проблема.

maloii

To smalltim:
По центру снизу, что за данные показываются?

smalltim

>По центру снизу, что за данные показываются?
вариометр

Dikoy
maloii:

Купил дросселя BLM41PG600SN1L. Как я понимаю я должен их подключить как показано на прикрепленном файле. И ещё вопрос, рекомендовали кондеи поставить на 1mF, их с каждого плюса на землю ставить?

С обоих концов фербида до земли. Вместе с фербидом получится конструкция в форме буквы П - это и есть П-образный фильтр 😉
Кондеи надо ставить обязательно, без них фербид ничто. Номинал - чем больше, тем лучше. Но обязательно керамические или, на крайняк, танталовые. Никаких электролитических!!! Толку от них тут ноль.
1 мкФ маловато, я бы на 10 поставил. Сейчас керамика встречается и на 40 мкФ.

2smalltim
“Заботливые” AVR-овцы так распихали входы INT по лапам, что закрыли мне аппаратные UART и I2C 😦 Остался один SPI. Хотя, это мне кажется даже лучше - разъём программирования всё равно ставить, так почему бы не использовать его для связи? 😉

maloii

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

smalltim

2 maloii:

поздравляю с решением проблем 😃

2 Dikoy:

SPI разъем у меня на плате с рождения впаян, так что договоримся 😉

smalltim

По-прежнему есть некоторое количество готовых печатных плат для телеметрии в варианте под SMD и PDIP чипы.
Отдаю бесплатно, то есть даром. Обращайтесь в личку.

smalltim

Ого… я что-то не так понимаю, или это GPS модули с частотой обновления 10Гц?

www.elway.ru/goods.php?id=227

www.elway.ru/goods.php?id=225

В мануалы еще не лез, поэтому задаю глупый вопрос: для связи с USART Атмеги нужно TTL или RS232 выбирать?

Vad64
smalltim:

Ого… я что-то не так понимаю, или это GPS модули с частотой обновления 10Гц?
для связи с USART Атмеги нужно TTL или RS232 выбирать?

Я использую модуль ЕМ-406. Его можно соединять с UART напрямую, если питание АТМеги 3В. При большем питании имеет смысл поставить резистивный делитель с выхода UART на вход ЕМ-406, чтобы уменьшить уровень сигнала до 2.5-3В.
Что касается частоты обновления, то, может, она внутри и 10Гц, но период выдачи данных нельзя задать меньше секунды, по крайней мере в режиме NMEA. С бинарным протоколом я особо не разбирался, но навскидку такой возможности также не вижу.

Кузнецов

Нарисовался начальный вариант дополнительной платки.
Основная разбивается на две.

hel_080414.zip

dmk

Привет всем,
Я в прошлом использовал датчики давления от Fujikura, а сейчас решил попробовать их в телеметрии. При включенном передатчика (Airwave 2.4GHz, 500mw) показания датчика значительно меняются в зависимости от расположения антенны (в радиусе 20-30см от датчика). А как себя ведут мотороловские? Никто на обращал внимания, чувствительны они к ВЧ?

smalltim
Vad64:

Я использую модуль ЕМ-406. Его можно соединять с UART напрямую, если питание АТМеги 3В. При большем питании имеет смысл поставить резистивный делитель с выхода UART на вход ЕМ-406, чтобы уменьшить уровень сигнала до 2.5-3В.
Что касается частоты обновления, то, может, она внутри и 10Гц, но период выдачи данных нельзя задать меньше секунды, по крайней мере в режиме NMEA. С бинарным протоколом я особо не разбирался, но навскидку такой возможности также не вижу.

Понял. Атмега у меня от 5В питается.
Кстати, питание некоторых GPS-модулей - 5В, с такими не нужны делители? Было бы удобно питать модуль от линейного стабилизатора на плате телеметрии, но подозреваю, что модуль потребляет очень неровно, напряжение питание всей аналоговой части платы телеметрии поплывет. Так что придется питать его отдельно.

Сейчас почитал доки по протоколу NMEA, что-то подозрительно легко всё вырисовывается.

Что надо cделать:

  1. Общение с GPS-модулем по USART.
  2. Парсинг NMEA строк, перевод широты и долготы в 32-битные целые.
  3. Запоминание начальной позициии самика.
  4. Опрос GPS приемника, получение текущих координат и величины+направления вектора скорости относительно земли.
  5. Вычисление разности между начальными и текущими координатами, перевод градусов и секунд в метры. Думаю, прокатит прямой перевод разницы в градусах широты и долготы относительно начальной позиции в смещение по Х и Y с помощью тупого умножения на коэффициент. На тех дальностях, что летают наши самики, землю можно считать не сферой, а плоской.
  6. Перевод Х и Y смещения в значения величины и направления вектора “на точку старта”.
  7. Отображение трех чисел (удаление от точки старта по земле, текущая скорость относительно земли, высота по GPS)
  8. Отображение двух векторов (вектор на точку старта и вектов курса) в [псевдо]графике на поле 64х64 пиксела внизу по центру экрана, в виде чего-то похожего на стрелки часов. Чтоб не заморачиваться с тригонометрией, отображение можно сделать в “виде сверху” с фиксированной привязанной к Земле системой координат - север всегда сверху.

Очень надеюсь, что удастся всё это утоптать вместе с текущим кодом в Атмегу8. Текущий код далек от идеала в плане объема, так что есть вероятность, что получится.

Кузнецов:

Нарисовался начальный вариант дополнительной платки.
Основная разбивается на две.

Основательный подход 😃

А Pulse - это вход PPM?

Зачем на серворазъем подается VCC через резистор 4.7 Ом? Так Вы хотите питать приемник?
Почему именно импульсный питатель? Какая предполагается нагрузка?

Dikoy
Кузнецов:

Нарисовался начальный вариант дополнительной платки.
Основная разбивается на две.

А зачем такой громоздкий ИП?.. На такие токи полно ощутимо более интегрированых моделей. Например, TPS61130. За одно и 3 вольта для GPSки сгенерите 😉

smalltim:

Понял. Атмега у меня от 5В питается.
Кстати, питание некоторых GPS-модулей - 5В, с такими не нужны делители? Было бы удобно питать модуль от линейного стабилизатора на плате телеметрии, но подозреваю, что модуль потребляет очень неровно, напряжение питание всей аналоговой части платы телеметрии поплывет. Так что придется питать его отдельно.

Сейчас почитал доки по протоколу NMEA, что-то подозрительно легко всё вырисовывается.

Что надо cделать:

  1. Общение с GPS-модулем по USART.
  2. Парсинг NMEA строк, перевод широты и долготы в 32-битные целые.
  3. Запоминание начальной позициии самика.
  4. Опрос GPS приемника, получение текущих координат и величины+направления вектора скорости относительно земли.
  5. Вычисление разности между начальными и текущими координатами, перевод градусов и секунд в метры. Думаю, прокатит прямой перевод разницы в градусах широты и долготы относительно начальной позиции в смещение по Х и Y с помощью тупого умножения на коэффициент. На тех дальностях, что летают наши самики, землю можно считать не сферой, а плоской.
  6. Перевод Х и Y смещения в значения величины и направления вектора “на точку старта”.
  7. Отображение трех чисел (удаление от точки старта по земле, текущая скорость относительно земли, высота по GPS)
  8. Отображение двух векторов (вектор на точку старта и вектов курса) в [псевдо]графике на поле 64х64 пиксела внизу по центру экрана, в виде чего-то похожего на стрелки часов. Чтоб не заморачиваться с тригонометрией, отображение можно сделать в “виде сверху” с фиксированной привязанной к Земле системой координат - север всегда сверху.

Очень надеюсь, что удастся всё это утоптать вместе с текущим кодом в Атмегу8. Текущий код далек от идеала в плане объема, так что есть вероятность, что получится.

Основательный подход 😃

А Pulse - это вход PPM?

Зачем на серворазъем подается VCC через резистор 4.7 Ом? Так Вы хотите питать приемник?
Почему именно импульсный питатель? Какая предполагается нагрузка?

Надо смотреть в доке, релевантен ли вход к повышеному напряжению. Иногда везёт.
Можно применить преобразователи уровня а-ля MAX3002 - очень удобные в обращении штуки.
Для связи по USART нужны TTL уровни. RS232 - это ± 12 вольт 😉
С приёмником не надо общаться. Если вы работаете по NMEA, достаточно в прерывании перехватывать строки и выгребать от туда данные. Этот код у меня уже написан, всё нет времени испытать чтобы потом выложить 😦
В мегу8 всё не влезет гарантиовано. Я беру 64-ку, чтобы закатать во флеш таблицу брадиса. Подсчёт тригонометрии тогда сводится к линейной аппроксимации и выполняется довольно шустро. Если всё считать так, у АВРки текут мозги 😃
Насчёт GPS широты/долготы. Тупо вереводим всё в минуты, причём убираем запятую нахь и работаем с целыми 32 битными числами минут. Опять же, получается быстре и проще. Геометрия 9 класса.

Вообще, я не в восторге от этого приёмника… Не думаю, что он лучше u-blox пятой серии, а по размеру и весу жирнее раз в 8. Вы в курсе сколько весит его керамическая антена? 😃 А что ей надо полигон земляной 75*75 мм под брюхом? 😃
Кстати, у блохи входы релевантны к 5 вольтам. Его можно непосредственно подцеплять.