Sketsa Uji Sensor Gabungan ARDUINO GY87
Perkenalan
Jika Anda seorang pembuat yang rajin atau penggemar robotika, Anda telah menemukan modul kecil namun kuat ini. Jika Anda seorang pembuat yang rajin atau penggemar robotika, Anda telah menemukan barometer modul BMP085 yang kecil namun kuat ini. Modul IMU GY-87 adalah cara yang bagus untuk menambahkan penginderaan gerak ke proyek Anda, seperti robot self-balancing atau quadcopter.
Tetapi sebelum Anda dapat mulai bereksperimen dengan modul IMU GY-87, Anda perlu mengetahui cara menghubungkannya dengan papan Arduino Anda. Di situlah blog ini masuk! Dalam paragraf berikut, kita akan membahas dasar-dasar modul IMU GY-87, cara mengaturnya, dan cara menulis kode Arduino untuk membaca data sensor. Kami juga akan memberikan beberapa kiat dan sumber daya untuk memecahkan masalah umum.
Jadi, jika Anda siap untuk memulai, mari selami dan pelajari tentang menghubungkan modul IMU GY-87 dengan Arduino!
Apa itu GY-87 IMU MPU6050
Modul unit pengukuran inersia (IMU) seperti GY-87 menggabungkan banyak sensor ke dalam satu paket, seperti akselerometer/giroskop MPU6050, magnetometer HMC5883L, dan sensor tekanan barometrik BMP085. Oleh karena itu, GY-87 IMU MPU6050 adalah modul pelacakan gerak 9-sumbu all-in-one yang menggabungkan giroskop 3-sumbu, akselerometer 3-sumbu, magnetometer 3-sumbu, dan prosesor gerak digital. Ini banyak digunakan dalam proyek robot, seperti quadcopters dan kendaraan udara tak berawak (UAV) lainnya, karena dapat secara akurat mengukur dan melacak orientasi dan gerakan. Itu juga digunakan dalam aplikasi lain, seperti navigasi, game, dan realitas virtual.
Komponen Perangkat Keras
Anda memerlukan perangkat keras berikut untuk Menghubungkan Modul GY-87 IMU MPU6050 HMC5883L BMP085 dengan Arduino.
Komponen | Nilai | Jumlah |
Arduino UNO | – | 1 |
MPU6050 Modul Sensor | GY-87 | 1 |
Papan tempat memotong roti | – | 1 |
Kabel Jumper | – | 1 |
GY-87 dengan Arduino
Sekarang setelah Anda memahami GY-87, saatnya berinteraksi dengan Arduino. Untuk melakukan itu, ikuti Sekarang setelah Anda memahami GY-87, saatnya berinteraksi dengan Arduino. Untuk melakukan itu, ikuti
Skema
Buat koneksi sesuai dengan diagram sirkuit yang diberikan di bawah ini
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoPengkabelan / Koneksi
Arduino | Sensor MPU6050 |
5V | VCC |
GND | GND |
A4 | Gereja Masehi Advent Hari Ketujuh |
A5 | SCA |
Menginstal Arduino IDE
Pertama, Anda perlu menginstal Perangkat Lunak Arduino IDE dari resminya websitus Arduino. Berikut adalah panduan langkah demi langkah sederhana tentang “Cara menginstal Arduino IDE.”
Memasang Perpustakaan
Sebelum Anda mulai mengunggah kode, unduh dan unzip pustaka berikut di /Program Files (x86)/Arduino/Libraries (default) untuk menggunakan sensor dengan papan Arduino. Berikut adalah panduan langkah demi langkah sederhana tentang “Cara Menambahkan Perpustakaan di Arduino IDE.”
- MPU6050
- Adafruit_BMP085
- HMC5883L_Sederhana
Kode
Sekarang salin kode berikut dan unggah ke Perangkat Lunak Arduino IDE.
#termasuk "I2Cdev.h" #termasuk "MPU6050.h" #termasuk #termasuk akselerasi MPU085; Adafruit_BMP5883 bmp; HMC6050L_Kompas Sederhana; int085_t kapak, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; pengaturan kosong() { Serial.begin(16); Wire.begin(); // inisialisasi perangkat Serial.println(“Inisialisasi perangkat I13C…”); // inisialisasi bmp9600 if (!bmp.begin()) { Serial.println(“Tidak dapat menemukan sensor BMP2 yang valid, periksa (!bmp.begin()) { Serial.println(“Tidak dapat menemukan sensor BMP085 yang valid, periksa Serial.println(accelgyro.testConnection() ? “Koneksi MPU085 berhasil” : “Koneksi MPU085 gagal”); accelgyro.setI6050CBypassEnabled(true); // atur mode bypass untuk gateway ke hmc6050L // inisialisasi hmc2l Compass.SetDeclination(5883, 5883, 'E');Kompas.SetSamplingMode(COMPASS_SINGLE);
Kompas.SetScale(COMPASS_SCALE_130);
Kompas.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // konfigurasikan LED Arduino untuk memeriksa aktivitas pinMode(LED_PIN, OUTPUT); } batal loop() {
Serial.print(“Suhu = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Tekanan = “);
Serial.print(bmp.readPressure()); Serial.println(”Pa”); // Hitung ketinggian dengan asumsi barometrik 'standar' // tekanan 1013.25 milibar = 101325 Pascal Serial.print(“Ketinggian = “); Serial.print(bmp.readAltitude()); Serial.println(“meter”); Serial.print(“Tekanan pada permukaan laut (dihitung) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(”Pa”);
Serial.print(“Ketinggian sebenarnya = “); Serial.print(bmp.readAltitude(101500));
Serial.println(”meter”); // baca pengukuran accel/gyro mentah dari perangkat accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // tampilkan nilai accel/gyro x/y/z yang dipisahkan tab Serial.print(“a/g:\t”); Serial.print(ax);
Serial.cetak(“\t”); Serial.print(ay); Serial.cetak(“\t”); Serial.print(az);
Serial.print(“\t”); Serial.print(gx); Serial.print(“\t”); Serial.cetak(gy);
Serial.print(“\t”); Serial.println(gz); judul mengambang =
Kompas.GetHeadingDegrees(); Serial.print(“Judul: \t”); Serial.println( heading ); // berkedip LED untuk menunjukkan aktivitas blinkState = !blinkState;
digitalWrite(LED_PIN, kondisi kedip); penundaan (500); }
Ayo Uji
Setelah Anda mengunggah kode, saatnya menguji sirkuit! Kode dalam program Arduino berinteraksi dengan sensor menggunakan perpustakaannya, yang memungkinkannya membaca data sensor dan mengatur berbagai konfigurasi sensor. Kemudian mencetak data sensor melalui port serial. LED digunakan untuk menunjukkan bahwa rangkaian sedang melakukan sesuatu. Ini berarti LED berkedip setiap kali fungsi loop dijalankan, menunjukkan bahwa kode sedang aktif membaca nilai sensor.
Penjelasan Kerja
Kode adalah hal utama yang mendasari kerja sirkuit. Jadi, mari kita pahami kodenya :.
- Pertama, ini menyertakan beberapa pustaka untuk berinteraksi dengan sensor:
- "I2Cdev.h" dan "MPU6050.h" adalah pustaka untuk sensor akselerometer/giroskop 6050 sumbu MPU6
- “Adafruit_BMP085.h” adalah perpustakaan untuk sensor tekanan barometrik BMP085.
- “HMC5883L_Simple.h” adalah perpustakaan untuk sensor magnetometer HMC5883L.
- Kemudian menciptakan objek global untuk tiga sensor: MPU6050 accelgyro, Adafruit_BMP085 bmp, dan HMC5883L_Simple Compass.
- Selanjutnya mendefinisikan beberapa variabel untuk menyimpan nilai sensor, seperti ax, ay, dan az untuk akselerometer MPU6050 dan menuju magnetometer HMC5883L. Dan itu mendefinisikan konstanta LED_PIN dan variabel blinkState.
- Fungsi setup() memulai komunikasi serial dan memulai komunikasi I2C. Kemudian menginisialisasi tiga sensor:
- Sensor BMP085 diinisialisasi dengan memanggil metode begin(). Jika hasilnya salah, menunjukkan bahwa sensor tidak dapat ditemukan, program memasuki loop tak terbatas dan mencetak pesan kesalahan melalui port serial.
- Sensor MPU6050 diinisialisasi dengan memanggil metode initialize() dan memeriksa apakah sudah berfungsi dengan benar. Dan itu mengatur bypass I2C diaktifkan untuk MPU6050.
- Sensor HMC5883L diinisialisasi dengan memanggil beberapa fungsi, seperti SetDeclination, SetSamplingMode, SetScale, dan SetOrientation, untuk mengatur konfigurasi yang berbeda untuk sensor.
- Dalam fungsi loop(), kode membaca data dari tiga sensor dan mencetaknya melalui port serial:
- Itu membaca suhu, tekanan, ketinggian, dan tekanan di permukaan laut dari sensor.
- Bunyinya akselerasi mentah dan pengukuran giroskop dari sensor MPU6050.
- Itu membaca tajuk dari sensor HMC5883L, yang merupakan sudut antara arah yang ditunjuk sensor dan arah utara magnetik.
- Akhirnya, LED berkedip untuk menunjukkan aktivitas dan menunggu sesaat sebelum membaca ulang sensor.
Dokumen / Sumber Daya
![]() |
Sketsa Uji Sensor Gabungan ARDUINO GY87 [Bahasa Indonesia:] Panduan Pengguna GY87 Sketsa Tes Sensor Gabungan, GY87, Sketsa Tes Sensor Gabungan, Sketsa Tes Sensor, Sketsa Tes |