ARDUINO GY87 קאַמביינד סענסאָר טעסט סקיצע
הקדמה
אויב איר זענט אַ גיריק פאַבריקאַנט אָדער אַ ראָובאַטיקס ענטוזיאַסט, איר האָט געפֿונען דעם קליינטשיק נאָך שטאַרק מאָדולע אויב איר זענט אַ גיריק פאַבריקאַנט אָדער אַ ראָובאַטיקס ענטוזיאַסט, איר האָט געפֿונען דעם קליינטשיק אָבער שטאַרק מאָדולע BMP085 באַראָמעטער. די GY-87 IMU מאָדולע איז אַ גרויס וועג צו לייגן באַוועגונג סענסינג צו דיין פּראַדזשעקס, ווי אַ זיך-באַלאַנסינג ראָבאָט אָדער אַ קוואַדקאָפּטער.
אָבער איידער איר קענען אָנהייבן עקספּעראַמענטינג מיט די GY-87 IMU מאָדולע, איר דאַרפֿן צו וויסן ווי צו פאַרבינדן עס מיט דיין Arduino ברעט. אַז ס ווו דעם בלאָג קומט אין! אין די פאלגענדע פּאַראַגראַפס, מיר וועלן דעקן די באַסיקס פון די GY-87 IMU מאָדולע, ווי צו שטעלן עס אַרויף און ווי צו שרייַבן די Arduino קאָד צו לייענען די סענסער דאַטן. מיר וועלן אויך צושטעלן עטלעכע עצות און רעסורסן פֿאַר טראָובלעשאָאָטינג פּראָסט ישוז.
אַזוי, אויב איר זענט גרייט צו אָנהייבן, לאָזן אונדז ונטערטוקנ זיך און לערנען וועגן ינטערפייסינג די GY-87 IMU מאָדולע מיט Arduino!
וואָס איז GY-87 IMU MPU6050
ינערטיאַל מעזשערמאַנט אַפּאַראַט (IMU) מאַדזשולז ווי די GY-87 פאַרבינדן פילע סענסאָרס אין אַ איין פּעקל, אַזאַ ווי די MPU6050 אַקסעלעראַמאַטער / גיראָסקאָפּע, די HMC5883L מאַגנעטאָמעטער און די BMP085 באַראָמעטריק דרוק סענסער. דערפֿאַר, די GY-87 IMU MPU6050 איז אַן אַלע-אין-איין 9-אַקס באַוועגונג טראַקינג מאָדולע וואָס קאַמביינז אַ 3-אַקס גיראָסקאָופּ, 3-אַקס אַקסעלעראַמאַטער, 3-אַקס מאַגנעטאָמעטער און אַ דיגיטאַל באַוועגונג פּראַסעסער. עס איז געניצט פיל אין ראָובאַטיק פּראַדזשעקס, ווי קוואַדקאָפּטערס און אנדערע אַנמאַנד לופט וועהיקלעס (ואַווס), ווייַל עס קענען אַקיעראַטלי מעסטן און שפּור אָריענטירונג און באַוועגונג. עס איז אויך געניצט אין אנדערע אַפּלאַקיישאַנז, אַזאַ ווי נאַוויגאַציע, גיימינג און ווירטואַל פאַקט.
ייַזנוואַרג קאַמפּאָונאַנץ
איר וועט דאַרפן די פאלגענדע ייַזנוואַרג פֿאַר ינטערפאַסינג GY-87 IMU MPU6050 HMC5883L BMP085 מאָדולע מיט Arduino.
קאַמפּאָונאַנץ | ווערט | קטי |
Arduino UNO | – | 1 |
מפּו 6050 סענסאָר מאָדולע | GY-87 | 1 |
ברעאַדבאָאַרד | – | 1 |
דזשאַמפּער ווירעס | – | 1 |
GY-87 מיט Arduino
איצט אַז איר האָט פארשטאנען די GY-87, עס איז צייט צו פאַרבינדן מיט די Arduino. צו טאָן דאָס, נאָכגיין איצט אַז איר האָט פארשטאנען די GY-87, עס איז צייט צו פאַרבינדן מיט די Arduino. צו טאָן דאָס, נאָכפאָלגן
סכעמאַטיש
מאַכן קאַנעקשאַנז לויט די קרייַז דיאַגראַמע געגעבן אונטן
GY-87 IMU MPU6050 HMC5883L BMP085 Arduinoוויירינג / קאַנעקשאַנז
Arduino | MPU6050 סענסאָר |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
ינסטאַלירן Arduino IDE
ערשטער, איר דאַרפֿן צו ינסטאַלירן Arduino IDE ווייכווארג פֿון זיין באַאַמטער webפּלאַץ Arduino. דאָ איז אַ פּשוט שריט-פֿאַר-שריט פירער אויף "ווי צו ינסטאַלירן Arduino IDE."
ינסטאָלינג ליבראַריעס
איידער איר אָנהייב ופּלאָאַדינג קאָד, אראפקאפיע און אַנזיפּ די פאלגענדע לייברעריז אין / פּראָגראַם Files (x86) / Arduino / לייברעריז (פעליקייַט) צו נוצן די סענסער מיט די Arduino ברעט. דאָ איז אַ פּשוט שריט-פֿאַר-שריט פירער אויף "ווי צו לייגן ליבראַריעס אין Arduino IDE."
- מפּו 6050
- Adafruit_BMP085
- HMC5883L_Simple
קאָד
איצט נאָכמאַכן די פאלגענדע קאָד און ופּלאָאַד עס צו Arduino IDE ווייכווארג.
#include "I2Cdev.h" #include "MPU6050.h" #include # אַרייַננעמען MPU085 אַקסעלגיראָ; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t אַקס, אַייַ, אַז; int5883_t gx, gy, gz; # דעפינירן LED_PIN 16 בול בלינקסטייט = פאַלש; פּאָסל סעטאַפּ () { Serial.begin (16); Wire.begin(); // ינישאַלייז דיווייסאַז Serial.println ("יניטיאַליזינג י13ק דעוויסעס ..."); // ינישאַלייז bmp9600 אויב (!bmp.begin()) {Serial.println(“קען ניט געפֿינען אַ גילטיק במפּ2 סענסער, טשעק (!bmp.begin()) {Serial.println(“קען ניט געפֿינען אַ גילטיק במפּ085 סענסער, טשעק Serial.println (accelgyro.testConnection() ? "MPU085 קשר געראָטן": "Accelgyro.setI085CBypassEnabled (true) 6050, 'E');ampלינגמאָדע (COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // קאַנפיגיער Arduino געפירט פֿאַר קאָנטראָלירונג אַקטיוויטעט פּינמאָדע (LED_PIN, OUTPUT); } פּאָסל שלייף () {
Serial.print ("טעמפּעראַטור = "); סעריאַל.פּרינט (במפּ.רעדטעמפּעראַטור ());
Serial.println ("* C"); Serial.print ("דרוק = ");
סעריאַל.פּרינט (במפּ.רעדפּרעססורע ()); Serial.println ("פּאַ"); // רעכענען הייך אַסומינג 'נאָרמאַל' באַראָמעטריק // דרוק פון 1013.25 מיליבאַר = 101325 Pascal Serial.print(“Altitude = “); סעריאַל.פּרינט (במפּ.רעדאַלטיטודע ()); Serial.println ("מעטער"); Serial.print ("דרוק ביי סעאַלעל (קאַלקיאַלייטיד) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println ("פּאַ");
Serial.print ("פאַקטיש הייך = "); Serial.print(bmp.readAltitude(101500));
Serial.println ("מעטער"); // לייענען רוי אַקסעל/גיראָ מעזשערמאַנץ פון מיטל accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // ווייַז קוויטל-צעשיידן אַקסעל / גיראָ רענטגענ / י / ז וואַלועס Serial.print ("אַ / ג: \ ה"); סיריאַל.פּרינט (האַק);
Serial.print ("\ ה"); Serial.print(ay); Serial.print ("\ ה"); Serial.print(אַז);
Serial.print ("\ ה"); סיריאַל.פּרינט (גקס); Serial.print ("\ ה"); Serial.print(גי);
Serial.print ("\ ה"); Serial.println(גז); פלאָוט כעדינג =
Compass.GetHeadingDegrees(); Serial.print ("כעדינג: \ ה"); Serial.println (כעדינג); // בלינק געפירט צו אָנווייַזן אַקטיוויטעט בלינקסטייט = !בלינקסטאַטע;
דיגיטאַלWrite (LED_PIN, בלינקסטייט); פאַרהאַלטן (500); }
זאל ס פּרובירן עס
אַמאָל איר ופּלאָאַד די קאָד, עס איז צייט צו פּרובירן דעם קרייַז! דער קאָד אין די Arduino פּראָגראַם ינטערפייסיז מיט די סענסאָרס ניצן זייער לייברעריז, וואָס אַלאַוז עס צו לייענען סענסער דאַטן און שטעלן פאַרשידן קאַנפיגיעריישאַנז פון די סענסאָרס. דערנאָך עס פּרינץ די סענסער דאַטן איבער די סיריאַל פּאָרט. די געפירט איז געניצט צו ווייַזן אַז דער קרייַז איז טאן עפּעס. דעם מיטל די געפירט בלינקס יעדער מאָל די שלייף פונקציע איז לויפן, וואָס ינדיקייץ אַז די קאָד אַקטיוולי לייענען סענסער וואַלועס.
אַרבעט דערקלערונג
דער קאָד איז די הויפּט זאַך אויף וואָס די אַרבעט פון די קרייַז איז באזירט. אַזוי, לאָזן אונדז פֿאַרשטיין דעם קאָד:.
- ערשטער, עס כולל עטלעכע לייברעריז צו צובינד מיט די סענסאָרס:
- "I2Cdev.h" און "MPU6050.h" זענען לייברעריז פֿאַר די MPU6050 6-אַקס אַקסעלעראַמאַטער / גיראָסקאָפּע סענסער
- "Adafruit_BMP085.h" איז אַ ביבליאָטעק פֿאַר די BMP085 באַראָמעטריק דרוק סענסער.
- "HMC5883L_Simple.h" איז אַ ביבליאָטעק פֿאַר די HMC5883L מאַגנעטאָמעטער סענסער.
- דערנאָך עס קריייץ גלאבאלע אַבדזשעקץ פֿאַר די דריי סענסאָרס: MPU6050 accelgyro, Adafruit_BMP085 bmp און HMC5883L_Simple Compass.
- דערנאָך, עס דיפיינז עטלעכע וועריאַבאַלז צו קראָם סענסער וואַלועס, אַזאַ ווי האַק, יי, און אַז פֿאַר די אַקסעלעראַמאַטער פון MPU6050 און צו קאָפּ פֿאַר די מאַגנעטאָמעטער פון HMC5883L. און עס דיפיינז אַ LED_PIN קעסיידערדיק און אַ בלינקסטייט בייַטעוודיק.
- די סעטאַפּ () פֿונקציע סטאַרץ אַ סיריאַל קאָמוניקאַציע און הייבט I2C קאָמוניקאַציע. דערנאָך עס יניטיאַלייזיז די דריי סענסאָרס:
- די BMP085 סענסער איז יניטיאַלייזד דורך רופן די אָנהייב () אופֿן. אויב דאָס קערט פאַלש, וואָס ינדיקייץ אַז דער סענסער קען נישט זיין געפֿונען, די פּראָגראַם גייט אריין אין אַ ינפאַנאַט שלייף און פּרינץ אַ טעות אָנזאָג איבער די סיריאַל פּאָרט.
- די MPU6050 סענסער איז יניטיאַלייזד דורך רופן די ינישאַליזע () אופֿן און קאָנטראָלירן צי עס אַרבעט ריכטיק. און עס שטעלן די I2C בייפּאַס ענייבאַלד פֿאַר MPU6050.
- די HMC5883L סענסער איז יניטיאַלייזד דורך רופן עטלעכע פאַנגקשאַנז, אַזאַ ווי SetDeclination, SetSamplingMode, SetScale און SetOrientation, פֿאַר באַשטעטיקן פאַרשידענע קאַנפיגיעריישאַנז פֿאַר די סענסער.
- אין די שלייף () פונקציע, די קאָד לייענט דאַטן פון די דריי סענסאָרס און פּרינץ עס איבער די סיריאַל פּאָרט:
- עס לייענט טעמפּעראַטור, דרוק, הייך און דרוק אויף ים שטאַפּל פון די סענסער.
- עס לייענט רוי אַקסעלעריישאַן און גיראָסקאָפּע מעזשערמאַנץ פון די MPU6050 סענסער.
- עס לייענט די כעדינג פון די HMC5883L סענסער, וואָס איז דער ווינקל צווישן די ריכטונג אין וואָס דער סענסער איז ווייזן און די ריכטונג אין וואָס מאַגנעטיק צפון ליגט.
- צום סוף, עס בלינקס די געפירט צו אָנווייַזן טעטיקייט און ווייץ אַ מאָמענט איידער רירידינג די סענסאָרס.
דאָקומענטן / רעסאָורסעס
![]() |
ARDUINO GY87 קאַמביינד סענסאָר טעסט סקיצע [pdfבאַניצער מאַנואַל GY87 קאַמביינד סענסאָר טעסט סקיצע, GY87, קאַמביינד סענסאָר טעסט סקיצע, סענסאָר טעסט סקיצע, טעסט סקיצע |