ARDUINO-lgoo

Esquisse d'essai du capteur combiné ARDUINO GY87

ARDUINO-GY87-Sensor-Combined-Test-Sketch-prodottu

Introduzione

Sè vo site un pruduttore avid o un entusiasta di robotica, avete scontru stu modulu minuscule ma putente Sè vo site un pruduttore avid o un entusiasta di robotica, avete scontru stu modulu minuscule ma putente barometru BMP085. U modulu GY-87 IMU hè un modu fantasticu per aghjunghje a sensazione di muvimentu à i vostri prughjetti, cum'è un robot auto-equilibratu o un quadcopter.
Ma prima di pudè cumincià à sperimentà cù u modulu GY-87 IMU, avete bisognu di sapè cumu l'interfaccia cù a vostra scheda Arduino. Hè quì chì vene stu bloggu ! In i paragrafi seguenti, avemu da copre i principii di u modulu GY-87 IMU, cumu si stallanu, è cumu scrive u codice Arduino per leghje i dati di u sensoru. Avemu da furnisce ancu alcuni cunsiglii è risorse per risolve i prublemi cumuni.
Allora, sè vo site prontu à inizià, immergemu è amparà nantu à l'interfaccia di u modulu IMU GY-87 cù Arduino!

Cosa hè GY-87 IMU MPU6050

Moduli di unità di misura inerziali (IMU) cum'è u GY-87 combina parechji sensori in un solu pacchettu, cum'è l'accelerometru / giroscopiu MPU6050, u magnetometru HMC5883L è u sensoru di pressione barometrica BMP085. Dunque, u GY-87 IMU MPU6050 hè un modulu di tracciamentu di u muvimentu di 9 assi all-in-one chì combina un giroscopiu di 3 assi, accelerometru di 3 assi, magnetometru di 3 assi è un processore di muvimentu digitale. Hè adupratu assai in prughjetti robotichi, cum'è quadcopters è altri veiculi aerei senza pilota (UAV), perchè pò misurà accuratamente è seguità l'orientazione è u muvimentu. Hè ancu usatu in altre applicazioni, cum'è a navigazione, i ghjoculi è a realtà virtuale.

Cumpunenti Hardware

Avrete bisogno del seguente hardware per l'interfacciamento del modulo GY-87 IMU MPU6050 HMC5883L BMP085 con Arduino.

Cumpunenti Valore Qty
Arduino UNO 1
MPU 6050 Modulu di sensori GY-87 1
Breadboard 1
Fili di Jumper 1

GY-87 cù Arduino 

Avà chì avete capitu u GY-87, hè ora di interfaccia cù l'Arduino. Per fà quessa, seguitate Avà chì avete capitu u GY-87, hè u tempu di interfaccia cù l'Arduino. Per fà quessa, seguitate

Schematicu

Fate e cunnessione secondu u schema di circuitu datu quì sottu

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Test-Senseur-Combiné-Sketch-fig 1Wiring / Cunnessioni

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

Installazione di l'IDE Arduino 

Prima, avete bisognu di stallà Arduino IDE Software da u so ufficiale website Arduino. Eccu una semplice guida passo-passo su "Come installare Arduino IDE".

Installazione di Biblioteche 

Prima di inizià a carica di codice, scaricate è scumpressate e seguenti biblioteche in /Program Files (x86)/Arduino/Libraries (par défaut) pour utiliser le capteur avec la carte Arduino. Eccu una semplice guida passo-passo su "Cumu aghjunghje Biblioteche in Arduino IDE".

  • MPU 6050
  • Adafruit_BMP085
  • HMC5883L_Simple

Codice 

Avà copiate u codice seguente è caricate in u Software IDE Arduino.

#include "I2Cdev.h" #include "MPU6050.h" #include #include MPU085 accelgyro; 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(); // inizializza i dispositi Serial.println ("Inizializà i dispositi I13C ..."); // inizializza bmp9600 if (!bmp.begin()) { Serial.println ("Ùn si pudia truvà un sensor BMP2 validu, verificate (!bmp.begin()) { Serial.println ("Ùn si pudia truvà un sensor BMP085 validu, verificate Serial.println(accelgyro.testConnection() ? "Connessione MPU085 successu" : "Connessione MPU085 falluta" accelgyro.setI6050CBypassEnabled (true // imposta u modu di bypass per u gateway à hmc6050L // inizializza hmc2l Compass. 5883, 'E'); Compass.SetSamplingMode (COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // cunfigurà LED Arduino per verificà l'attività pinMode (LED_PIN, OUTPUT); } void loop () {
Serial.print ("Temperatura = "); Serial.print(bmp.readTemperature());
Serial.println ("*C"); Serial.print ("Pressione = ");
Serial.print(bmp.readPressure()); Serial.println ("Pa"); // Calcula l'altitudine assumendu a pressione barometrica 'standard' // di 1013.25 millibar = 101325 Pascal Serial.print ("Altitudine = "); Serial.print(bmp.readAltitude()); Serial.println ("metri"); Serial.print ("Pressione à u livellu di u mare (calculatu) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println ("Pa");
Serial.print ("Altitudine reale = "); Serial.print(bmp.readAltitude(101500));
Serial.println ("metri"); // leghje e misure di accel/gyro brute da u dispusitivu accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // mostra i valori di accel/gyro x/y/z separati da tabulazione 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); float heading =
Compass.GetHeadingDegrees(); Serial.print ("Intestazione: \t"); Serial.println (titulu); // LED lampeggiante per indicà l'attività blinkState = !blinkState;
DigitalWrite (LED_PIN, blinkState); ritardu (500); }

Testemu 

Una volta caricate u codice, hè ora di pruvà u circuitu! U codice in u prugramma Arduino interfaccia cù i sensori utilizendu e so librerie, chì permette di leghje i dati di sensori è stabilisce diverse cunfigurazioni di i sensori. Allora stampa i dati di u sensoru nantu à u portu seriale. U LED hè utilizatu per dimustrà chì u circuitu faci qualcosa. Questu significa chì u LED lampeggia ogni volta chì a funzione di loop hè eseguita, chì indica chì u codice hè attivamente leghje i valori di i sensori.

Spiegazione di travagliu 

U codice hè a cosa maiò nantu à quale u travagliu di u circuitu hè basatu. Allora, capimu u codice:.

  • Prima, include parechje biblioteche per interfaccia cù i sensori:
  • "I2Cdev.h" è "MPU6050.h" sò biblioteche per u sensoru accelerometru / giroscopiu à 6050 assi MPU6
  • "Adafruit_BMP085.h" hè una biblioteca per u sensoru di pressione barometrica BMP085.
  • "HMC5883L_Simple.h" hè una libreria per u sensoru magnetometru HMC5883L.
  • Allora crea oggetti glubale per i trè sensori: MPU6050 accelgyro, Adafruit_BMP085 bmp, è HMC5883L_Simple Compass.
  • In seguitu, definisce alcune variàbili per almacenà i valori di sensori, cum'è ax, ay, è az per l'accelerometer di MPU6050 è per andà per u magnetometer di HMC5883L. È definisce una constante LED_PIN è una variabile blinkState.
  • A funzione setup() principia una cumunicazione seriale è principia a cumunicazione I2C. Allora inizializza i trè sensori:
  • U sensoru BMP085 hè inizializatu chjamendu u metudu begin (). Se questu torna falsu, chì indica chì u sensoru ùn pò micca esse truvatu, u prugramma entre in un ciclu infinitu è ​​stampa un missaghju d'errore nantu à u portu seriale.
  • U sensoru MPU6050 hè inizializatu chjamendu u metudu initialize () è verificate s'ellu funziona bè. È hà stabilitu u bypass I2C attivatu per MPU6050.
  • U sensoru HMC5883L hè inizializatu chjamendu alcune funzioni, cum'è SetDeclination, SetSamplingMode, SetScale è SetOrientation, per stabilisce diverse cunfigurazioni per u sensoru.
  • In a funzione loop (), u codice leghje e dati da i trè sensori è l'imprime nantu à u portu seriale:
  • Leghje a temperatura, a pressione, l'altitudine è a pressione à u livellu di u mari da u sensor.
  • Leghje l'accelerazione cruda è e misure di giroscopiu da u sensor MPU6050.
  • Leghjite l'intestazione da u sensoru HMC5883L, chì hè l'angolo trà a direzzione in quale u sensoru punta è a direzzione in quale si trova u nordu magneticu.
  • Infine, lampeggia u LED per indicà l'attività è aspetta un mumentu prima di rileghje i sensori.

Documenti / Risorse

Esquisse d'essai du capteur combiné ARDUINO GY87 [pdfManuale d'usu
GY87 Sketch di prova di sensori cumminati, GY87, Sketch di prova di sensori cumminati, Sketch di prova di sensori, Sketch di prova

Referenze

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. I campi obbligatori sò marcati *