ARDUINO GY87 Sketsa Tés sénsor Gabungan
Bubuka
Upami anjeun tukang nyieun atanapi peminat robotika, anjeun parantos mendakan modul anu alit ieu tapi kuat Upami anjeun tukang nyieun atanapi anu mikaresep robotika, anjeun parantos mendakan barometer BMP085 modul anu alit tapi kuat ieu. Modul GY-87 IMU mangrupikeun cara anu saé pikeun nambihan sensing gerak kana proyék anjeun, sapertos robot nyaimbangkeun diri atanapi quadcopter.
Tapi saencan Anjeun ngamimitian ékspérimén sareng modul GY-87 IMU, anjeun kedah terang kumaha ngahubungkeunana sareng papan Arduino anjeun. Éta tempat blog ieu asup! Dina paragraf di handap ieu, urang bakal nutupan dasar-dasar modul GY-87 IMU, kumaha nyetélana, sareng kumaha cara nyerat kode Arduino pikeun maca data sensor. Kami ogé bakal nyayogikeun sababaraha tip sareng sumber pikeun ngungkulan masalah umum.
Janten, upami anjeun siap ngamimitian, hayu urang teuleum sareng diajar ngeunaan ngahubungkeun modul GY-87 IMU sareng Arduino!
Naon GY-87 IMU MPU6050
Modul unit ukur inersia (IMU) sapertos GY-87 ngagabungkeun seueur sénsor kana hiji pakét, sapertos accelerometer/gyroscope MPU6050, magnetometer HMC5883L, sareng sénsor tekanan barometrik BMP085. Lantaran kitu, GY-87 IMU MPU6050 mangrupikeun modul pelacak gerak 9 sumbu sadaya-dina anu ngagabungkeun giroskop 3 sumbu, akselerometer sumbu 3, magnetometer sumbu 3, sareng prosésor gerak digital. Hal ieu dipaké pisan dina proyék robotic, kawas quadcopters jeung kandaraan hawa unmanned séjén (UAVs), sabab akurat bisa ngukur jeung ngalacak orientasi jeung gerak. Éta ogé dianggo dina aplikasi sanés, sapertos navigasi, kaulinan, sareng kanyataan virtual.
Komponén hardware
Anjeun bakal merlukeun hardware handap pikeun Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Module kalawan Arduino.
Komponén | Nilai | Qty |
Arduino UNO | – | 1 |
MPU6050 Modul sénsor | GY-87 | 1 |
Breadboard | – | 1 |
Kawat Jumper | – | 1 |
GY-87 kalawan Arduino
Ayeuna anjeun parantos ngartos GY-87, waktosna pikeun ngahubungkeun sareng Arduino. Jang ngalampahkeun éta, tuturkeun Ayeuna yén anjeun parantos ngartos GY-87, waktosna pikeun ngahubungkeun sareng Arduino. Jang ngalampahkeun éta, turutan
Skematik
Jieun sambungan nurutkeun diagram sirkuit dibere handap
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoWiring / Sambungan
Arduino | MPU6050 sénsor |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
Masang Arduino IDE
Mimiti, anjeun kedah pasang Arduino IDE Software ti resmi na websitus Arduino. Ieu mangrupikeun pituduh léngkah-léngkah anu sederhana ngeunaan "Kumaha carana masang Arduino IDE."
Masang Perpustakaan
Sateuacan anjeun ngawitan unggah kode, unduh sareng unzip perpustakaan ieu di /Program Files (x86) / Arduino / Perpustakaan (standar) guna ngagunakeun sensor jeung dewan Arduino. Ieu mangrupikeun pituduh léngkah-léngkah anu sederhana ngeunaan "Kumaha Nambahkeun Perpustakaan dina Arduino IDE."
- MPU6050
- Adafruit_BMP085
- HMC5883L_Saderhana
Kodeu
Ayeuna salin kodeu di handap ieu sareng unggah kana Arduino IDE Software.
#include "I2Cdev.h" #include "MPU6050.h" #include #kaasup MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Kompas Basajan; int085_t kampak, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = palsu; batal setup () {Serial.begin (16); Wire.begin(); // initialize devices Serial.println("Initializing I13C devices..."); // initialize bmp9600 lamun (! bmp.begin ()) { Serial.println ("Teu bisa manggihan sensor BMP2 valid, pariksa (! bmp.begin ()) { Serial.println (" Teu bisa manggihan sensor BMP085 valid, pariksa Serial.println (accelgyro.testConnection () ? "Sambungan MPU085 suksés" : "Sambungan MPU085 gagal"); accelgyro.setI6050CBypassEnabled (leres); 6050, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // ngonpigurasikeun Arduino LED pikeun mariksa aktivitas pinMode (LED_PIN, OUTPUT); } void loop() {
Serial.print("Suhu = "); Serial.print (bmp.readTemperature ());
Serial.println("*C"); Serial.print("Tekanan = ");
Serial.print (bmp.readPressure ()); Serial.println("Pa"); // Calculate altitude assuming 'standard' barometric // pressure of 1013.25 millibar = 101325 Pascal Serial.print ("Altitude = "); Serial.print (bmp.readAltitude ()); Serial.println("méter"); Serial.print("Tekanan dina permukaan laut (diitung) = ");
Serial.print (bmp.readSealevelPressure ()); Serial.println("Pa");
Serial.print("Altitude Real = "); Serial.print (bmp.readAltitude (101500));
Serial.println("méter"); // maca ukuran accel / gyro atah tina alat accelgyro.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz); // tampilan tab-dipisahkeun accel / gyro x / y / z nilai Serial.print ("a / g: \ t"); Serial.print (kampak);
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); judul ngambang =
Compass.GetHeadingDegrees(); Serial.print("Judul: \t"); Serial.println(judul); // Blink LED pikeun nunjukkeun kagiatan blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); reureuh (500); }
Hayu urang Uji
Sakali anjeun unggah kode, éta waktuna pikeun nguji sirkuit! Kodeu dina program Arduino interfaces jeung sensor ngagunakeun perpustakaan maranéhanana, anu ngamungkinkeun pikeun maca data sensor tur nyetel rupa konfigurasi tina sensor. Lajeng prints kaluar data sensor ngaliwatan port serial. LED dipaké pikeun némbongkeun yén sirkuit ngalakonan hiji hal. Ieu hartina LED blinks unggal waktos fungsi loop dijalankeun, nunjukkeun yén kode nu aktip maca nilai sensor.
Penjelasan Gawé
Kodeu mangrupikeun hal utama anu didasarkeun ku sirkuit. Janten, hayu urang ngartos kodeu:.
- Mimiti, éta kalebet sababaraha perpustakaan pikeun ngahubungkeun sareng sénsor:
- "I2Cdev.h" sareng "MPU6050.h" mangrupikeun perpustakaan pikeun sensor accelerometer/gyroscope MPU6050 6-axis
- "Adafruit_BMP085.h" mangrupakeun perpustakaan pikeun sensor tekanan barometric BMP085.
- "HMC5883L_Simple.h" mangrupakeun perpustakaan pikeun sensor magnetometer HMC5883L.
- Teras nyiptakeun objék global pikeun tilu sénsor: MPU6050 accelgyro, Adafruit_BMP085 bmp, sareng HMC5883L_Simple Compass.
- Salajengna, éta netepkeun sababaraha variabel pikeun nyimpen nilai sensor, sapertos kampak, ay, sareng az pikeun accelerometer MPU6050 sareng nuju ka magnetometer HMC5883L. Sarta eta ngahartikeun konstanta LED_PIN sarta variabel blinkState.
- fungsi setelan () dimimitian komunikasi serial tur dimimitian komunikasi I2C. Lajeng ieu initializes tilu sensor:
- sensor BMP085 ieu initialized ku nelepon dimimitian () métode. Upami ieu mulih palsu, nunjukkeun yén sénsor teu bisa kapanggih, program asup kana loop taya sarta prints pesen kasalahan dina port serial.
- sensor MPU6050 ieu initialized ku nelepon metoda initialize () jeung pariksa naha éta jalan leres. Sareng éta nyetél I2C bypass diaktipkeun pikeun MPU6050.
- Sensor HMC5883L diinisialisasi ku nelepon sababaraha fungsi, sapertos SetDeclination, SetSamplingMode, SetScale, sareng SetOrientation, pikeun netepkeun konfigurasi anu béda pikeun sénsor.
- Dina fungsi loop (), kode nu maca data tina tilu sensor sarta prints kaluar ngaliwatan port serial:
- Éta maca suhu, tekanan, luhurna, sareng tekanan dina permukaan laut tina sénsor.
- Éta maca akselerasi atah sareng pangukuran giroskop tina sénsor MPU6050.
- Éta maca judul tina sénsor HMC5883L, nyaéta sudut antara arah anu ditunjukkeun ku sénsor sareng arah anu perenahna kalér magnét.
- Tungtungna, éta kedip-kedip LED pikeun nunjukkeun kagiatan sareng ngantosan sakedap sateuacan maca deui sensor.
Dokumén / Sumberdaya
![]() |
ARDUINO GY87 Sketsa Tés sénsor Gabungan [pdf] Manual pamaké GY87 Gabungan Sénsor Test Sketsa, GY87, Gabungan Sénsor Test Sketsa, Sénsor Test Sketsa, Test Sketsa |