ARDUINO-lgoo

ARDUINO GY87 Combined Sensor Test Sketch

ARDUINO-GY87-Konbine-detèktè-tès-sketch-pwodwi

Entwodiksyon

Si w se yon grangou oswa yon fanatik robotik, ou te rankontre ti modil sa a men ki pwisan. Modil GY-085 IMU a se yon bon fason pou ajoute deteksyon mouvman nan pwojè ou yo, tankou yon robo oto-balanse oswa yon kwadkoptè.
Men, anvan ou ka kòmanse fè eksperyans ak modil GY-87 IMU a, ou bezwen konnen ki jan yo koòdone li ak tablo Arduino ou a. Se la blog sa a antre! Nan paragraf sa yo, nou pral kouvri Basics yo nan GY-87 IMU modil la, ki jan yo mete l kanpe, ak ki jan yo ekri kòd la Arduino li done yo Capteur. Nou pral bay tou kèk konsèy ak resous pou depanaj pwoblèm komen yo.
Se konsa, si w pare pou kòmanse, ann plonje epi aprann sou entèfas GY-87 IMU modil la ak Arduino!

Ki sa ki GY-87 IMU MPU6050?

Modil inite mezi inèrsyèl (IMU) tankou GY-87 konbine anpil detèktè nan yon pake sèl, tankou akseleromètr / jiroskop MPU6050, mayetomètr HMC5883L, ak Capteur presyon bawometrik BMP085. Pakonsekan, GY-87 IMU MPU6050 a se yon modil pou swiv mouvman 9-aks tout-an-yon ki konbine yon jiroskop 3-aks, 3-aks akseleromètr, 3-aks mayetomètr, ak yon processeur mouvman dijital. Li itilize anpil nan pwojè robotik, tankou quadcopters ak lòt machin ayeryen san ekipe (UAV), paske li ka byen mezire epi swiv oryantasyon ak mouvman. Li se tou itilize nan lòt aplikasyon, tankou navigasyon, jwèt, ak reyalite vityèl.

Eleman pyès ki nan konpitè

Ou pral mande pou pyès ki nan konpitè sa a pou entèfas GY-87 IMU MPU6050 HMC5883L BMP085 Modil ak Arduino.

Eleman Valè Kantite
Arduino UNO 1
MPU6050 Modil Capteur GY-87 1
Breadboard 1
Fil kavalye 1

GY-87 ak Arduino 

Kounye a ke ou te konprann GY-87 la, li lè yo koòdone ak Arduino la. Pou fè sa, swiv Kounye a ke ou te konprann GY-87 la, li lè yo koòdone ak Arduino la. Pou fè sa, swiv

schematic

Fè koneksyon dapre dyagram sikwi yo bay anba a

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Konbine-detèktè-tès-deske-fig 1Fil elektrik / Koneksyon

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

Enstale Arduino IDE 

Premyèman, ou bezwen enstale Arduino IDE Software soti nan ofisyèl li yo websit Arduino. Isit la se yon senp gid etap-pa-etap sou "Ki jan yo enstale Arduino IDE."

Enstale bibliyotèk 

Anvan ou kòmanse telechaje kòd, telechaje epi dekonprime bibliyotèk sa yo nan /Program Files (x86) / Arduino / Bibliyotèk (default) yo nan lòd yo sèvi ak Capteur a ak tablo a Arduino. Isit la se yon senp gid etap pa etap sou "Ki jan yo ajoute bibliyotèk nan Arduino IDE."

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Senp

Kòd 

Koulye a, kopye kòd sa a epi telechaje li nan Arduino IDE Software.

#include “I2Cdev.h” #include “MPU6050.h” #include #enkli MPU085 akselere; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t rach, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = fo; void konfigirasyon () { Serial.begin (16); Wire.begin(); // inisyalize aparèy Serial.println ("Inisyalize aparèy I13C..."); // inisyalize bmp9600 si (!bmp.begin()) { Serial.println("Pa t 'kapab jwenn yon Capteur BMP2 ki valab, tcheke (!bmp.begin()) { Serial.println ("Pa t ka jwenn yon Capteur BMP085 ki valab, tcheke Serial.println(accelgyro.testConnection() ? "MPU085 koneksyon siksè": "MPU085 koneksyon echwe"); accelgyro.setI6050CBypassEnabled (vre); // mete mòd bypass pou pòtay nan hmc6050L // inisyalize hmc2l Compass.Set5883,Declination 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // configured Arduino LED pou tcheke aktivite pinMode (LED_PIN, OUTPUT); } bouk anile () {
Serial.print ("Tanperati = "); Serial.print (bmp.readTemperature ());
Serial.println ("*C"); Serial.print ("Presyon = ");
Serial.print (bmp.readPressure ()); Serial.println ("Pa"); // Kalkile altitid sipoze 'estanda' barometrik // presyon 1013.25 milibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print (bmp.readAltitude ()); Serial.println ("mèt"); Serial.print ("Presyon nan nivo lanmè (kalkile) = ");
Serial.print (bmp.readSealevelPressure ()); Serial.println ("Pa");
Serial.print ("Altitid reyèl = "); Serial.print(bmp.readAltitude(101500));
Serial.println ("mèt"); // li mezi accel/gyro anvan tout koreksyon nan aparèy accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // montre valè aksel/gyro x/y/z separe ak tab Serial.print ("a/g:\t"); Serial.print(rach);
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); flote tit =
Compass.GetHeadingDegrees(); Serial.print ("Tit: \ t"); Serial.println( tit ); // blink LED pou endike aktivite blinkState = !blinkState;
digitalWrite (LED_PIN, blinkState); reta (500); }

Ann Teste Li 

Yon fwa ou telechaje kòd la, li lè yo teste kous la! Kòd la nan pwogram Arduino koòdone ak detèktè yo lè l sèvi avèk bibliyotèk yo, ki pèmèt li li done Capteur ak mete divès kalite konfigirasyon nan detèktè yo. Lè sa a, li enprime soti done yo Capteur sou pò a seri. Ki ap dirije a itilize pou montre ke kous la ap fè yon bagay. Sa vle di LED la ap bat chak fwa fonksyon bouk la kouri, ki endike ke kòd la ap li aktivman valè Capteur.

Eksplikasyon travay 

Kòd la se bagay ki pi gwo sou ki travay kous la baze. Se konsa, ann konprann kòd la:.

  • Premyèman, li gen ladan plizyè bibliyotèk pou koòdone ak detèktè yo:
  • "I2Cdev.h" ak "MPU6050.h" se bibliyotèk pou Capteur akseleromètr/jiwoskòp MPU6050 6-aks.
  • "Adafruit_BMP085.h" se yon bibliyotèk pou Capteur presyon barometrik BMP085.
  • "HMC5883L_Simple.h" se yon bibliyotèk pou Capteur magnetomètr HMC5883L.
  • Lè sa a, li kreye objè mondyal pou twa detèktè yo: MPU6050 accelgyro, Adafruit_BMP085 bmp, ak HMC5883L_Simple Compass.
  • Apre sa, li defini kèk varyab pou estoke valè detèktè yo, tankou rach, ay, ak az pou akseleromètr MPU6050 ak nan tèt pou mayetomètr HMC5883L. Epi li defini yon konstan LED_PIN ak yon varyab blinkState.
  • Fonksyon konfigirasyon () la kòmanse yon kominikasyon seri epi li kòmanse kominikasyon I2C. Lè sa a, li inisyalize twa detèktè yo:
  • Capteur BMP085 la inisyalize lè w rele metòd begin(). Si sa a tounen fo, ki endike ke Capteur a pa t 'kapab jwenn, pwogram nan antre nan yon bouk enfini epi enprime yon mesaj erè sou pò a seri.
  • Capteur MPU6050 la inisyalize lè w rele metòd initialize() epi tcheke si li ap travay kòrèkteman. Epi li mete kontoune I2C pèmèt pou MPU6050.
  • Capteur HMC5883L inisyalize lè w rele kèk fonksyon, tankou SetDeclination, SetS.amplingMode, SetScale, ak SetOrientation, pou mete diferan konfigirasyon pou Capteur a.
  • Nan fonksyon loop(), kòd la li done ki soti nan twa detèktè yo epi enprime li sou pò seri a:
  • Li li tanperati, presyon, altitid, ak presyon nan nivo lanmè nan Capteur a.
  • Li li akselerasyon anvan tout koreksyon ak mezi jiroskop nan Capteur MPU6050 la.
  • Li li tit la nan Capteur HMC5883L la, ki se ang ki genyen ant direksyon kote Capteur a ap montre ak direksyon nò mayetik la.
  • Finalman, li clignote ki ap dirije a pou endike aktivite epi li tann yon ti moman anvan li reli detèktè yo.

Dokiman / Resous

ARDUINO GY87 Combined Sensor Test Sketch [pdfManyèl Itilizatè
GY87 Combined Sensor Test Sketch, GY87, Combined Sensor Test Sketch, Sensor Test Sketch, Test Sketch

Referans

Kite yon kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo make *