Схема тестирования комбинированного датчика ARDUINO GY87
Введение
Если вы заядлый производитель или энтузиаст робототехники, вы столкнулись с этим крошечным, но мощным модулем. Если вы заядлый производитель или энтузиаст робототехники, вы столкнулись с этим крошечным, но мощным модулем барометра BMP085. Модуль GY-87 IMU — отличный способ добавить датчик движения к вашим проектам, таким как самобалансирующийся робот или квадрокоптер.
Но прежде чем вы сможете начать экспериментировать с модулем IMU GY-87, вам нужно знать, как связать его с вашей платой Arduino. Вот где этот блог входит! В следующих параграфах мы рассмотрим основы модуля GY-87 IMU, как его настроить и как написать код Arduino для чтения данных датчика. Мы также предоставим несколько советов и ресурсов для устранения распространенных проблем.
Итак, если вы готовы начать, давайте погрузимся и узнаем о взаимодействии модуля IMU GY-87 с Arduino!
Что такое GY-87 IMU MPU6050
Модули блока инерциальных измерений (IMU), такие как GY-87, объединяют множество датчиков в одном корпусе, например, акселерометр/гироскоп MPU6050, магнитометр HMC5883L и датчик барометрического давления BMP085. Следовательно, GY-87 IMU MPU6050 представляет собой универсальный 9-осевой модуль отслеживания движения, который сочетает в себе 3-осевой гироскоп, 3-осевой акселерометр, 3-осевой магнитометр и цифровой процессор движения. Он часто используется в роботизированных проектах, таких как квадрокоптеры и другие беспилотные летательные аппараты (БПЛА), потому что он может точно измерять и отслеживать ориентацию и движение. Он также используется в других приложениях, таких как навигация, игры и виртуальная реальность.
Аппаратные компоненты
Вам потребуется следующее оборудование для сопряжения модуля GY-87 IMU MPU6050 HMC5883L BMP085 с Arduino.
Компоненты | Ценить | Кол-во |
Ардуино УНО | – | 1 |
MPU6050 Сенсорный модуль | GY-87 | 1 |
Макетная плата | – | 1 |
Провода-перемычки | – | 1 |
GY-87 с Ардуино
Теперь, когда вы поняли GY-87, пришло время взаимодействовать с Arduino. Для этого выполните следующие действия. Теперь, когда вы поняли GY-87, пришло время взаимодействовать с Arduino. Для этого следуйте
Схема
Выполните соединения в соответствии со схемой, приведенной ниже.
GY-87 IMU MPU6050 HMC5883L BMP085 АрдуиноПроводка / соединения
Ардуино | Датчик MPU6050 |
5V | ВКЦ |
Земля | Земля |
A4 | ПДД |
A5 | СКА |
Установка Arduino IDE
Во-первых, вам необходимо установить программное обеспечение Arduino IDE с официального сайта. webсайт Ардуино. Вот простое пошаговое руководство «Как установить Arduino IDE».
Установка библиотек
Прежде чем начать загрузку кода, загрузите и разархивируйте следующие библиотеки в /Program Files (x86)/Arduino/Libraries (по умолчанию), чтобы использовать датчик с платой Arduino. Вот простое пошаговое руководство «Как добавить библиотеки в Arduino IDE».
- MPU6050
- Адафрут_BMP085
- HMC5883L_Простой
Код
Теперь скопируйте следующий код и загрузите его в программное обеспечение Arduino IDE.
#include "I2Cdev.h" #include "MPU6050.h" #include #включать ускорительный гироскоп MPU085; Adafruit_BMP5883 bmp; HMC6050L_Простой компас; int085_t топор, ау, аз; int5883_t гх, гы, гз; #define LED_PIN 16 bool blinkState = false; недействительными настройками () { Serial.begin (16); Провод.начать(); // инициализируем устройства Serial.println("Инициализация устройств I13C..."); // инициализируем bmp9600 if (!bmp.begin()) { Serial.println("Не удалось найти допустимый датчик BMP2, проверьте (!bmp.begin()) { Serial.println("Не удалось найти допустимый датчик BMP085, check Serial.println(accelgyro.testConnection() ? «Успешное соединение с MPU085» : «Сбой соединения с MPU085»); accelgyro.setI6050CBypassEnabled(true); // установить режим обхода для шлюза на hmc6050L // инициализировать hmc2l Compass.SetDeclination(5883, 5883, 'Е'); Compass.SetSamplingMode (COMPASS_SINGLE);
Компас.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // настроить светодиод Arduino для проверки активности pinMode(LED_PIN, OUTPUT); } недействительный цикл () {
Serial.print («Температура =»); Serial.print(bmp.readTemperature());
Serial.println("*C"); Serial.print("Давление = ");
Serial.print(bmp.readPressure()); Serial.println("Па"); // Рассчитать высоту, предполагая «стандартное» барометрическое давление // 1013.25 мбар = 101325 Паскалей Serial.print("Altitude = "); Serial.print(bmp.readAltitude()); Serial.println («метры»); Serial.print("Давление на уровне моря (расчетное) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println("Па");
Serial.print("Реальная высота = "); Serial.print (bmp.readAltitude (101500));
Serial.println («метры»); // прочитать необработанные измерения ускорения/гироскопа с устройства accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // отображение значений ускорения/гироскопа x/y/z, разделенных табуляцией Serial.print("a/g:\t"); Serial.print (топор);
Serial.print("\t"); Serial.print (ау); Serial.print("\t"); Серийный.принт(аз);
Serial.print("\t"); Серийный .print (gx); Serial.print("\t"); Serial.print(гы);
Serial.print("\t"); Серийный.println(gz); плавающий заголовок =
Compass.GetHeadingDegrees(); Serial.print("Заголовок: \t"); Serial.println(заголовок); // мигать светодиодом для индикации активности blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); задержка(500); }
Давайте проверим это
Как только вы загрузите код, пришло время протестировать схему! Код в программе Arduino взаимодействует с датчиками, используя их библиотеки, что позволяет ему считывать данные датчиков и устанавливать различные конфигурации датчиков. Затем он распечатывает данные датчика через последовательный порт. Светодиод используется, чтобы показать, что схема что-то делает. Это означает, что светодиод мигает каждый раз, когда запускается функция цикла, указывая на то, что код активно считывает значения датчика.
Рабочее объяснение
Код — это главное, на чем основана работа схемы. Итак, давайте разбираться в коде: .
- Во-первых, он включает в себя несколько библиотек для взаимодействия с датчиками:
- «I2Cdev.h» и «MPU6050.h» — это библиотеки для 6050-осевого акселерометра/гироскопа MPU6.
- «Adafruit_BMP085.h» — это библиотека для датчика барометрического давления BMP085.
- «HMC5883L_Simple.h» — это библиотека для датчика магнитометра HMC5883L.
- Затем он создает глобальные объекты для трех датчиков: MPU6050 accelgyro, Adafruit_BMP085 bmp и HMC5883L_Simple Compass.
- Затем он определяет некоторые переменные для хранения значений датчиков, таких как ax, ay и az для акселерометра MPU6050 и для магнитометра HMC5883L. И он определяет константу LED_PIN и переменную blinkState.
- Функция setup() запускает последовательную связь и начинает связь I2C. Затем он инициализирует три датчика:
- Датчик BMP085 инициализируется вызовом метода begin(). Если это возвращает false, указывая на то, что датчик не может быть найден, программа входит в бесконечный цикл и печатает сообщение об ошибке через последовательный порт.
- Датчик MPU6050 инициализируется вызовом метода initialize() и проверкой правильности его работы. И он включил обход I2C для MPU6050.
- Датчик HMC5883L инициализируется вызовом некоторых функций, таких как SetDeclination, SetSamplingMode, SetScale и SetOrientation для настройки различных конфигураций датчика.
- В функции loop() код считывает данные с трех датчиков и распечатывает их через последовательный порт:
- Он считывает температуру, давление, высоту над уровнем моря и давление на уровне моря с датчика.
- Он считывает необработанные измерения ускорения и гироскопа с датчика MPU6050.
- Он считывает курс с датчика HMC5883L, который представляет собой угол между направлением, в котором указывает датчик, и направлением, в котором лежит магнитный север.
- Наконец, он мигает светодиодом, чтобы указать на активность, и ждет некоторое время, прежде чем повторно считывать показания датчиков.
Документы/Ресурсы
![]() | Схема тестирования комбинированного датчика ARDUINO GY87 [pdf] Руководство пользователя Комбинированный тестовый эскиз датчика GY87, GY87, Комбинированный тестовый эскиз датчика, Тестовый эскиз датчика, Тестовый эскиз |