ARDUINO-lgoo

ARDUINO GY87 ጥምር ዳሳሽ ሙከራ ንድፍ

ARDUINO-GY87-የተጣመረ-ዳሳሽ-ሙከራ-ስዕል-ምርት

መግቢያ

ጉጉ ሰሪ ወይም የሮቦቲክስ አድናቂ ከሆንክ ይህን ትንሽ ነገር ግን ኃይለኛ ሞጁል አጋጥሞሃል ጉጉ ሰሪ ወይም የሮቦቲክስ አድናቂ ከሆንክ ይህን ትንሽ ሆኖም ኃይለኛ ሞጁል BMP085 ባሮሜትር አግኝተሃል። የ GY-87 IMU ሞጁል እንደ ራስ-ሚዛናዊ ሮቦት ወይም ኳድኮፕተር ባሉ ፕሮጀክቶችዎ ላይ የእንቅስቃሴ ዳሳሾችን ለመጨመር ጥሩ መንገድ ነው።
ነገር ግን በ GY-87 IMU ሞጁል መሞከር ከመጀመርዎ በፊት ከአርዱዪኖ ሰሌዳዎ ጋር እንዴት እንደሚገናኙ ማወቅ አለብዎት። ይህ ብሎግ የሚመጣው እዚያ ነው! በሚቀጥሉት አንቀጾች የ GY-87 IMU ሞጁል መሰረታዊ ነገሮችን፣ እንዴት ማዋቀር እንደሚቻል እና የአርዱዪኖ ኮድ እንዴት እንደሚፃፍ የሴንሰር መረጃን እናነባለን። ለተለመዱ ጉዳዮች መላ ፍለጋ አንዳንድ ጠቃሚ ምክሮችን እና ግብዓቶችን እናቀርባለን።
ስለዚህ፣ ለመጀመር ዝግጁ ከሆኑ፣ ወደ ውስጥ ዘልቀን እንገባና የGY-87 IMU ሞጁሉን ከአርዱዪኖ ጋር ስለማገናኘት እንማር!

GY-87 IMU MPU6050 ምንድን ነው?

እንደ GY-87 ያሉ የማይነቃነቅ መለኪያ አሃድ (IMU) ሞጁሎች ብዙ ዳሳሾችን ወደ አንድ ጥቅል ያዋህዳሉ፣ እንደ MPU6050 accelerometer/gyroscope፣ HMC5883L ማግኔትቶሜትር እና BMP085 ባሮሜትሪክ ግፊት ዳሳሽ። ስለዚህም GY-87 IMU MPU6050 ባለ 9-ዘንግ ጋይሮስኮፕ፣ 3-ዘንግ አክስሌሮሜትር፣ 3-ዘንግ ማግኔትቶሜትር እና ዲጂታል ሞሽን ፕሮሰሰር የሚያጣምረው ሁሉን-በ-አንድ ባለ 3-ዘንግ እንቅስቃሴ መከታተያ ሞዱል ነው። እንደ ኳድኮፕተሮች እና ሌሎች ሰው አልባ የአየር ላይ ተሽከርካሪዎች (UAVs) ባሉ ሮቦቲክ ፕሮጀክቶች ውስጥ ብዙ ጥቅም ላይ ይውላል፣ ምክንያቱም አቅጣጫን እና እንቅስቃሴን በትክክል መለካት እና መከታተል ይችላል። እንደ ዳሰሳ፣ ጨዋታ እና ምናባዊ እውነታ ባሉ ሌሎች መተግበሪያዎች ውስጥም ጥቅም ላይ ይውላል።

የሃርድዌር ክፍሎች

GY-87 IMU MPU6050 HMC5883L BMP085 ሞጁል ከአርዱዪኖ ጋር ለመገናኘት የሚከተለውን ሃርድዌር ያስፈልግዎታል።

አካላት ዋጋ ብዛት
አርዱዪኖ UNO 1
MPU6050 ዳሳሽ ሞዱል GY-87 1
የዳቦ ሰሌዳ 1
የጃምፐር ሽቦዎች 1

ጂ-87 ከአርዱዪኖ ጋር 

አሁን GY-87ን ስለተረዱ ከአርዱዪኖ ጋር ለመገናኘት ጊዜው አሁን ነው። ያንን ለማድረግ፣ ጂአይ-87ን ስለተረዱ አሁን ይከተሉ፣ ከአርዱዪኖ ጋር መገናኘት ጊዜው አሁን ነው። ይህንን ለማድረግ ይከተሉ

መርሃግብር

ከዚህ በታች በተሰጠው የወረዳ ዲያግራም መሰረት ግንኙነቶችን ይፍጠሩ

GY-87 IMU MPU6050 HMC5883L BMP085 አርዱዪኖARDUINO-GY87-የተጣመረ-ዳሳሽ-ሙከራ-ስዕል-በለስ 1ሽቦ / ግንኙነቶች

አርዱዪኖ MPU6050 ዳሳሽ
5V ቪሲሲ
ጂኤንዲ ጂኤንዲ
A4 ኤስዲኤ
A5 ኤስ.ኤ.ኤ

Arduino IDE በመጫን ላይ 

በመጀመሪያ የ Arduino IDE ሶፍትዌርን ከኦፊሴላዊው መጫን ያስፈልግዎታል webጣቢያ Arduino. “አርዱዪኖ አይዲኢ እንዴት እንደሚጫን” ላይ ቀላል የደረጃ-በደረጃ መመሪያ አለ።

ቤተ መፃህፍትን በመጫን ላይ 

ኮድ መስቀል ከመጀመርዎ በፊት የሚከተሉትን ቤተ-መጻሕፍት በ/ፕሮግራም ያውርዱ እና ይክፈቱ Files (x86)/Arduino/Libraries (ነባሪ) ዳሳሹን ከአርዱዪኖ ሰሌዳ ጋር ለመጠቀም። “በአርዱዪኖ አይዲኢ ውስጥ ቤተ-መጻሕፍት እንዴት እንደሚታከሉ” ላይ ቀላል የደረጃ በደረጃ መመሪያ እዚህ አለ።

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_ቀላል

ኮድ 

አሁን የሚከተለውን ኮድ ይቅዱ እና ወደ Arduino IDE ሶፍትዌር ይስቀሉት።

"I2Cdev.h"ን ጨምሮ #"MPU6050.h"ን ጨምሮ #ያካትቱ MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_ቀላል ኮምፓስ; int085_t መጥረቢያ, ay, az; int5883_t gx፣ gy፣ gz; # LED_PIN 16 ቡል blinkState = ሐሰትን መግለፅ; ባዶ ማዋቀር () {Serial.begin (16); Wire.begin (); // መሳሪያዎችን ማስጀመር Serial.println ("I13C መሳሪያዎችን በማስጀመር ላይ…"); // bmp9600ን ማስጀመር (!bmp.begin()) {Serial.println("የሚሰራ BMP2 ዳሳሽ ማግኘት አልተቻለም፣ አረጋግጥ(!bmp.begin()) { Serial.println("የሚሰራ BMP085 ዳሳሽ ማግኘት አልተቻለም፣ Check Serial.println(accelgyro.testConnection()? "MPU085 ግንኙነት ተሳክቷል"፡ "MPU085 ግንኙነት አልተሳካም"፤ accelgyro.setI6050CBypassEnabled(እውነት)፤ // ወደ hmc6050L መግቢያ የማለፊያ ሁነታን አዘጋጅ // hmc2l ኮምፓስ ማስጀመር 5883፣ 'ኢ')፤ ኮምፓስ.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
ኮምፓስ.ሴትኦሬንቴሽን(COMPASS_HORIZONTAL_X_NORTH); // የእንቅስቃሴውን pinMode (LED_PIN ፣ OUTPUT) ለመፈተሽ Arduino LED ን ያዋቅሩ። ባዶ loop() {
Serial.print ("ሙቀት = "); Serial.print (bmp.readTemperature ());
Serial.println (" * C"); Serial.print ("ግፊት = ");
Serial.print (bmp.readPressure ()); Serial.println ("ፓ"); // ከፍታን አስላ 'መደበኛ' ባሮሜትሪክ // የ 1013.25 ሚሊባር ግፊት = 101325 ፓስካል ሲሪያል.ፕሪንት (" ከፍታ = "); Serial.print (bmp.readAltitude ()); Serial.println ("ሜትሮች"); Serial.print ("በሴሌቭል ላይ ያለው ግፊት (የተሰላ) = ");
Serial.print (bmp.readSealevelPressure ()); Serial.println ("ፓ");
Serial.print ("እውነተኛ ከፍታ = "); Serial.print (bmp.readAltitude (101500));
Serial.println("ሜትሮች"); // ጥሬ የ accel/gyro መለኪያዎችን ከመሳሪያ accelgyro.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz) አንብብ; // ማሳያ ትር-የተለየ accel/gyro x/y/z እሴቶች Serial.print("a/g:\t"); Serial.print ( መጥረቢያ);
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); ተንሳፋፊ ርዕስ =
ኮምፓስ.GetHeadingDegrees(); Serial.print ("ርዕስ: \t"); Serial.println ( ርዕስ ); // blink LED እንቅስቃሴን ለማመልከት blinkState = !blinkState;
digitalWrite(LED_PIN፣ blinkState); መዘግየት (500); }

እንፈትነው 

አንዴ ኮዱን ከሰቀሉ በኋላ ወረዳውን ለመሞከር ጊዜው አሁን ነው! በአርዱዪኖ ፕሮግራም ውስጥ ያለው ኮድ ዳሳሾችን ቤተ መፃህፍቶቻቸውን በመጠቀም በይነ ገፅ ይገናኛል፣ ይህም የሴንሰር መረጃን እንዲያነብ እና የተለያዩ የሴንሰሮችን አወቃቀሮችን እንዲያዘጋጅ ያስችለዋል። ከዚያም የሴንሰሩን ዳታ በተከታታይ ወደብ ላይ ያትማል። ኤልኢዲው ወረዳው አንድ ነገር እየሰራ መሆኑን ለማሳየት ይጠቅማል. ይህ ማለት የ loop ተግባር በሚሰራበት ጊዜ ሁሉ ኤልኢዲ ብልጭ ድርግም ይላል፣ ይህም ኮዱ የዳሳሽ እሴቶችን በንቃት እያነበበ መሆኑን ያሳያል።

የሥራ ማብራሪያ 

ኮዱ የወረዳው አሠራር የተመሰረተበት ዋናው ነገር ነው. ስለዚህ, ኮድ እንረዳው:.

  • በመጀመሪያ፣ ከዳሳሾች ጋር ለመገናኘት ብዙ ቤተ-መጻሕፍትን ያካትታል፡-
  • “I2Cdev.h” እና “MPU6050.h” ለMPU6050 ባለ 6-ዘንግ የፍጥነት መለኪያ/ጋይሮስኮፕ ዳሳሽ ቤተ-መጻሕፍት ናቸው።
  • "Adafruit_BMP085.h" ለBMP085 ባሮሜትሪክ ግፊት ዳሳሽ ቤተ-መጽሐፍት ነው።
  • "HMC5883L_Simple.h" የHMC5883L ማግኔቶሜትር ዳሳሽ ቤተመፃህፍት ነው።
  • ከዚያም ለሶስቱ ሴንሰሮች አለምአቀፍ ቁሶችን ይፈጥራል፡ MPU6050 accelgyro፣ Adafruit_BMP085 bmp እና HMC5883L_Simple Compass።
  • በመቀጠል እንደ ax፣ ay እና az ለ MPU6050 የፍጥነት መለኪያ እና ወደ HMC5883L ማግኔቶሜትር ለመምራት አንዳንድ ተለዋዋጮችን ይገልፃል። እና የ LED_PIN ቋሚ እና blinkState ተለዋዋጭ ይገልጻል።
  • የማዋቀር() ተግባር ተከታታይ ግንኙነት ይጀምራል እና I2C ግንኙነት ይጀምራል። ከዚያ ሶስቱን ዳሳሾች ያስጀምራል-
  • BMP085 ዳሳሽ የተጀመረው የጀማሪ() ዘዴን በመጥራት ነው። ይህ በውሸት ከተመለሰ, ይህም ሴንሰሩ ሊገኝ አለመቻሉን ያሳያል, ፕሮግራሙ ማለቂያ የሌለው ዑደት ውስጥ ያስገባ እና በተከታታይ ወደብ ላይ የስህተት መልእክት ያትማል.
  • የMPU6050 ዳሳሽ የመነሻ() ዘዴን በመጥራት እና በትክክል እየሰራ መሆኑን በማጣራት ይጀምራል። እና ለMPU2 የነቃውን የI6050C ማለፊያ አዘጋጅቷል።
  • የHMC5883L ዳሳሽ እንደ SetDeclination፣ SetS ያሉ አንዳንድ ተግባራትን በመጥራት ነው የተጀመረው።amplingMode፣ SetScale እና SetOrientation፣ ለሴንሰሩ የተለያዩ ውቅሮችን ለማዘጋጀት።
  • በ loop() ተግባር ውስጥ ኮዱ ከሶስቱ ዳሳሾች የተገኘውን መረጃ ያነባል እና በተከታታይ ወደብ ላይ ያትመዋል፡
  • ከሴንሰሩ ውስጥ የሙቀት መጠንን፣ ግፊትን፣ ከፍታን እና ግፊትን በባህር ደረጃ ያነባል።
  • ከMPU6050 ዳሳሽ ጥሬ ማጣደፍን እና ጋይሮስኮፕ መለኪያዎችን ያነባል።
  • ርእሱን ከ HMC5883L ዳሳሽ ያነባል, እሱም አነፍናፊው በሚያመለክትበት አቅጣጫ እና በማግኔት ሰሜናዊው አቅጣጫ መካከል ያለው አንግል ነው.
  • በመጨረሻም፣ እንቅስቃሴን ለመጠቆም ኤልኢዱን ብልጭ ድርግም ይላል እና ዳሳሾቹን በድጋሚ ከማንበቡ በፊት ትንሽ ይጠብቃል።

ሰነዶች / መርጃዎች

ARDUINO GY87 ጥምር ዳሳሽ ሙከራ ንድፍ [pdf] የተጠቃሚ መመሪያ
GY87 ጥምር ዳሳሽ ሙከራ ንድፍ፣ GY87፣ ጥምር ዳሳሽ የሙከራ ንድፍ፣ የዳሳሽ ሙከራ ንድፍ፣ የሙከራ ንድፍ

ዋቢዎች

አስተያየት ይስጡ

የኢሜል አድራሻዎ አይታተምም። አስፈላጊ መስኮች ምልክት ተደርጎባቸዋል *