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

Brandvik

проГУГЛиваясь по просторам интернета на предмет поиска инфы о ультразвуке и его применении, совершенно случайно … смотрите что нарыл…

Интересный приборчик. Если предположить что самолет в полете не превышает крены 90град то вполне пожет сработать, только вот вопрос, как у них с девиацией показаний по времени?

Satelite
Brandvik:

Интересный приборчик. Если предположить что самолет в полете не превышает крены 90град то вполне пожет сработать, только вот вопрос, как у них с девиацией показаний по времени?

Я так понял датчики бывают разные, и с бОльшим диапазоном.
ну даже если привысить 90 градусов… ничего не произойдет… вернется к меньшему углу - и показания вернутся…
дрейфа у них нет…
они применяются в приборах и датчиках при строительстве и эксплуатации мостов, опор, зданий, тоннелей…
гдето читал что расчитаны на измерения проводимые годами.
представте что они намериють, если будет дрейф 😃
погуглите… интересная фишка…

leliksan

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

Satelite
leliksan:

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

ну значит нас обманули, пишут безинерционные… и можно ставить на подвижные обьекты…

пока лазил читал про них нашел 4 вида констркции.
гироскоп
продвинутый акселометр
жидкость
магнитный вектор(не понял как работает)

эхх… интересно былобы в руках повертеть…

foxfly
Satelite:

готовый авиагоризонт…
правда стоит наверное … рублей… миллион… 😦

Покритиковать- это всегда пожалуйста: в широко известном (в узких кругах) Micropilot 2028, который продается уже лет 5, используется УЗ высотомер до 20 ft (6м).
Сделан он на одной “таблетке”, надо думать: и передатчики и приемник.
Но посадка с его применением- душераздирающее зрелище : видел живьем один раз- до сих пор трясет 😃
Порывчик ветра, камушек- любая помеха : самолет в починку.
Тупая электроника не может адекватно угрозе (то есть чуть- чуть) “сыграть” рулями.
И садиться в этом режиме можно только на поверхность класса F1, желательно- помытую шампунем 😃
Кроме того- показания УЗ высотомера очень будут зависеть не только от температуры, но и от характера поверхности (трава- один коэффициент отражения, асфальт- совсем другой )

Satelite
foxfly:

Покритиковать- это всегда пожалуйста: в широко известном (в узких кругах) Micropilot 2028, который продается уже лет 5, используется УЗ высотомер до 20 ft (6м).
Сделан он на одной “таблетке”, надо думать: и передатчики и приемник.
Но посадка с его применением- душераздирающее зрелище : видел живьем один раз- до сих пор трясет 😃
Порывчик ветра, камушек- любая помеха : самолет в починку.
Тупая электроника не может адекватно угрозе (то есть чуть- чуть) “сыграть” рулями.
И садиться в этом режиме можно только на поверхность класса F1, желательно- помытую шампунем 😃
Кроме того- показания УЗ высотомера очень будут зависеть не только от температуры, но и от характера поверхности (трава- один коэффициент отражения, асфальт- совсем другой )

вот чтоб этого небыло электронике нужно дать знать степень угрозы… по этому приемника 2…
железка знать будет на сколько рулить. 😉
от типа поверхности благо скорость звука не зависит… 😁
а значит, при достаточно мощном импульсе, эхо будет…
по этому передатчик отделен от приемника…

кто какие еще знает способы локации…

в теме на хбите что создал Dikoy, понасоветовали… мама дорогая 😁
каким-то макаром используя радиолокацию… доплеровский сдвиг…
разве используя доплеровский сдвиг… можно получить расстояние до цели?
или я чтото пропустил… или там не поняли вопроса…

радио сразу отпадает, по крайней мере СВЧ.
у меня есть опыт в этой области, и могу сказать что полосковые резонаторы, не любят вибрации…

foxfly
Satelite:

вот чтоб этого небыло электронике нужно дать знать степень угрозы… по этому приемника 2…
железка знать будет на сколько рулить. 😉

Ну, ну…
Ждем*с 😃

BigDaddy

Прикупил сегодня немного комплектухи и вот что вырисовывается:

В маркировке на шелкографии перепутаны местами конденсаторы С11,С13 и С12,С14. Но страшного ничего нет, номиналы у них совпадают. 😛

igorsd
Satelite:

готовый авиагоризонт…
правда стоит наверное … рублей… миллион… 😦

Про наши не знаю…
есть вот такой вот вариант:
www.vti.fi/en/products/…/inclinometers/
eicom.ru/catalogue/…/SCA100T-D01/

Тут ещё можно почитать обсуждение на тему датчиков (в т.ч. там и про инклинометры есть) для автопилота…
www.rcgroups.com/forums/showthread.php?t=627348

smalltim

Йэх… Полетал я тут еще со своей телеметрией, и понял, что линейная аппроксимация логарифма не катит. Но это еще ерунда, там погрешность <2% на высотах до 500м и 3.6 процента на 1000м.
Хуже другое. В исходной формуле Δh = 18400*(1 + а*t)*lg(p1 / p2) есть температура воздуха t в градусах цельсия. Вот ее я сейчас беру нулевой (в Цельсиях). А число “а” - это коэффициент теплового расширения воздуха, на который я в свое время почему-то положил болт. А коэффициент этот равен, как нетрудно догадаться, 1/273 градуса в минус первой степени. То есть, при полете в +27 градусов моя телеметрия недопокажет 10% высоты, что я и наблюдал вчера, сравнивая высоту по барометрическому датчику с высотой по GPS.

Так что ждите новую прошивку, буду теперь температуру воздуха не просто так мерять, а с пользой 😃

Dikoy
smalltim:

буду искать нужную панельку для Атмеги.

Ох и стОить же она будет… 😃

Satelite:

Всем привет.
если моя мысль(работа) интересна сообщству, докладываю.(если интересно, может другую тему создать? уже ОФ получается?)

обдумал концепцию ультразвукогого высотомера-радара-эхолота…

Я в пятницу EZ0 купил, опробую доложу. Тоже полезно будет, ИМХО.
Вообще, эхолот на стадии посадки по приборам, штука нужная и полезная.

smalltim:

Вот со второй платой, где автопилот и т.д, наверное, помощь не помешала бы.

Что хочется сделать:

  1. Слив данных с датчиков на первой плате в память и отдача через USB на компук.
  2. Настройки телеметрии через компук с сохранением параметров в EEPROM первой и второй платы.
  3. Автопилот: обработка данных с датчиков первой платы, с GPS, с датчиков горизонта и формирование управляющих сигналов на сервомашинки - с этим мне будет проще всего
  4. Управляющая программа и драйвер USB девайса на компуке - с этим тоже будет не очень трудно.

Где лучше советовать, тут или где-то ещё? 😃

  1. Определитесь, что хотите - чистый USB или виртуальный СОМ порт. Я за второе, т.к. это позволит пользовать широкий круг терминалок для отладок/проверок, да и писать софт проще. Коды для AT90USB1287 у меня есть, могу поделиться.
  2. На Си проще репы: __eeprom char buf[100]; И всё… Но проще структуру, конечно. Удобней.
  3. Вдруг полезно 😃 Код управления таймерами для руления машинок:
//TIMER1 initialize - prescale:8
// WGM: 10) PWM phz correct, TOP= ICRn
// desired value: 50Hz
// actual value: 50,000Hz (0,0%)

 TCCR1B = 0x00; //stop

 TCNT1H = 0xF6; //setup
 TCNT1L = 0x3C;

 /* в OCR1х вписывать нужную величину ШИМ.

	Причём вписываемая величина соответствует длине импульса в мкС!


 */

  //  ICR1 = 20000  это ШИМ  100%  равный периоду в 20000 мкС
 ICR1H  = 0x4E;
 ICR1L  = 0x20;


 OCR1AH = 0x05;   //старшие 8 бит
 OCR1AL = 0x78;

 OCR1BH = 0x05;   //старшие 8 бит
 OCR1BL = 0x78;

 OCR1CH = 0x05;   //старшие 8 бит
 OCR1CL = 0x78;


 TCCR1A = 0xAA;
 TCCR1B = 0x12;   //start Timer

Это для ATmega128, легко переводится на USB1287. Кварц 16 мег. Т.к. будет пользоваться USB, то квар по-любому должен быть либо 8, либо 16 😉

BigDaddy

Видел я такую панельку-переходник для программатора вчера на радиорынке, когда комплектуху закупал. За 1470руб. Но рука не поднялась…
Проще (а главное дешевле) слепить шнурок для программирования через СОМ-порт и шить процессор прямо на плате. Благо разъемы там для подключения такого шнурка есть.

Dikoy
BigDaddy:

Проще (а главное дешевле) слепить шнурок для программирования через СОМ-порт и шить процессор прямо на плате. Благо разъемы там для подключения такого шнурка есть.

+1

SGordon
smalltim:

Так что ждите новую прошивку, буду теперь температуру воздуха не просто так мерять, а с пользой 😃

Хотел спросить, со старой платой это мало поможет, ведь плата не всегда на открытом воздухе а там термодатчик впаян?

smalltim

>Проще (а главное дешевле) слепить шнурок для программирования через СОМ-порт и шить процессор прямо на плате. Благо разъемы там для подключения такого шнурка есть.

На новой плате распаян стандартный атмеловский разъем программирования, даже проводков не надо - я просто втыкаю программатор и всё.

>Где лучше советовать, тут или где-то ещё?
Тут, конечно.

>1. Определитесь, что хотите - чистый USB или виртуальный СОМ порт. Я за второе, т.к. это позволит пользовать широкий круг терминалок для отладок/проверок, да и писать софт проще. Коды для AT90USB1287 у меня есть, могу поделиться.
Чистый USB, наверное, предпочтительнее - для софтовой реализации надо поддерживать строгие тайминги для USB, и на остальное может не хватить времени.
Или это не так?

>3. Вдруг полезно Код управления таймерами для руления машинок:
Спасибо.

>Хотел спросить, со старой платой это мало поможет, ведь плата не всегда на открытом воздухе а там термодатчик впаян?
Термодатчик лучше выпаять и на проводке сделать, а то он от самой платы подогреваться будет.

smalltim

Написал коэффициенты для квадратичной аппроксимации логарифма, ввел поправки на температуру воздуха и атмосферное давление на земле.

Повертел таблички и так и сяк.
Аппроксимация логарифма в неких идеальных атмосферных условиях (0С, 101.3 кПа на земле) в диапазоне от 0 до 1000м дает максимальную погрешность в 0.11% на высоте 660м

Аппроксимация соотношения начального атмосферного давления и идеала (101.3 кПа) линейной функцией дает погрешность:

от -0.17% на высоте в 0м до 0.14% на высоте 1000м при давлении на земле в 105 кПа (788 мм рт ст)
от -0.17% на высоте в 0м до -0.28% на высоте 1000м при давлении на земле в 98 кПа (735 мм рт ст)

Изменение температуры воздуха дает погрешность только в математике. При использовании 16-битных вычислений этой погрешностью можно будет пренебречь.
Теперь дело за малым: вбить это в прошивку.

Для справки: текущий вариант вычислений дает максимальную погрешность в 5% на высоте 1000м, в идеальных условиях.
При полетах не при 0С, а при +27С, к этой погрешности прибавится 10% из-за отсутствия коррекции по температуре.

Dikoy
smalltim:

>1. Определитесь, что хотите - чистый USB или виртуальный СОМ порт. Я за второе, т.к. это позволит пользовать широкий круг терминалок для отладок/проверок, да и писать софт проще. Коды для AT90USB1287 у меня есть, могу поделиться.
Чистый USB, наверное, предпочтительнее - для софтовой реализации надо поддерживать строгие тайминги для USB, и на остальное может не хватить времени.
Или это не так?

Немного не так.
USB у атмела аппаратный, обмен с ним идёт через буфер, т.н. “эндпойнт”. Разница только в том, что USB говорит хосту при втыкивании. Если говорит “хочу быть виртуальным комом”, то бишь CDC, винда подсасывает соответствующий драйвер из своего набора. Драйвер тот глюкавый, но для НЕ реалтайм системы это не важно.
Чистый USB у нас тут пробовали завести… Процесс, конечно, творческий, но результата так и не дал. Слишком много ресурсов требует (человеческих), то есть нерентабелен. В итоге плюнули и сделали CDC.
Процесс энумерации USB отнимает ресурсы, но делать её необязательно. Можно поставить джампик, согласно которому энумерация будет делаться или не будет. Это поэкономит ресурсы.
Скорость при передаче по одному байту около 38400. Если сливать строками (до 64 байт за раз) доходит до мегабита.
Код и описание сброшу в мыло чуть позже, т.к. тут лазиют несколько нежелательных для меня читателей… 😊 Если кому интересно, пишите в личку запрос с емейлом. Тоже скину.

smalltim

Отправил заказ по датчикам в Терраэлектронику - удалось уйти в купный опт, цены получились очень хорошие. По стоимости кита (плата + мелочевка + датчики ) - см блог rcopen.com/blogs/15368?

pvp
smalltim:

На новой плате распаян стандартный атмеловский разъем программирования, даже проводков не надо - я просто втыкаю программатор и всё.

Может быть имеет смысл заливать bootloader (вполне рабочие примеры есть на сайте атмел’а, использую в своих проектах и крайне доволен), чтобы кадый, у кого нет программатора, мог без труда обновлять прошивку при помощи небольшой программки для PC и обычного кабеля (через USART или USB, либо через тот интерфейс, какой Вы, как разработчик ещё реализуете в своём устройстве)?

smalltim


Может быть имеет смысл заливать bootloader (вполне рабочие примеры есть на сайте атмел’а, использую в своих проектах и крайне доволен), чтобы кадый, у кого нет программатора, мог без труда обновлять прошивку при помощи небольшой программки для PC и обычного кабеля (через USART или USB, либо через тот интерфейс, какой Вы, как разработчик ещё реализуете в своём устройстве)?

Я за такой вариант двумя руками, поскольку проект постоянно развивается и появляются фиксы и новые фичи. Скачать новую прошивку и влить через USB - удобней некуда!
Только тему bootloader мне еще предстоит изучить. Когда придется, попрошу помощи, ничего?

Кстати, вчера вбил в код (прошивка v225, пока не выкладываю) следующие изменения:

  • вычисление тока с датчика тока. Очень красиво и компактно получилось, точность по АЦП с учетом оверсэмплинга - 3 мА, минимальная отображаемая величина тока - 10 мА, на экране будет показываться ХХ.ХХ А.

  • аккумулирование потраченных миллиамперчасов методом интегрирования: Каждые 0.16 секунды я умножаю полученную с датчика величину тока, умножаю на этот временной интервал, перевожу из ампер-секунд в миллиампер-часы и складываю в четырехбайтную переменную. Вывод на экран - ХХХХмАh.

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

  • при включении обнуление всех временных переменных в цикле вместо обнуления каждой в отдельности. Высвободилось дополднительно много места под код.

Что еще надо сделать:

  • перевод математики подсчета высоты с барометрического датчика на новую формулу с учетом температуры воздуха и текущего атмосферного давления на земле.

  • включение отображения широты-долготы на экране в аварийных условиях - при потере сигнала с передатчика или при падении бортового напряжения ниже какого-то уровня. Какого - пока непонятно, поскольку все летают на разных батарейках.

Кстати, во вчерашнем заказе в Терраэлектронику забыл указать термодатчик AD22100 - не пинайте сильно. Сообщение в блоге сейчас обновлю.
Заказал 10 штук в Чипе-Дипе, поскольку в Терраэлектронике и в Митраконе или нет или цены дикие 😃.

Dikoy
smalltim:

Я за такой вариант двумя руками, поскольку проект постоянно развивается и появляются фиксы и новые фичи. Скачать новую прошивку и влить через USB - удобней некуда!
Только тему bootloader мне еще предстоит изучить. Когда придется, попрошу помощи, ничего?

А чего там изучать? На сайте атмела лежат готовые хексы. Заливаете в МК и всё. В дальнейшем перепрошивку делает сам контроллер через какой-то порт.
Есть два НО:

  1. Для запуска бутлодера нужна кнопка на ресете и некая кнопка HWB, чтобы после ресета бутлодер понял, что его хотят, и не передавал управление основному коду.
  2. Бутлодер в чип таки надо вливать внешним программатором 😦 Кроме того, атмельские бутлодеры любят иногда “слетать”, что требует переодической полной перепрошивки чипа.

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