ARDUINO-lgoo

ARDUINO GY87 Afọwọya Idanwo sensọ

ARDUINO-GY87-Apapọ-Sensor-igbeyewo-Sketch-ọja

Ọrọ Iṣaaju

Ti o ba jẹ olupilẹṣẹ ti o ni itara tabi olutaja Robotik, o ti wa kọja kekere yii sibẹsibẹ ti o lagbara module Ti o ba jẹ oluṣe ti o ni itara tabi alara Robotik, o ti wa kọja iwọn kekere ti o lagbara sibẹsibẹ BMP085 barometer. Module GY-87 IMU jẹ ọna nla lati ṣafikun oye išipopada si awọn iṣẹ akanṣe rẹ, bii roboti iwọntunwọnsi ti ara ẹni tabi quadcopter kan.
Ṣugbọn ṣaaju ki o to bẹrẹ idanwo pẹlu module GY-87 IMU, o nilo lati mọ bi o ṣe le ni wiwo pẹlu igbimọ Arduino rẹ. Iyẹn ni ibi ti bulọọgi yii wa! Ninu awọn paragi wọnyi, a yoo bo awọn ipilẹ ti module GY-87 IMU, bii o ṣe le ṣeto rẹ, ati bii o ṣe le kọ koodu Arduino lati ka data sensọ naa. A yoo tun pese diẹ ninu awọn imọran ati awọn orisun fun laasigbotitusita awọn ọran ti o wọpọ.
Nitorinaa, ti o ba ṣetan lati bẹrẹ, jẹ ki a rì sinu ki o kọ ẹkọ nipa kikọlu module GY-87 IMU pẹlu Arduino!

Ohun ti o jẹ GY-87 IMU MPU6050

Awọn modulu wiwọn inertial (IMU) bii GY-87 darapọ ọpọlọpọ awọn sensosi sinu package kan, gẹgẹbi MPU6050 accelerometer/gyroscope, HMC5883L magnetometer, ati sensọ titẹ barometric BMP085. Nitorinaa, GY-87 IMU MPU6050 jẹ gbogbo-ni-ọkan 9-axis išipopada titele module ti o ṣajọpọ gyroscope 3-axis, accelerometer 3-axis, magnetometer 3-axis, ati ero isise išipopada oni-nọmba kan. O ti wa ni lilo pupọ ni awọn iṣẹ akanṣe roboti, bii quadcopters ati awọn ọkọ oju-ofurufu miiran ti ko ni eniyan (UAVs), nitori pe o le ṣe iwọn deede ati orin iṣalaye ati išipopada. O tun lo ninu awọn ohun elo miiran, gẹgẹbi lilọ kiri, ere, ati otito foju.

Hardware irinše

Iwọ yoo nilo ohun elo atẹle fun Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Module pẹlu Arduino.

Awọn eroja Iye Qty
Arduino UNO 1
MPU6050 Module sensọ GY-87 1
Akara akara 1
Jumper Wires 1

GY-87 pẹlu Arduino 

Ni bayi ti o ti loye GY-87, o to akoko lati ni wiwo pẹlu Arduino. Lati ṣe bẹ, tẹle Bayi pe o ti loye GY-87, o to akoko lati ni wiwo pẹlu Arduino. Lati ṣe bẹ, tẹle

Sisọmu

Ṣe awọn asopọ ni ibamu si aworan atọka ti a fun ni isalẹ

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Apapọ-Sensor-Idanwo-Sketch-fig 1Wiregbe / Awọn isopọ

Arduino MPU6050 sensọ
5V VCC
GND GND
A4 SDA
A5 SCA

Fifi Arduino IDE sori ẹrọ 

Ni akọkọ, o nilo lati fi Arduino IDE Software sori ẹrọ lati ọdọ osise rẹ webojula Arduino. Eyi ni itọsọna igbese-nipasẹ-igbesẹ ti o rọrun lori “Bi o ṣe le fi Arduino IDE sori ẹrọ.”

Awọn ile-ikawe fifi sori ẹrọ 

Ṣaaju ki o to bẹrẹ koodu ikojọpọ, ṣe igbasilẹ ati ṣii awọn ile-ikawe wọnyi ni /Eto Files (x86)/Arduino/Libraries (aiyipada) ni ibere lati lo sensọ pẹlu Arduino ọkọ. Eyi ni itọsọna igbese-nipasẹ-igbesẹ ti o rọrun lori “Bi o ṣe le ṣafikun Awọn ile-ikawe ni Arduino IDE.”

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Irọrun

Koodu 

Bayi da awọn koodu atẹle ki o gbe si Arduino IDE Software.

#pẹlu "I2Cdev.h" #pẹlu "MPU6050.h" #pẹlu #pẹlu MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Simple Kompasi; int085_t ake, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = eke; ofo setup () {Serial.begin (16); Wire.begin (); // ṣe ipilẹṣẹ awọn ẹrọ Serial.println (“Ibẹrẹ awọn ẹrọ I13C…”); // initialize bmp9600 ti o ba ti (! bmp.begin ()) {Serial.println ("Ko le ri a wulo BMP2 sensọ, ṣayẹwo (! bmp.begin ()) { Serial.println("Ko le ri a wulo BMP085 sensọ, ṣayẹwo Serial.println (accelgyro.testConnection ()? "MPU085 asopọ aseyori": "MPU085 asopọ kuna"); accelgyro.setI6050CBypassEnabled (otitọ); // ṣeto fori mode fun ẹnu-ọna to hmc6050L //S initialize hmc2l (Compass) 5883, 'E'); Kompasi.SetSamplingMode (COMPASS_SINGLE);
Kompasi.SetScale (COMPASS_SCALE_130);
Kompasi.SetOrientation (COMPASS_HORIZONTAL_X_NORTH); // tunto Arduino LED fun ṣiṣe ayẹwo iṣẹ ṣiṣe pinMode (LED_PIN, OUTPUT); } ofo lupu() {
Serial.print ("Iwọn otutu = "); Serial.print (bmp.readTemperature ());
Serial.println ("*C"); Serial.print ("Titẹ = ");
Serial.print (bmp.readPressure ()); Serial.println ("Pa"); // Ṣe iṣiro giga ti o ro pe 'boṣewa' barometric // titẹ ti 1013.25 millibar = 101325 Pascal Serial.print ("Iga = "); Serial.print (bmp.readAltitude ()); Serial.println ("mita"); Serial.print ("Titẹ ni sealevel (iṣiro) = ");
Serial.print (bmp.readSealevelPressure ()); Serial.println ("Pa");
Serial.print (" Giga gidi = "); Serial.print (bmp.readAltitude (101500));
Serial.println ("mita"); // ka aise accel/gyro wiwọn lati ẹrọ accelgyro.getMotion6 (&ax, &ay, &az, & gx, &gy, & gz); // àpapọ taabu-ya accel/gyro x/y/z iye 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); leefofo akọle =
Kompasi.GetHeadingDegrees (); Serial.print ("Akọle: \ t"); Serial.println ( akori ); // seju LED lati tọka iṣẹ blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); idaduro (500); }

Jẹ ki a danwo 

Ni kete ti o ba gbe koodu sii, o to akoko lati ṣe idanwo iyika naa! Awọn koodu ti o wa ninu Arduino eto awọn atọkun pẹlu awọn sensosi lilo wọn ikawe, eyi ti o faye gba o lati ka sensọ data ki o si ṣeto orisirisi awọn atunto ti awọn sensosi. Lẹhinna o tẹ data sensọ jade lori ibudo ni tẹlentẹle. Awọn LED ti wa ni lo lati fihan pe awọn Circuit ti wa ni ṣe nkankan. Eyi tumọ si pe LED seju ni gbogbo igba ti iṣẹ lupu naa ba ṣiṣẹ, ti o nfihan pe koodu naa n ka awọn iye sensọ lọwọ.

Ise alaye 

Awọn koodu ti wa ni awọn pataki ohun lori eyi ti awọn Circuit ká ṣiṣẹ da lori. Nitorinaa, jẹ ki a loye koodu naa:.

  • Ni akọkọ, o pẹlu ọpọlọpọ awọn ile-ikawe lati ni wiwo pẹlu awọn sensọ:
  • "I2Cdev.h" ati "MPU6050.h" jẹ awọn ile-ikawe fun MPU6050 6-axis accelerometer/ sensọ gyroscope
  • "Adafruit_BMP085.h" jẹ ile-ikawe fun sensọ titẹ barometric BMP085.
  • "HMC5883L_Simple.h" jẹ ile-ikawe fun HMC5883L magnetometer sensọ.
  • Lẹhinna o ṣẹda awọn nkan agbaye fun awọn sensọ mẹta: MPU6050 accelgyro, Adafruit_BMP085 bmp, ati HMC5883L_Simple Kompasi.
  • Nigbamii ti, o ṣalaye diẹ ninu awọn oniyipada lati tọju awọn iye sensọ, gẹgẹbi aa, ay, ati az fun accelerometer ti MPU6050 ati lati ori fun magnetometer ti HMC5883L. Ati awọn ti o asọye a LED_PIN ibakan ati ki o kan blinkState oniyipada.
  • Iṣẹ iṣeto () bẹrẹ ibaraẹnisọrọ ni tẹlentẹle ati bẹrẹ ibaraẹnisọrọ I2C. Lẹhinna o bẹrẹ awọn sensọ mẹta:
  • Sensọ BMP085 ti wa ni ipilẹṣẹ nipasẹ pipe ọna ibẹrẹ (). Ti eyi ba pada eke, ti o nfihan pe sensọ ko le rii, eto naa wọ inu lupu ailopin ati tẹ ifiranṣẹ aṣiṣe kan sita lori ibudo ni tẹlentẹle.
  • Sensọ MPU6050 ti wa ni ipilẹṣẹ nipasẹ pipe ọna ibẹrẹ () ati ṣayẹwo boya o n ṣiṣẹ ni deede. Ati pe o ṣeto fori I2C ṣiṣẹ fun MPU6050.
  • HMC5883L sensọ ti wa ni ipilẹṣẹ nipasẹ pipe awọn iṣẹ kan, gẹgẹbi SetDeclination, SetSamplingMode, SetScale, ati SetOrientation, fun eto awọn atunto oriṣiriṣi fun sensọ.
  • Ninu iṣẹ lupu (), koodu naa ka data lati awọn sensọ mẹta ati tẹ jade lori ibudo ni tẹlentẹle:
  • O ka iwọn otutu, titẹ, giga, ati titẹ ni ipele okun lati sensọ.
  • O ka isare aise ati awọn wiwọn gyroscope lati sensọ MPU6050.
  • O ka akọle lati HMC5883L sensọ, eyiti o jẹ igun laarin itọsọna eyiti sensọ n tọka ati itọsọna ninu eyiti ariwa oofa wa.
  • Nikẹhin, o ṣaju LED lati tọka iṣẹ ṣiṣe ati duro fun iṣẹju diẹ ṣaaju ki o tun ka awọn sensọ naa.

Awọn iwe aṣẹ / Awọn orisun

ARDUINO GY87 Afọwọya Idanwo sensọ [pdf] Afowoyi olumulo
Aworan Idanwo sensọ Apapo GY87, GY87, Aworan Idanwo sensọ Iṣajọpọ, Aworan Idanwo sensọ, Aworan Idanwo

Awọn itọkasi

Fi ọrọìwòye

Adirẹsi imeeli rẹ kii yoo ṣe atẹjade. Awọn aaye ti a beere ti wa ni samisi *