ARDUINO-lgoo

Lakaran Ujian Sensor Gabungan ARDUINO GY87

ARDUINO-GY87-Gabungan-Sensor-Ujian-Lakaran-produk

pengenalan

Jika anda seorang pembuat yang gemar atau peminat robotik, anda telah menjumpai modul kecil namun berkuasa ini Jika anda seorang pembuat yang gemar atau peminat robotik, anda telah menemui barometer modul BMP085 yang kecil namun berkuasa ini. Modul GY-87 IMU ialah cara yang bagus untuk menambahkan penderiaan gerakan pada projek anda, seperti robot pengimbangan diri atau quadcopter.
Tetapi sebelum anda boleh mula bereksperimen dengan modul GY-87 IMU, anda perlu tahu cara untuk menghubungkannya dengan papan Arduino anda. Di situlah masuknya blog ini! Dalam perenggan berikut, kami akan merangkumi asas modul GY-87 IMU, cara menyediakannya dan cara menulis kod Arduino untuk membaca data sensor. Kami juga akan menyediakan beberapa petua dan sumber untuk menyelesaikan masalah biasa.
Jadi, jika anda sudah bersedia untuk bermula, mari selami dan pelajari tentang antara muka modul GY-87 IMU dengan Arduino!

Apakah itu GY-87 IMU MPU6050

Modul unit ukuran inersia (IMU) seperti GY-87 menggabungkan banyak penderia ke dalam satu pakej, seperti pecutan/gyroskop MPU6050, magnetometer HMC5883L dan penderia tekanan barometrik BMP085. Oleh itu, GY-87 IMU MPU6050 ialah modul penjejakan gerakan 9 paksi semua-dalam-satu yang menggabungkan giroskop 3 paksi, pecutan 3 paksi, magnetometer 3 paksi dan pemproses gerakan digital. Ia banyak digunakan dalam projek robotik, seperti quadcopter dan kenderaan udara tanpa pemandu (UAV) lain, kerana ia boleh mengukur dan menjejaki orientasi dan gerakan dengan tepat. Ia juga digunakan dalam aplikasi lain, seperti navigasi, permainan dan realiti maya.

Komponen Perkakasan

Anda memerlukan perkakasan berikut untuk Mengantaramuka GY-87 IMU MPU6050 HMC5883L BMP085 Modul dengan Arduino.

Komponen Nilai Kuantiti
Arduino UNO 1
MPU6050 Modul Sensor GY-87 1
Papan roti 1
Wayar Pelompat 1

GY-87 dengan Arduino 

Sekarang setelah anda memahami GY-87, sudah tiba masanya untuk bersambung dengan Arduino. Untuk melakukan itu, ikuti Sekarang bahawa anda telah memahami GY-87, sudah tiba masanya untuk antara muka dengan Arduino. Untuk melakukan itu, ikuti

Skema

Buat sambungan mengikut rajah litar yang diberikan di bawah

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Gabungan-Sensor-Ujian-Lakaran-rajah 1Pendawaian / Sambungan

Arduino Penderia MPU6050
5V VCC
GND GND
A4 SDA
A5 SCA

Memasang Arduino IDE 

Mula-mula, anda perlu memasang Perisian IDE Arduino dari rasminya webtapak Arduino. Berikut ialah panduan langkah demi langkah mudah tentang "Cara memasang Arduino IDE."

Memasang Perpustakaan 

Sebelum anda mula memuat naik kod, muat turun dan nyahzip perpustakaan berikut di /Program Files (x86)/Arduino/Libraries (lalai) untuk menggunakan sensor dengan papan Arduino. Berikut ialah panduan langkah demi langkah mudah tentang "Cara Menambah Perpustakaan dalam Arduino IDE."

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Mudah

Kod 

Sekarang salin kod berikut dan muat naik ke Perisian IDE Arduino.

#include “I2Cdev.h” #include “MPU6050.h” #include #termasuk MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Kompas Mudah; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = palsu; void setup() { Serial.begin(16); Wire.begin(); // memulakan peranti Serial.println(“Memulakan peranti I13C…”); // mulakan bmp9600 jika (!bmp.begin()) { Serial.println(“Tidak dapat mencari penderia BMP2 yang sah, semak (!bmp.begin()) { Serial.println(“Tidak dapat menjumpai penderia BMP085 yang sah, semak Serial.println(accelgyro.testConnection() ? “Sambungan MPU085 berjaya” : “Sambungan MPU085 gagal”); accelgyro.setI6050CBypassEnabled(true); // tetapkan mod pintasan untuk get laluan ke hmc6050L //mulakan hmc2l Compass.SetDeclination(5883Declination.SetDeclination. 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // konfigurasikan LED Arduino untuk menyemak aktiviti pinMode(LED_PIN, OUTPUT); } gelung kosong() {
Serial.print(“Suhu = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Tekanan = “);
Serial.print(bmp.readPressure()); Serial.println(”Pa”); // Kira ketinggian dengan andaian barometrik 'standard' // tekanan 1013.25 milibar = 101325 Pascal Serial.print(“Altitud = “); Serial.print(bmp.readAltitude()); Serial.println(“meter”); Serial.print(“Tekanan pada paras laut (dikira) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(”Pa”);
Serial.print(“Ketinggian sebenar = “); Serial.print(bmp.readAltitude(101500));
Serial.println(”meter”); // baca ukuran accel/gyro mentah daripada peranti accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // paparkan nilai accel/gyro x/y/z yang dipisahkan tab Serial.print(“a/g:\t”); Serial.print(kapak);
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); tajuk terapung =
Compass.GetHeadingDegrees(); Serial.print(“Tajuk: \t”); Serial.println( heading ); // berkelip LED untuk menunjukkan aktiviti blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); kelewatan(500); }

Jom Uji 

Sebaik sahaja anda memuat naik kod, sudah tiba masanya untuk menguji litar! Kod dalam program Arduino antara muka dengan penderia menggunakan perpustakaan mereka, yang membolehkan ia membaca data penderia dan menetapkan pelbagai konfigurasi penderia. Kemudian ia mencetak data penderia melalui port bersiri. LED digunakan untuk menunjukkan bahawa litar sedang melakukan sesuatu. Ini bermakna LED berkelip setiap kali fungsi gelung dijalankan, menunjukkan bahawa kod sedang aktif membaca nilai penderia.

Penjelasan Kerja 

Kod adalah perkara utama yang menjadi asas kerja litar. Jadi, mari kita fahami kod:.

  • Pertama, ia termasuk beberapa perpustakaan untuk antara muka dengan penderia:
  • "I2Cdev.h" dan "MPU6050.h" ialah perpustakaan untuk penderia pecutan/giroskop 6050 paksi MPU6
  • "Adafruit_BMP085.h" ialah perpustakaan untuk penderia tekanan barometrik BMP085.
  • "HMC5883L_Simple.h" ialah perpustakaan untuk penderia magnetometer HMC5883L.
  • Kemudian ia mencipta objek global untuk tiga penderia: MPU6050 accelgyro, Adafruit_BMP085 bmp dan HMC5883L_Simple Compass.
  • Seterusnya, ia mentakrifkan beberapa pembolehubah untuk menyimpan nilai penderia, seperti ax, ay, dan az untuk pecutan MPU6050 dan menuju ke magnetometer HMC5883L. Dan ia mentakrifkan pemalar LED_PIN dan pembolehubah blinkState.
  • Fungsi persediaan() memulakan komunikasi bersiri dan memulakan komunikasi I2C. Kemudian ia memulakan tiga sensor:
  • Sensor BMP085 dimulakan dengan memanggil kaedah begin(). Jika ini mengembalikan palsu, menunjukkan bahawa penderia tidak dapat ditemui, atur cara memasuki gelung tak terhingga dan mencetak mesej ralat pada port bersiri.
  • Sensor MPU6050 dimulakan dengan memanggil kaedah initialize() dan menyemak sama ada ia berfungsi dengan betul. Dan ia menetapkan pintasan I2C didayakan untuk MPU6050.
  • Penderia HMC5883L dimulakan dengan memanggil beberapa fungsi, seperti SetDeclination, SetSamplingMode, SetScale dan SetOrientation, untuk menetapkan konfigurasi berbeza untuk sensor.
  • Dalam fungsi gelung(), kod membaca data daripada tiga penderia dan mencetaknya melalui port bersiri:
  • Ia membaca suhu, tekanan, ketinggian dan tekanan pada paras laut daripada sensor.
  • Ia membaca ukuran pecutan mentah dan giroskop daripada sensor MPU6050.
  • Ia membaca tajuk dari penderia HMC5883L, iaitu sudut antara arah di mana penderia menghala dan arah di mana utara magnet terletak.
  • Akhir sekali, ia berkelip LED untuk menunjukkan aktiviti dan menunggu seketika sebelum membaca semula penderia.

Dokumen / Sumber

Lakaran Ujian Sensor Gabungan ARDUINO GY87 [pdf] Manual Pengguna
Lakaran Ujian Sensor Gabungan GY87, GY87, Lakaran Ujian Sensor Gabungan, Lakaran Ujian Sensor, Lakaran Ujian

Rujukan

Tinggalkan komen

Alamat e-mel anda tidak akan diterbitkan. Medan yang diperlukan ditanda *