ARDUINO-lgoo

ARDUINO GY87 Kombinita Sensila Testa Skizo

ARDUINO-GY87-Kombinita-Sensilo-Test-Sketch-produkto

Enkonduko

Se vi estas fervora fabrikanto aŭ robotika entuziasmulo, vi trovis ĉi tiun etan sed potencan modulon. Se vi estas fervora fabrikanto aŭ robotika entuziasmulo, vi trovis ĉi tiun etan sed potencan modulon BMP085-barometro. La GY-87 IMU-modulo estas bonega maniero aldoni moviĝ-sentadon al viaj projektoj, kiel membalanca roboto aŭ kvaroptero.
Sed antaŭ ol vi povas komenci eksperimenti kun la GY-87 IMU-modulo, vi devas scii kiel interfacigi ĝin kun via Arduino-tabulo. Jen kie ĉi tiu blogo venas! En la sekvaj alineoj, ni kovros la bazaĵojn de la GY-87 IMU-modulo, kiel agordi ĝin kaj kiel skribi la Arduino-kodon por legi la sensilajn datumojn. Ni ankaŭ provizos kelkajn konsiletojn kaj rimedojn por solvi oftajn problemojn.
Do, se vi pretas komenci, ni plonĝu kaj lernu pri interfaco de la GY-87 IMU-modulo kun Arduino!

Kio estas GY-87 IMU MPU6050

Inercia mezurunuo (IMU) moduloj kiel la GY-87 kombinas multajn sensilojn en ununuran pakaĵon, kiel ekzemple la MPU6050 akcelometro/giroskopo, la HMC5883L magnetometro, kaj la BMP085 barometra premosensilo. Tial, la GY-87 IMU MPU6050 estas tute-en-unu 9-aksa moviĝ-spurada modulo, kiu kombinas 3-aksan giroskopon, 3-aksan akcelometron, 3-aksan magnetometron kaj ciferecan moviĝ-procesoron. Ĝi estas multe uzata en robotaj projektoj, kiel kvarkopteroj kaj aliaj senpilotaj aerveturiloj (UAV), ĉar ĝi povas precize mezuri kaj spuri orientiĝon kaj moviĝon. Ĝi ankaŭ estas uzata en aliaj aplikoj, kiel navigado, videoludado kaj virtuala realeco.

Aparataj Komponantoj

Vi postulos la jenan aparataron por Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Modulo kun Arduino.

Komponentoj Valoro Kvanto
Arduino UNO 1
MPU6050 Sensila Modulo GY-87 1
Breadboard 1
Jumper Dratoj 1

GY-87 kun Arduino 

Nun kiam vi komprenis la GY-87, estas tempo interfaci kun la Arduino. Por fari tion, sekvu Nun kiam vi komprenis la GY-87, estas tempo interfaci kun la Arduino. Por fari tion, sekvu

Skema

Faru konektojn laŭ la cirkvitdiagramo donita sube

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Kombinata-Sensilo-Testo-Skeĉo-fig 1Kabrado/Konektoj

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

Instalante Arduino IDE 

Unue, vi devas instali Arduino IDE Programaron de ĝia oficiala webretejo Arduino. Jen simpla paŝo post paŝo pri "Kiel instali Arduino IDE".

Instalado de Bibliotekoj 

Antaŭ ol vi komencas alŝuti kodon, elŝutu kaj malzimpu la sekvajn bibliotekojn ĉe /Programo Files (x86)/Arduino/Bibliotekoj (defaŭlte) por uzi la sensilon kun la Arduino-tabulo. Jen simpla paŝo post paŝo pri "Kiel Aldoni Bibliotekojn en Arduino IDE."

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Simple

Kodo 

Nun kopiu la sekvan kodon kaj alŝutu ĝin al Arduino IDE Programaro.

#inkluzivi “I2Cdev.h” #inkluzivi “MPU6050.h” #inkluzivi #inkluzivi MPU085 akcelgiro; Adafruit_BMP5883 bmp; HMC6050L_Simpla Kompaso; int085_t hakilo, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = malvera; void agordo () { Serial.begin (16); Wire.begin(); // pravalorigi aparatojn Serial.println ("Initializing I13C-aparatoj..."); // pravigi bmp9600 if (!bmp.begin()) { Serial.println(“Ne eblis trovi validan BMP2-sensilon, kontrolu (!bmp.begin()) { Serial.println(“Ne eblis trovi validan BMP085-sensilon, kontrolu Serial.println(accelgyro.testConnection() ? “MPU085-konekto sukcesa” : “MPU085-konekto malsukcesis”); accelgyro.setI6050CBypassEnabled(vera); // agordi pretervojon por enirejo al hmc6050L // pravalorigi hmc2l Compass.5883Set5883,Declination 23, 'E'); Kompaso.SetSamplingMode (COMPASS_SINGLE);
Kompaso.SetScale(COMPASS_SCALE_130);
Kompaso.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // agordu Arduino LED por kontroli aktiveco pinMode (LED_PIN, OUTPUT); } malplena buklo () {
Seria.print(“Temperatura = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Seria.print(“Premo = “);
Serial.print (bmp.readPressure ()); Serial.println ("Pa"); // Kalkuli altecon supozante 'norma' barometria // premo de 1013.25 milibaro = 101325 Pascal Serial.print(“Alteco = “); Serial.print(bmp.readAltitude()); Serial.println(“metroj”); Serial.print(“Premo ĉe marnivelo (kalkulita) = “);
Serial.print (bmp.readSealevelPressure ()); Serial.println ("Pa");
Serial.print ("Reala alteco = "); Serial.print (bmp.readAltitude (101500));
Serial.println(” metroj”); // legi krudajn akcel/giro-mezurojn de aparato accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // montri tabulajn disigitajn akcel/giro x/y/z valorojn Serial.print(“a/g:\t”); Seria.print(hakilo);
Seria.print(“\t”); Seria.print(je); Seria.print(“\t”); Seria.print(az);
Seria.print(“\t”); Seria.print(gx); Seria.print(“\t”); Seria.print(gy);
Seria.print(“\t”); Seria.println(gz); flosiga titolo =
Kompaso.GetHeadingDegrees(); Serial.print(“Titolo: \t”); Serial.println( titolo ); // palpebruma LED por indiki agadon blinkState = !blinkState;
digitalWrite (LED_PIN, blinkState); prokrasto (500); }

Ni Testu Ĝin 

Post kiam vi alŝutas la kodon, estas tempo testi la cirkviton! La kodo en la programo Arduino interfacas kun la sensiloj uzante iliajn bibliotekojn, kio permesas al ĝi legi sensilajn datumojn kaj agordi diversajn agordojn de la sensiloj. Tiam ĝi presas la sensilajn datumojn tra la seria haveno. La LED estas uzata por montri, ke la cirkvito faras ion. Ĉi tio signifas, ke la LED palpebrumas ĉiufoje kiam la buklofunkcio funkcias, indikante ke la kodo aktive legas sensilvalorojn.

Labora Klarigo 

La kodo estas la ĉefa afero, sur kiu baziĝas la funkciado de la cirkvito. Do, ni komprenu la kodon:.

  • Unue, ĝi inkluzivas plurajn bibliotekojn por interagadi kun la sensiloj:
  • "I2Cdev.h" kaj "MPU6050.h" estas bibliotekoj por la MPU6050 6-aksa akcelometro/giroskopsensilo
  • "Adafruit_BMP085.h" estas biblioteko por la barometra premosensilo BMP085.
  • "HMC5883L_Simple.h" estas biblioteko por la magnetometrosensilo HMC5883L.
  • Tiam ĝi kreas tutmondajn objektojn por la tri sensiloj: MPU6050 accelgyro, Adafruit_BMP085 bmp, kaj HMC5883L_Simple Compass.
  • Poste, ĝi difinas kelkajn variablojn por stoki sensilvalorojn, kiel ekzemple hakilo, ay, kaj az por la akcelometro de MPU6050 kaj por direktiĝi al la magnetometro de HMC5883L. Kaj ĝi difinas konstantan LED_PIN kaj variablon blinkState.
  • La funkcio setup() komencas serian komunikadon kaj komencas I2C komunikadon. Tiam ĝi pravigas la tri sensilojn:
  • La BMP085-sensilo estas pravigita per vokado de la begin() metodo. Se ĉi tio revenas malvera, indikante ke la sensilo ne estis trovita, la programo eniras senfinan buklon kaj presas erarmesaĝon super la seria haveno.
  • La MPU6050-sensilo estas pravigita vokante la metodon initialize() kaj kontrolante ĉu ĝi funkcias ĝuste. Kaj ĝi ebligis la I2C-pretervojon por MPU6050.
  • La HMC5883L-sensilo estas pravigita vokante kelkajn funkciojn, kiel SetDeclination, SetSamplingMode, SetScale kaj SetOrientation, por agordi malsamajn agordojn por la sensilo.
  • En la funkcio loop(), la kodo legas datumojn de la tri sensiloj kaj presas ĝin tra la seria haveno:
  • Ĝi legas temperaturon, premon, altecon kaj premon ĉe marnivelo de la sensilo.
  • Ĝi legas krudajn akcelajn kaj giroskopajn mezuradojn de la MPU6050-sensilo.
  • Ĝi legas la titolon de la HMC5883L-sensilo, kiu estas la angulo inter la direkto en kiu la sensilo indikas kaj la direkto en kiu magneta nordo kuŝas.
  • Fine, ĝi palpebrumas la LED por indiki aktivecon kaj atendas momenton antaŭ relegi la sensilojn.

Dokumentoj/Rimedoj

ARDUINO GY87 Kombinita Sensila Testa Skizo [pdf] Uzanto-manlibro
GY87 Kombinita Sensila Testskizo, GY87, Kombinita Sensila Testskizo, Sensila Testskizo, Testa Skizo

Referencoj

Lasu komenton

Via retadreso ne estos publikigita. Bezonataj kampoj estas markitaj *