ዝርዝር ሁኔታ:

MPU-6000 ን እና Arduino Nano ን በመጠቀም የእንቅስቃሴ መከታተያ -4 ደረጃዎች
MPU-6000 ን እና Arduino Nano ን በመጠቀም የእንቅስቃሴ መከታተያ -4 ደረጃዎች

ቪዲዮ: MPU-6000 ን እና Arduino Nano ን በመጠቀም የእንቅስቃሴ መከታተያ -4 ደረጃዎች

ቪዲዮ: MPU-6000 ን እና Arduino Nano ን በመጠቀም የእንቅስቃሴ መከታተያ -4 ደረጃዎች
ቪዲዮ: MPU6000 DMPテスト 2024, ሀምሌ
Anonim
Image
Image

MPU-6000 በውስጡ ባለ 3-አክሲ የፍጥነት መለኪያ እና 3-አክሲ ጋይሮስኮፕ ያለው ባለ 6-አክሲስ እንቅስቃሴ መከታተያ ዳሳሽ ነው። ይህ አነፍናፊ በ 3-ልኬት አውሮፕላን ውስጥ የአንድን ነገር ትክክለኛ አቀማመጥ እና ቦታ በብቃት መከታተል ይችላል። እስከ ከፍተኛ ትክክለኛነት ድረስ የአቀማመጥ ትንተና በሚያስፈልጋቸው ስርዓቶች ውስጥ ሊሠራ ይችላል።

በዚህ መማሪያ ውስጥ የ MPU-6000 ዳሳሽ ሞዱል ከአርዱዲኖ ናኖ ጋር መገናኘቱ በምስል ተገል hasል። የፍጥነት እና የማዞሪያ አንግል እሴቶችን ለማንበብ እኛ አርዱዲኖ ናኖን ከ I2c አስማሚ ጋር ተጠቀምን። ይህ I2C አስማሚ ከአነፍናፊ ሞዱል ጋር ያለውን ግንኙነት ቀላል እና የበለጠ አስተማማኝ ያደርገዋል።

ደረጃ 1 ሃርድዌር ያስፈልጋል

ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል

ግባችንን ለማሳካት የሚያስፈልጉን ቁሳቁሶች የሚከተሉትን የሃርድዌር ክፍሎች ያካትታሉ።

1. MPU-6000

2. አርዱዲኖ ናኖ

3. I2C ኬብል

4. I2C ጋሻ ለአርዱዲኖ ናኖ

ደረጃ 2 የሃርድዌር ማያያዣ;

የሃርድዌር ግንኙነት
የሃርድዌር ግንኙነት
የሃርድዌር ግንኙነት
የሃርድዌር ግንኙነት

የሃርድዌር ማያያዣ ክፍል በመሠረቱ በአነፍናፊው እና በአሩዲኖ ናኖ መካከል የሚፈለጉትን የሽቦ ግንኙነቶች ያብራራል። ለተፈለገው ውጤት በማንኛውም ስርዓት ላይ ሲሰሩ ትክክለኛ ግንኙነቶችን ማረጋገጥ መሠረታዊ አስፈላጊነት ነው። ስለዚህ አስፈላጊዎቹ ግንኙነቶች እንደሚከተለው ናቸው

MPU-6000 ከ I2C በላይ ይሠራል። እያንዳንዱን የአነፍናፊ በይነገጽ እንዴት ሽቦ ማገናኘት እንደሚቻል የሚያሳይ የምስል ሽቦ ንድፍ ምሳሌ እዚህ አለ።

ከሳጥን ውጭ ፣ ቦርዱ ለ I2C በይነገጽ የተዋቀረ ነው ፣ ስለሆነም እርስዎ ሌላ የማይታወቁ ከሆኑ ይህንን መንጠቆ እንዲጠቀሙ እንመክራለን።

የሚያስፈልግዎት አራት ሽቦዎች ብቻ ናቸው! Vcc ፣ Gnd ፣ SCL እና SDA ፒኖች የሚያስፈልጉት አራት ግንኙነቶች ብቻ ናቸው እና እነዚህ በ I2C ገመድ እገዛ ተገናኝተዋል።

እነዚህ ግንኙነቶች ከላይ ባሉት ሥዕሎች ውስጥ ይታያሉ።

ደረጃ 3 የእንቅስቃሴ መከታተያ ኮድ

የእንቅስቃሴ መከታተያ ኮድ ፦
የእንቅስቃሴ መከታተያ ኮድ ፦

አሁን በአሩዲኖ ኮድ እንጀምር።

ከአርዲኖው ጋር የአነፍናፊ ሞጁሉን በሚጠቀሙበት ጊዜ የ Wire.h ቤተ -መጽሐፍትን እንጨምራለን። “ሽቦ” ቤተ -መጽሐፍት በአነፍናፊው እና በአርዲኖ ቦርድ መካከል ያለውን የ i2c ግንኙነት የሚያመቻቹ ተግባሮችን ይ containsል።

ጠቅላላው የአሩዲኖ ኮድ ለተጠቃሚው ምቾት ከዚህ በታች ተሰጥቷል-

#ያካትቱ

// MPU-6000 I2C አድራሻ 0x68 (104) ነው

#መግለፅ Addr 0x68

ባዶነት ማዋቀር ()

{

// የ I2C ግንኙነትን እንደ መምህር ያስጀምሩ

Wire.begin ();

// ተከታታይ ግንኙነቶችን ያስጀምሩ ፣ የባውድ መጠን = 9600 ያዘጋጁ

Serial.begin (9600);

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የ gyroscope ውቅረት መመዝገቢያ ይምረጡ

Wire.write (0x1B);

// ሙሉ ልኬት ክልል = 2000 ዲፒኤስ

Wire.write (0x18);

// I2C ስርጭትን ያቁሙ

Wire.endTransmission ();

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የፍጥነት መለኪያ ውቅረት መመዝገቢያ ይምረጡ

Wire.write (0x1C);

// ሙሉ ልኬት ክልል = +/- 16 ግ

Wire.write (0x18);

// I2C ስርጭትን ያቁሙ

Wire.endTransmission ();

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የኃይል አስተዳደር መመዝገቢያ ይምረጡ

Wire.write (0x6B);

// PLL ከ xGyro ማጣቀሻ ጋር

Wire.write (0x01);

// I2C ስርጭትን ያቁሙ

Wire.endTransmission ();

መዘግየት (300);

}

ባዶነት loop ()

{

ያልተፈረመ int ውሂብ [6];

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይምረጡ

Wire.write (0x3B);

// I2C ስርጭትን ያቁሙ

Wire.endTransmission ();

// 6 ባይት ውሂብን ይጠይቁ

Wire.requestFrom (Addr, 6);

// 6 ባይት ውሂብ ያንብቡ

ከሆነ (Wire.available () == 6)

{

ውሂብ [0] = Wire.read ();

ውሂብ [1] = Wire.read ();

ውሂብ [2] = Wire.read ();

ውሂብ [3] = Wire.read ();

ውሂብ [4] = Wire.read ();

ውሂብ [5] = Wire.read ();

}

// ውሂቡን ይለውጡ

int xAccl = ውሂብ [0] * 256 + ውሂብ [1];

int yAccl = ውሂብ [2] * 256 + ውሂብ [3];

int zAccl = ውሂብ [4] * 256 + ውሂብ [5];

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይምረጡ

Wire.write (0x43);

// I2C ስርጭትን ያቁሙ

Wire.endTransmission ();

// 6 ባይት ውሂብን ይጠይቁ

Wire.requestFrom (Addr, 6);

// 6 ባይት ውሂብ ያንብቡ

ከሆነ (Wire.available () == 6)

{

ውሂብ [0] = Wire.read ();

ውሂብ [1] = Wire.read ();

ውሂብ [2] = Wire.read ();

ውሂብ [3] = Wire.read ();

ውሂብ [4] = Wire.read ();

ውሂብ [5] = Wire.read ();

}

// ውሂቡን ይለውጡ

int xGyro = ውሂብ [0] * 256 + ውሂብ [1];

int yGyro = ውሂብ [2] * 256 + ውሂብ [3];

int zGyro = ውሂብ [4] * 256 + ውሂብ [5];

// የውጤት መረጃን ወደ ተከታታይ ማሳያ

Serial.print ("በ X-Axis ውስጥ ማፋጠን");

Serial.println (xAccl);

Serial.print ("Y-Axis ውስጥ ማፋጠን");

Serial.println (yAccl);

Serial.print ("ዘ-አክሲዮን ውስጥ ማፋጠን");

Serial.println (zAccl);

Serial.print ("X-Axis of rotation:");

Serial.println (xGyro);

Serial.print ("Y-Axis of rotation:");

Serial.println (yGyro);

Serial.print ("Z-Axis of rotation:");

Serial.println (zGyro);

መዘግየት (500);

}

በሽቦ ቤተ -መጽሐፍት ውስጥ Wire.write () እና Wire.read () ትዕዛዞቹን ለመፃፍ እና የአነፍናፊውን ውጤት ለማንበብ ያገለግላሉ።

Serial.print () እና Serial.println () በአርዲኖ አይዲኢ ተከታታይ ሞኒተር ላይ የአነፍናፊውን ውጤት ለማሳየት ያገለግላል።

የአነፍናፊው ውጤት ከላይ በስዕሉ ላይ ይታያል።

ደረጃ 4: ማመልከቻዎች

ማመልከቻዎች
ማመልከቻዎች

MPU-6000 የእንቅስቃሴ መከታተያ ዳሳሽ ነው ፣ ይህም መተግበሪያውን በስማርትፎኖች እና በጡባዊዎች የእንቅስቃሴ በይነገጽ ውስጥ ያገኛል። በዘመናዊ ስልኮች ውስጥ እነዚህ ዳሳሾች ለትግበራዎች እና ለስልክ ቁጥጥር የእጅ ምልክቶች ትዕዛዞች ፣ የተሻሻለ ጨዋታ ፣ የተጨመረው እውነታ ፣ የፓኖራሚክ ፎቶ ቀረፃ እና እይታ ፣ እና የእግረኛ እና የተሽከርካሪ አሰሳ በመሳሰሉት መተግበሪያዎች ውስጥ ሊሠሩ ይችላሉ። MotionTracking ቴክኖሎጂ ከጤና እና ከአካል ብቃት ክትትል እስከ አካባቢ-ተኮር አገልግሎቶች ድረስ ባሉ ትግበራዎች ውስጥ ጥቅም ላይ ሊውሉ ወደሚችሉ ኃይለኛ 3 ል አስተዋይ መሣሪያዎች የእጅ ስልኮችን እና ጡባዊዎችን ሊቀይር ይችላል።

የሚመከር: