Цифровая электроника для начинающих (Елисеев) - страница 26


Запустив программу, мы получим в Serial Monitor данные типа таких:


0,      225,153,15401,            22,44,15,      540,302,192

1,      223,175,15434,            7,41,15,      540,302,192

2,      226,161,15417,            3,46,16,      540,302,192

3,      233,166,15411,            7,51,3,            540,302,192

4,      233,166,15411,            13,44,2,      540,302,192

5,      223,161,15435,            13,44,2,      540,302,192


Каждый датчик - 3х-осевой, соответственно мы имеем 3 колонки цифр с каждого из сенсоров (акселерометр, гироскоп и компас). Примерно такие же датчики стоят и в смартфонах, что используется например в играх, для управления наклонами устройства.


Данные также можно открыть в любой программе построения графиков, например онлайн на https://plot.ly/create/, и наглядно посмотреть как изменяются значения при вращении или повороте датчика. К примеру, на картинке показан график с магнитометра при поднесении к датчику металлического предмета.


Сам график построен с помощью бесплатного сервиса https://plot.ly/create/.



Чтение данных с барометра BMP280 аналогично. Нужно скачать библиотеки с сайта https://github.com/adafruit/Adafruit_BMP280_Library и поместить их в папку Документы\Arduino\libraries.


Код аналогичен приведенному выше.


#include


#include


#include


#include



Adafruit_BMP280 bmp;



void setup() {


Serial.begin(115200);


Serial.println(F("BMP280 test"));



if (!bmp.begin()) {


Serial.println(F("Could not find a valid BMP280 sensor"));


while (1);


}


}



void loop() {

// Чтение температуры


Serial.print(F("T = "));


Serial.print(bmp.readTemperature());


Serial.println(" *C");



// Атмосферное давление


Serial.print(F("Pressure = "));


Serial.print(bmp.readPressure());


Serial.println(" Pa");



// Барометрическая высота относительно “нулевой” отметки


Serial.print(F("Approx altitude = "));


Serial.print(bmp.readAltitude(1013.25)); // Давление на “нулевой” отметке


Serial.println(" m");



Serial.println();


delay(2000);


}


Разумеется, атмосферное давление не меняется столь же быстро, как показания акселерометра. Оставив программу работать некоторое время, можно получить график изменения атмосферного давления. Барометрическая высота кстати, активно используется в авиации, т.к. позволяет получать довольно-таки точную высоту над уровнем моря относительно нулевой отметки. Точность цифровых датчиков весьма высока, и позволяет улавливать даже разницу в высоте менее 1м. Это используется например, в квадрокоптерах для удержания заданной высоты полета.