Тэставы эскіз камбінаванага датчыка ARDUINO GY87
Уводзіны
Калі вы заўзяты вытворца або энтузіяст робататэхнікі, вы сутыкнуліся з гэтым малюсенькім, але магутным модулем. Калі вы заўзяты вытворцам або энтузіястам робататэхнікі, вы натыкнуліся на гэты малюсенькі, але магутны модульны барометр BMP085. Модуль GY-87 IMU - выдатны спосаб дадаць датчык руху ў вашыя праекты, такія як самабалансуючы робат або квадракоптэр.
Але перш чым пачаць эксперыментаваць з модулем GY-87 IMU, вам трэба ведаць, як звязаць яго з платай Arduino. Вось дзе гэты блог прыходзіць! У наступных абзацах мы разгледзім асновы модуля GY-87 IMU, як яго наладзіць і як напісаць код Arduino для чытання даных датчыка. Мы таксама дамо некаторыя парады і рэсурсы для вырашэння распаўсюджаных праблем.
Такім чынам, калі вы гатовыя пачаць, давайце паглыбімся і даведаемся пра ўзаемадзеянне модуля GY-87 IMU з 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.
Кампаненты | Каштоўнасць | Колькасць |
Arduino UNO | – | 1 |
МПУ6050 модуль датчыка | GY-87 | 1 |
Макетная дошка | – | 1 |
Перамычкі | – | 1 |
GY-87 з Arduino
Цяпер, калі вы зразумелі GY-87, прыйшоў час узаемадзейнічаць з Arduino. Каб зрабіць гэта, прытрымлівайцеся Цяпер, калі вы зразумелі GY-87, прыйшоў час узаемадзейнічаць з Arduino. Каб зрабіць гэта, прытрымлівайцеся
Схема
Выканайце злучэнні ў адпаведнасці са схемай, прыведзенай ніжэй
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoПраводка / злучэнні
Arduino | Датчык MPU6050 |
5V | VCC |
GND | GND |
A4 | ПДР |
A5 | SCA |
Ўстаноўка Arduino IDE
Спачатку вам трэба ўсталяваць праграмнае забеспячэнне Arduino IDE з афіцыйнага сайта webсайт Arduino. Вось простая пакрокавая інструкцыя "Як усталяваць Arduino IDE".
Ўстаноўка бібліятэк
Перш чым пачаць загрузку кода, загрузіце і распакуйце наступныя бібліятэкі ў /Program Files (x86)/Arduino/Бібліятэкі (па змаўчанні), каб выкарыстоўваць датчык з платай Arduino. Вось простая пакрокавая інструкцыя «Як дадаць бібліятэкі ў Arduino IDE».
- МПУ6050
- Adafruit_BMP085
- HMC5883L_Просты
Код
Цяпер скапіруйце наступны код і загрузіце яго ў праграмнае забеспячэнне Arduino IDE.
#include “I2Cdev.h” #include “MPU6050.h” #include #уключыць акселгіра MPU085; Adafruit_BMP5883 bmp; HMC6050L_Просты компас; int085_t сякера, ай, аз; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; несапраўдная ўстаноўка () {Serial.begin (16); Wire.begin(); // ініцыялізацыя прылад Serial.println(“Ініцыялізацыя прылад I13C…”); // ініцыялізаваць bmp9600 if (!bmp.begin()) { Serial.println(“Немагчыма знайсці сапраўдны датчык BMP2, праверце (!bmp.begin()) { Serial.println(“Немагчыма знайсці сапраўдны датчык BMP085, праверце Serial.println(accelgyro.testConnection() ? “Злучэнне MPU085 паспяховае” : “Памылка злучэння MPU085”); accelgyro.setI6050CBypassEnabled(true); // усталяваць рэжым абыходу для шлюза да hmc6050L // ініцыялізаваць hmc2l Compass.SetDeclination(5883, 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.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(ax);
Serial.print(“\t”); Serial.print(ay); Serial.print(“\t”); Serial.print(az);
Serial.print(“\t”); Serial.print(gx); Serial.print(“\t”); Serial.print(gy);
Serial.print(“\t”); Serial.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, Камбінаваны тэставы эскіз датчыка, Тэставы эскіз датчыка, Тэставы эскіз |