Указатель воздушной скорости "Своими руками" АРДУИНО

Немного не в тему, но может кому интересны будут статистические данные различных режимов работы BMP180 и будут сделаны какие-либо выводы. Крайний лист пожалуй самый красивый, однако и самый ресурсоемкий. (Может потребоваться подключение надстройки "Анализ данных").
 

Вложения

   Вот вариант. Набросал на скорую  из примеров.
"серва" скорости двигается норм.А вот серва высоты 0 показывает. Тут непонятно, либо библиотека сразу выдаёт относительную высоту, либо показания сильно загрублены.  По хорошему надо теперь  добавить светодиодов "верх-низ", оформить корпус, оттарировать  и испытать.


#include <Servo.h>
#include <Wire.h>
#include <BMP085.h>

BMP085 dps = BMP085(); 
Servo myservo1;  // указатель скорости
Servo myservo2;  // указатель высоты
long  Altitude = 0;//переменная для высоты

int mpxv = 3;  // пин подключения MPXV
int val1;    // градусы отклонения указателя скорости
int val2;    // градусы отклонения указателя высоты
void setup()
{
  myservo1.attach(10);  // настройка сервомоторов указателей (9G)
  myservo2.attach(11);
  myservo1.write(0);
  myservo2.write(0);
  Serial.begin(9600);
  Wire.begin();
  delay(1000);
  dps.init(); // инициализация BMP085
}

void loop()
{
  val1 = analogRead(mpxv);                // чтение аналогового датчика скорости
  val1 = map(val1, 500, 1023, 0, 180);   // перевод диапазона числа АЦП в диапазон углов отклонения
  dps.getAltitude(&Altitude);           //получение данных о высоте с датчика BMP085
  val2 = Altitude/100;                  //
  val2 = map(val2, 0, 1000, 0, 180);    //  перевод диапазона высот в диапазон углов отклонения
  myservo1.write(180-val1);              // инвертируем отклонение, что бы с лево на право
  myservo2.write(180-val2);
  delay(20);     // пауза
   
  /*
  Serial.print(val2);
  Serial.print("_");
  Serial.println(Altitude/100);
  //Serial.print(val2); 
  delay(50);
  */
}
 
Тут непонятно, либо библиотека сразу выдаёт относительную высоту, либо показания сильно загрублены.
Также на "скорую"
Библиотека по видимому такая.
Для полной инициализации экземпляра класса (class BMP085) применяются функции
// initialization
  void setLocalPressure(int32_t _Pa);            // set known barometric pressure as reference Ex. QNH
  void setLocalAbsAlt(int32_t _centimeters);     // set known altitude as reference
  void setAltOffset(int32_t _centimeters);       // altitude offset
  void sethPaOffset(int32_t _Pa);                // pressure offset
  void zeroCal(int32_t _Pa, int32_t _centimeters);// zero Calibrate output to a specific Pa/altitude

в противном случае на вопрос чтО выдает getAltitude, ответить сложно.
 
Полетал сезон на планере с УС на основе датчика MPXV5004. К сожалению, датчик показал себя плохо. Невысокая стабильность нуля приводит к тому, что после нескольких часов полета, датчик на земле показывает до 20 км/час, это при том что он обнулялся перед вылетом. Но лучшего датчика я пока не нашел. Может кто знает датчик получше?
 
Использовал mpxv7002dp. Дальше макета дело не дошло, но такого дрейфа нуля не наблюдал.
 
К сожалению, датчик показал себя плохо.

Вся серия MPX... сильно зависима от температуры и напряжения питания. Стабилизируйте и то, и другое, причем хорошо, и будет Вам счастье.
Или измеряйте и то и другое и компенсируйте. И не верьте даташиту про то, что датчик скомпенсирован внутри, он не на столько хорошо скомпенсирован, чтоб про это можно было забыть.
 
Спасибо! Очень интересный датчик. Попробую под него прибор разработать. А я, как не искал, на него не вышел. Наверное с интернетом не умею разговаривать. Обычные поисковики на этот датчик не меня не выводят почему-то.
 
Спасибо! Очень интересный датчик. Попробую под него прибор разработать. А я, как не искал, на него не вышел. Наверное с интернетом не умею разговаривать. Обычные поисковики на этот датчик не меня не выводят почему-то.
Увы. Датчик хороший, но не для Указателя Скорости. У него минимальная шкала 20 Psi это примерно 1,4 атмосферы. С таким датчиком скорость не измерить. Подходящий датчик для измерителя скорости я так и не нашел. Придется пользоваться тем что есть - MPXV 5004. Хотя я думаю имеются датчики разработанные специально для применения в авиации. Только нам их не дают.
 
Увы. Датчик хороший, но не для Указателя Скорости
Даташит, признаться, читал по диагонали.
А нашел их через модельные ресурсы, например вот или вот

The first change is to add support for a new digital airspeed sensor from Measurement Specialities, the MS4525DO. The PX4 dev team announced this sensor recently, and I've been test flying it to ensure it works well with APM. It does! This new sensor is a huge advance over the analog sensors we've been using up to now.
The key difference is how low the thermal drift is in the reported differential pressure. A long standing problem with airspeed sensors has been the drift in the reading as the sensor warms up. This doesn't matter very much if you only need accurate airspeed readings at high speed as the contribution of thermal drift to airspeed drops rapidly with speed (as airspeed is proportional to the square root of the measured differential pressure). At lower speeds, such as when landing, it can matter, and having a sensor with low thermal drift is very nice. The I2C based MS4525D0 has internal temperature calibration to cope with thermal drift, which really helps.
Источник
 
Увы. Датчик хороший, но не для Указателя Скорости. У него минимальная шкала 20 Psi это примерно 1,4 атмосферы.
Читайте внимательней даташит, там несколько модификаций с пределом измерения от 1 до 20 psi
На авиамоделях он же применяется в качестве УС:
"Цифровой датчик скорости воздуха оснащен измерительным датчиком высокого разрешения 4525DO с диапазоном измерения 1 фунт / кв. дюйм. "
  То бишь 1 Psi или 700 мм вод. столба, что соответствует предельной измеряемой скорости 381 км/ч.  Грубоват конечно для СЛА, но в принципе пойдет.
https://store.3dr.com/products/digital-airspeed-sensor
Единственная особенность - цифровой выход, в отличие от MPX, у которого аналоговый.
 
Грубоват конечно для СЛА
Разрешения в 0.84 Pa, думаю, сверхдостаточно.
Подключая непосредственно MPXV к АЦП Ардуино для построения, скажем, УС-150 (0 - 1070 Па), максимальная дельта на выходе MPXV составит ~1В, т.е. в пять раз меньше всего диапазона измерения АЦП.  Таким образом 1024 уровня отсчета (10-ти разрядное АЦП) сожмутся до ~205, а разрешение составит 1070/205~5 Pa.

Кроме того пользователями утверждается, что MS4525DO имеет очень низкий температурный дрейф нуля.
 
Разрешения в 0.84 Pa, думаю, сверхдостаточно.
Вряд ли он реально отслеживает такие величины, это же доли мм вод. столба, скорее всего это минимальный размер дискретизации АЦП в пересчете на давление.
 
Вряд ли он реально отслеживает такие величины
Разрешения в 0.84 Pa вроде бы как соответствует 14 битному АЦП с отброшенным "мусором" в младших разрядах.
Да пусть и в два раза будет хуже. В любом случае  для поднятия точности аналогового датчика не придется "корячиться" с согласованием уровней АЦП и датчика или увеличивать разрядность АЦП.
Только вот цена как в том анекдоте "не радует".
 
Действительно, на 1 psi датчик имеется. А это 6,89 кПа, тогда как MPXV5004 имеет шкалу 4 кПа. Не большая разница, хорошо бы что бы и стабильность нуля была более высокой. Надо будет попробовать.
 
Точности МРХ 5004 хватало за глаза даже при худших показателях температурного дрейфа. На фоне погрешностей от ПВД - капля в море, так что новый датчик радикально ничего не изменит, основной источник погрешностей - трубка ПВД.
 
Читаем еще раз ответ #112 и #114.
Во первых даже при 10 битной дискретизации в полетном диапазоне скоростей  точности МРХ хватало, проблемы были лишь на малых (до 30 км/ч) скоростях, во-вторых почему ты решил, что 10-разрядные ардуины - это предел совершенства? Ты вообще пробовал сам что-нибудь собрать на этих датчиках, чтоб так безапеляционно утверждать об их непригодности, или как обычно, чистые теоретезирования?
 
"Вы", будьте любезны, для начала.

что 10-разрядные ардуины
Название ветки посмотрите, пожалуйста.

точности МРХ хватало
Так и применяйте его, кто против?
А столкнувшиеся с его проблемам ищут другое решение. Что-же непонятного?

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

Пробовал.

или как обычно, чистые теоретезирования?
Немного практики.
 
Назад
Вверх