ARDUINO-lgoo

ARDUINO GY87 Sketch tat-Test tas-Sensor Magħqud

ARDUINO-GY87-Kombinat-Sensor-Test-Sketch-prodott

Introduzzjoni

Jekk int maker akkanit jew dilettant tar-robotika, iltqajt ma' dan il-modulu ċkejkna iżda b'saħħtu. Jekk int maker avid jew dilettant tar-robotika, iltqajt ma 'dan il-barometru BMP085 tal-modulu ċkejken iżda b'saħħtu. Il-modulu GY-87 IMU huwa mod tajjeb ħafna biex iżżid sensing tal-moviment mal-proġetti tiegħek, bħal robot li jibbilanċja lilhom infushom jew quadcopter.
Iżda qabel ma tkun tista 'tibda tesperimenta bil-modulu GY-87 IMU, trid tkun taf kif tagħmel interface mal-bord Arduino tiegħek. Hemmhekk jidħol dan il-blog! Fil-paragrafi li ġejjin, aħna ser ikopru l-baŜi tal-modulu GY-87 IMU, kif twaqqafha, u kif tikteb il-kodiċi Arduino biex taqra d-dejta tas-sensorju. Aħna ser nipprovdu wkoll xi suġġerimenti u riżorsi biex issolvi problemi komuni.
Allura, jekk int lest biex tibda, ejja nidħlu u nitgħallmu dwar l-interfaċċjar tal-modulu GY-87 IMU ma 'Arduino!

X'inhu GY-87 IMU MPU6050

Moduli ta 'unità ta' kejl inerzjali (IMU) bħall-GY-87 jgħaqqdu ħafna sensuri f'pakkett wieħed, bħall-aċċellerometru/ġiroskopju MPU6050, il-manjetometru HMC5883L, u s-sensor tal-pressjoni barometrika BMP085. Għalhekk, il-GY-87 IMU MPU6050 huwa modulu ta 'traċċar tal-moviment ta' 9 assi all-in-one li jgħaqqad ġiroskopju ta '3 assi, aċċellerometru ta' 3 assi, manjetometru ta '3 assi, u proċessur ta' moviment diġitali. Jintuża ħafna fi proġetti robotiċi, bħal quadcopters u vetturi tal-ajru bla ekwipaġġ (UAVs) oħra, minħabba li jista 'jkejjel u jsegwi b'mod preċiż l-orjentazzjoni u l-moviment. Jintuża wkoll f'applikazzjonijiet oħra, bħal navigazzjoni, logħob, u realtà virtwali.

Komponenti tal-ħardwer

Int ser teħtieġ il-ħardwer li ġej għall-Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Modulu b'Arduino.

Komponenti Valur Qty
Arduino UNO 1
MPU6050 Modulu tas-Sensor GY-87 1
Breadboard 1
Jumper Wajers 1

GY-87 b'Arduino 

Issa li fhimt il-GY-87, wasal iż-żmien li tagħmel interface mal-Arduino. Biex tagħmel dan, segwi Issa li fhimt il-GY-87, wasal iż-żmien li tagħmel interface mal-Arduino. Biex tagħmel dan, segwi

Skematika

Agħmel konnessjonijiet skond id-dijagramma taċ-ċirkwit mogħtija hawn taħt

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-fig 1Wiring / Konnessjonijiet

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

Installazzjoni ta 'Arduino IDE 

L-ewwel, għandek bżonn tinstalla Arduino IDE Software mill-uffiċjal tagħha websit Arduino. Hawnhekk hawn gwida sempliċi pass pass dwar "Kif tinstalla Arduino IDE."

Installazzjoni ta' Libreriji 

Qabel ma tibda ttella’ l-kodiċi, niżżel u aqla’ l-libreriji li ġejjin fuq /Programm Files (x86)/Arduino/Libreriji (default) sabiex tuża s-sensor mal-bord Arduino. Hawnhekk hawn gwida sempliċi pass pass dwar "Kif Żid Libreriji f'Arduino IDE."

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Sempliċi

Kodiċi 

Issa kkopja l-kodiċi li ġej u tella' fuq Arduino IDE Software.

#inkludi “I2Cdev.h” #inkludi “MPU6050.h” #inkludi #inkludi MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Compass sempliċi; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = falza; setup null () { Serial.begin (16); Wire.begin(); // initialize devices Serial.println("Inizjalizzazzjoni ta' apparati I13C..."); // initialize bmp9600 jekk (!bmp.begin()) { Serial.println ("Ma setgħetx issib sensor BMP2 validu, iċċekkja (!bmp.begin()) { Serial.println ("Ma setgħetx issib sensor BMP085 validu, check Serial.println(accelgyro.testConnection() ? “MPU085 connection success” : “MPU085 connection failed” ; accelgyro.setI6050CBypassEnabled(true) // issettja l-modalità ta’ bypass għal gateway għal hmc6050L // initialize hmc2l Declination. 5883, 'E');amplingMode(COMPASS_SINGLE);
Boxxla.SetScale(COMPASS_SCALE_130);
Boxxla.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // kkonfigurat Arduino LED għall-iċċekkjar tal-attività pinMode(LED_PIN, OUTPUT); } linja nulla () {
Serial.print ("Temperatura = "); Serial.print(bmp.readTemperature());
Serial.println ("*C"); Serial.print ("Pressjoni = ");
Serial.print(bmp.readPressure()); Serial.println ("Pa"); // Ikkalkula l-altitudni billi wieħed jassumi pressjoni barometrika 'standard' // ta' 1013.25 millibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println ("meters"); Serial.print ("Pressjoni fil-livell tas-siġill (ikkalkulat) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println ("Pa");
Serial.print ("Altitudni reali = "); Serial.print(bmp.readAltitude(101500));
Serial.println(” meters”); // aqra kejl mhux ipproċessat tal-accel/gyro mill-apparat accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // turi valuri ta' aċċellerazzjoni/ġiroskopji x/y/z separati minn tab 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); intestatura float =
Compass.GetHeadingDegrees(); Serial.print ("Intestatura: \t"); Serial.println( intestatura ); // teptip LED biex jindika attività blinkState = !blinkState;
DigitalWrite(LED_PIN, blinkState); dewmien(500); }

Let's Test It 

Ladarba ttella 'l-kodiċi, wasal iż-żmien li tittestja ċ-ċirkwit! Il-kodiċi fil-programm Arduino jgħaqqad mas-sensuri bl-użu tal-libreriji tagħhom, li jippermettilha jaqra d-dejta tas-sensuri u tistabbilixxi diversi konfigurazzjonijiet tas-sensuri. Imbagħad jistampa d-dejta tas-sensorju fuq il-port tas-serje. L-LED jintuża biex juri li ċ-ċirkwit qed jagħmel xi ħaġa. Dan ifisser li l-LED jteptep kull darba li titħaddem il-funzjoni tal-linja, li jindika li l-kodiċi qed jaqra b'mod attiv il-valuri tas-sensorju.

Spjegazzjoni ta' Ħidma 

Il-kodiċi huwa l-ħaġa ewlenija li fuqha huwa bbażat ix-xogħol taċ-ċirkwit. Allura, ejja nifhmu l-kodiċi:.

  • L-ewwel, jinkludi diversi libreriji biex jgħaqqdu s-sensuri:
  • "I2Cdev.h" u "MPU6050.h" huma libreriji għas-sensor tal-aċċellerometru/ġiroskopju MPU6050 b'6 assi
  • "Adafruit_BMP085.h" hija librerija għas-sensor tal-pressjoni barometrika BMP085.
  • “HMC5883L_Simple.h” hija librerija għas-sensor tal-manjetometru HMC5883L.
  • Imbagħad toħloq oġġetti globali għat-tliet sensuri: MPU6050 accelgyro, Adafruit_BMP085 bmp, u HMC5883L_Simple Compass.
  • Sussegwentement, jiddefinixxi xi varjabbli biex jaħżnu valuri tas-sensuri, bħal ax, ay, u az għall-aċċelerometru ta 'MPU6050 u biex imexxi l-manjetometru ta' HMC5883L. U jiddefinixxi kostanti LED_PIN u varjabbli blinkState.
  • Il-funzjoni setup() tibda komunikazzjoni serjali u tibda komunikazzjoni I2C. Imbagħad inizjalizza t-tliet sensuri:
  • Is-sensor BMP085 jiġi inizjalizzat billi ssejjaħ il-metodu begin(). Jekk dan jirritorna falz, li jindika li s-sensor ma setax jinstab, il-programm jidħol f'linja infinita u jistampa messaġġ ta 'żball fuq il-port tas-serje.
  • Is-sensor MPU6050 huwa inizjalizzat billi ssejjaħ il-metodu initialize() u jiċċekkja jekk hux qed jaħdem sew. U stabbilixxiet il-bypass I2C attivat għal MPU6050.
  • Is-sensor HMC5883L jiġi inizjalizzat billi jsejjaħ xi funzjonijiet, bħal SetDeclination, SetSamplingMode, SetScale, u SetOrientation, biex jiġu stabbiliti konfigurazzjonijiet differenti għas-sensor.
  • Fil-funzjoni loop(), il-kodiċi jaqra d-dejta mit-tliet sensuri u jistampaha fuq il-port tas-serje:
  • Taqra t-temperatura, il-pressjoni, l-altitudni u l-pressjoni fil-livell tal-baħar mis-sensor.
  • Taqra l-aċċelerazzjoni mhux ipproċessata u l-kejl tal-ġiroskopju mis-sensor MPU6050.
  • Taqra l-intestatura mis-sensor HMC5883L, li huwa l-angolu bejn id-direzzjoni li fiha s-sensor qed jipponta u d-direzzjoni li fiha jinsab it-tramuntana manjetika.
  • Fl-aħħarnett, itteptep l-LED biex jindika l-attività u jistenna mument qabel ma jaqra mill-ġdid is-sensuri.

Dokumenti / Riżorsi

ARDUINO GY87 Sketch tat-Test tas-Sensor Magħqud [pdfManwal tal-Utent
GY87 Sketch tat-Test tas-Sensor Magħqud, GY87, Sketch tat-Test tas-Sensor Magħqud, Sketch tat-Test tas-Sensor, Sketch tat-Test

Referenzi

Ħalli kumment

L-indirizz elettroniku tiegħek mhux se jiġi ppubblikat. L-oqsma meħtieġa huma mmarkati *