ARDUINO GY87 Kombinə Sensor Test Eskizi
Giriş
Əgər həvəsli bir istehsalçısınızsa və ya robototexnika həvəskarısınızsa, bu kiçik, lakin güclü modulla qarşılaşmısınızsa, həvəsli bir istehsalçı və ya robototexnika həvəskarısınızsa, bu kiçik, lakin güclü BMP085 barometr modulu ilə rastlaşmısınız. GY-87 IMU modulu, özünü balanslaşdıran robot və ya kvadrokopter kimi layihələrinizə hərəkət algılama əlavə etmək üçün əla yoldur.
Ancaq GY-87 IMU modulu ilə təcrübə aparmağa başlamazdan əvvəl onu Arduino lövhənizlə necə əlaqələndirəcəyinizi bilməlisiniz. Bu blogun gəldiyi yer budur! Növbəti paraqraflarda biz GY-87 IMU modulunun əsaslarını, onun necə qurulacağını və sensor məlumatlarını oxumaq üçün Arduino kodunu necə yazacağımızı əhatə edəcəyik. Biz həmçinin ümumi problemlərin aradan qaldırılması üçün bəzi məsləhətlər və resurslar təqdim edəcəyik.
Beləliklə, başlamağa hazırsınızsa, gəlin dalış edək və GY-87 IMU modulunun Arduino ilə qarşılıqlı əlaqəsini öyrənək!
GY-87 IMU MPU6050 nədir
GY-87 kimi inertial ölçü vahidi (IMU) modulları MPU6050 akselerometr/giroskop, HMC5883L maqnitometr və BMP085 barometrik təzyiq sensoru kimi bir çox sensoru bir paketdə birləşdirir. Beləliklə, GY-87 IMU MPU6050 9 oxlu giroskopu, 3 oxlu akselerometri, 3 oxlu maqnitometri və rəqəmsal hərəkət prosessorunu birləşdirən hamısı bir yerdə 3 oxlu hərəkət izləmə moduludur. Kvadrokopterlər və digər pilotsuz uçuş aparatları (PUA) kimi robot layihələrində çox istifadə olunur, çünki oriyentasiya və hərəkəti dəqiq ölçə və izləyə bilir. O, həmçinin naviqasiya, oyun və virtual reallıq kimi digər proqramlarda da istifadə olunur.
Aparat Komponentləri
GY-87 IMU MPU6050 HMC5883L BMP085 Modulunu Arduino ilə əlaqələndirmək üçün sizə aşağıdakı avadanlıq tələb olunacaq.
Komponentlər | Dəyər | Miqdar |
Arduino UNO | – | 1 |
MPU6050 Sensor modulu | GY-87 | 1 |
Çörək lövhəsi | – | 1 |
Jumper naqilləri | – | 1 |
Arduino ilə GY-87
İndi GY-87-ni başa düşdüyünüz üçün Arduino ilə əlaqə qurmağın vaxtı gəldi. Bunu etmək üçün izləyin. İndi GY-87-ni başa düşdüyünüz üçün Arduino ilə əlaqə qurmağın vaxtı gəldi. Bunu etmək üçün izləyin
Sxematik
Aşağıda verilmiş dövrə sxeminə uyğun olaraq əlaqə qurun
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoNaqil / Bağlantılar
Arduino | MPU6050 Sensor |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
Arduino IDE quraşdırılması
Əvvəlcə Arduino IDE Proqramını rəsmi saytından quraşdırmalısınız webArduino saytı. Budur “Arduino IDE-ni necə quraşdırmaq” mövzusunda sadə addım-addım təlimat.
Kitabxanaların quraşdırılması
Kodu yükləməyə başlamazdan əvvəl /Program-da aşağıdakı kitabxanaları yükləyin və açın FileSensordan Arduino lövhəsi ilə istifadə etmək üçün s (x86)/Arduino/Kitabxanalar (standart). Budur “Arduino IDE-də kitabxanaları necə əlavə etmək olar” mövzusunda sadə addım-addım təlimat.
- MPU6050
- Adafruit_BMP085
- HMC5883L_Sadə
Kod
İndi aşağıdakı kodu kopyalayın və Arduino IDE Proqramına yükləyin.
#include “I2Cdev.h” #include “MPU6050.h” #include #daxildir MPU085 sürətləndirici; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // cihazları işə salın Serial.println(“I13C cihazları işə salınır…”); // bmp9600-i işə salın (!bmp.begin()) { Serial.println("Etibarlı BMP2 sensoru tapılmadı, yoxlayın (!bmp.begin()) { Serial.println("Etibarlı BMP085 sensoru tapılmadı, yoxlayın Serial.println(accelgyro.testConnection() ? “MPU085 bağlantısı müvəffəqiyyətli” : “MPU085 bağlantısı uğursuz oldu”); accelgyro.setI6050CBypassEnabled(doğru); // hmc6050L şlüz üçün bypass rejimi təyin edin //hmcass. 2, 'E'); Kompas.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // fəaliyyət pinMode (LED_PIN, OUTPUT) yoxlamaq üçün Arduino LED-ni konfiqurasiya edin; } boş döngə () {
Serial.print(“Temperatur = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print("Təzyiq = ");
Serial.print(bmp.readPressure()); Serial.println("Pa"); // 'standart' barometrik qəbul edərək hündürlüyü hesablayın // təzyiq 1013.25 millibar = 101325 Pascal Serial.print(“Hündürlük = “); Serial.print(bmp.readAltitude()); Serial.println (“metr”); Serial.print(“Mühür səviyyəsində təzyiq (hesablanmış) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print(“Real hündürlük = “); Serial.print(bmp.readAltitude(101500));
Serial.println("metr"); // accelgyro.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz) cihazından xam sürətlənmə/giro ölçmələrini oxuyun; // nişanla ayrılmış accel/gyro x/y/z dəyərlərini göstər Serial.print(“a/g:\t”); Serial.print(balta);
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); üzən başlıq =
Compass.GetHeadingDegrees(); Serial.print("Başlıq: \t"); Serial.println( başlıq ); // aktivliyi göstərmək üçün LED yanıb-sönür blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); gecikmə (500); }
Gəlin Test edək
Kodu yüklədikdən sonra dövrəni yoxlamağın vaxtı gəldi! Arduino proqramındakı kod, onların kitabxanalarından istifadə edərək sensorlarla birləşir ki, bu da sensor məlumatlarını oxumağa və sensorların müxtəlif konfiqurasiyalarını təyin etməyə imkan verir. Sonra sensor məlumatlarını seriya portu üzərində çap edir. LED, dövrənin bir şey etdiyini göstərmək üçün istifadə olunur. Bu o deməkdir ki, loop funksiyası hər dəfə işə salındıqda LED yanıb-sönür və kodun sensor dəyərlərini aktiv şəkildə oxuduğunu göstərir.
İş izahatı
Kod dövrənin işinin əsaslandığı əsas şeydir. Beləliklə, kodu anlayaq:.
- Birincisi, sensorlarla interfeys üçün bir neçə kitabxana daxildir:
- “I2Cdev.h” və “MPU6050.h” MPU6050 6 oxlu akselerometr/giroskop sensoru üçün kitabxanalardır.
- “Adafruit_BMP085.h” BMP085 barometrik təzyiq sensoru üçün kitabxanadır.
- “HMC5883L_Simple.h” HMC5883L maqnitometr sensoru üçün kitabxanadır.
- Sonra üç sensor üçün qlobal obyektlər yaradır: MPU6050 accelgyro, Adafruit_BMP085 bmp və HMC5883L_Simple Compass.
- Daha sonra o, MPU6050 akselerometri üçün ax, ay və az kimi sensor dəyərlərini saxlamaq və HMC5883L maqnitometrinə getmək üçün bəzi dəyişənləri müəyyənləşdirir. Və o, LED_PIN sabitini və blinkState dəyişənini təyin edir.
- Setup() funksiyası serial rabitəyə başlayır və I2C rabitəsinə başlayır. Sonra üç sensoru işə salır:
- BMP085 sensoru begin() metodunu çağırmaqla işə salınır. Bu, sensorun tapılmadığını göstərən yalnış qaytararsa, proqram sonsuz dövrəyə daxil olur və serial port üzərində səhv mesajı çap edir.
- MPU6050 sensoru initialize() metoduna zəng etməklə və onun düzgün işləməsini yoxlamaqla işə salınır. Və MPU2 üçün aktivləşdirilmiş I6050C bypassını təyin etdi.
- HMC5883L sensoru SetDeclination, SetS kimi bəzi funksiyaları çağırmaqla işə salınır.ampSensor üçün müxtəlif konfiqurasiyaları təyin etmək üçün lingMode, SetScale və SetOrientation.
- Loop() funksiyasında kod üç sensordan məlumatları oxuyur və seriya portu üzərində çap edir:
- Sensordan dəniz səviyyəsində temperatur, təzyiq, hündürlük və təzyiqi oxuyur.
- O, MPU6050 sensorundan xam sürətlənmə və giroskop ölçmələrini oxuyur.
- O, HMC5883L sensorundan başlığı oxuyur, bu sensorun göstərdiyi istiqamətlə maqnit şimalın olduğu istiqamət arasındakı bucaqdır.
- Nəhayət, aktivliyi göstərmək üçün LED-i yanıb-sönür və sensorları yenidən oxumazdan əvvəl bir an gözləyir.
Sənədlər / Resurslar
![]() |
ARDUINO GY87 Kombinə Sensor Test Eskizi [pdf] İstifadəçi Təlimatı GY87 Birləşdirilmiş Sensor Test Eskizi, GY87, Birləşdirilmiş Sensor Test Eskizi, Sensor Test Eskizi, Test Eskizi |