ዝርዝር ሁኔታ:

የ3-ዘንግ ጋይሮስኮፕ ዳሳሽ BMG160 ን ከ Raspberry Pi ጋር ማገናኘት 5 ደረጃዎች
የ3-ዘንግ ጋይሮስኮፕ ዳሳሽ BMG160 ን ከ Raspberry Pi ጋር ማገናኘት 5 ደረጃዎች

ቪዲዮ: የ3-ዘንግ ጋይሮስኮፕ ዳሳሽ BMG160 ን ከ Raspberry Pi ጋር ማገናኘት 5 ደረጃዎች

ቪዲዮ: የ3-ዘንግ ጋይሮስኮፕ ዳሳሽ BMG160 ን ከ Raspberry Pi ጋር ማገናኘት 5 ደረጃዎች
ቪዲዮ: የድንገተኛ እርግዝና መከላከያ ዘዴን መቼ ነው መጠቀም ያለብን? 2024, ሀምሌ
Anonim
Image
Image

በዘመናዊው ዓለም ውስጥ ከግማሽ በላይ የሚሆኑ ወጣቶች እና ልጆች ጨዋታን ይወዳሉ እና እሱን የሚወዱ ሁሉ በጨዋታ ቴክኒካዊ ገጽታዎች የተደነቁ በዚህ ጎራ ውስጥ የእንቅስቃሴ ዳሰሳ አስፈላጊነትን ያውቃሉ። እኛ በተመሳሳይ ነገር ተገርመናል እና በቦርዶቹ ላይ ለማምጣት ብቻ ፣ የማንኛውንም ነገር የማዕዘን መጠን መለካት በሚችል የጂሮስኮፕ ዳሳሽ ላይ ለመሥራት አስበናል። ስለዚህ ፣ ሥራውን ለመቋቋም የወሰድነው አነፍናፊ BMG160 ነው። ቢኤምጂ160 ባለ 16-ቢት ፣ ዲጂታል ፣ ባለ ሦስትዮሽ ፣ ጋይሮስኮፕ ዳሳሽ ነው ፣ ይህም በሦስት ቀጥ ባለ ክፍል ልኬቶች ውስጥ የማዕዘን ደረጃውን ሊለካ ይችላል።

በዚህ መማሪያ ውስጥ ጃቫን እንደ የፕሮግራም ቋንቋ በመጠቀም የ BMG160 ን ከ Raspberry pi ጋር እናሳያለን።

ለዚህ ዓላማ የሚያስፈልጉዎት ሃርድዌር እንደሚከተለው ነው

1. BMG160

2. Raspberry Pi

3. I2C ኬብል

4. I2C ጋሻ ለ Raspberry Pi

5. የኤተርኔት ገመድ

ደረጃ 1 BMG160 አጠቃላይ እይታ

ምንድን ነው የሚፈልጉት..!!
ምንድን ነው የሚፈልጉት..!!

በመጀመሪያ እኛ BMG160 የሆነውን የአነፍናፊ ሞጁል መሰረታዊ ባህሪያትን እና በሚሠራበት የግንኙነት ፕሮቶኮል እርስዎን በደንብ ማወቅ እንፈልጋለን።

BMG160 በመሠረቱ ባለ 16-ቢት ፣ ዲጂታል ፣ ባለ ሦስትዮሽ ፣ ጋይሮስኮፕ ዳሳሽ ሲሆን ይህም የማዕዘን መጠኖችን ሊለካ ይችላል። እሱ በሦስት ቀጥ ባለ ክፍል ልኬቶች ፣ በ x- ፣ y- እና z-axis ፣ እና ተጓዳኝ የውጤት ምልክቶችን በማቅረብ የማዕዘን መጠኖችን ማስላት ይችላል። የ I2C የግንኙነት ፕሮቶኮልን በመጠቀም ከሮዝቤሪ ፒ ቦርድ ጋር መገናኘት ይችላል። ይህ ልዩ ሞጁል ለሸማች ትግበራዎች እንዲሁም ለኢንዱስትሪ ዓላማዎች መስፈርቶችን ለማሟላት የተነደፈ ነው።

አነፍናፊው የሚሠራበት የግንኙነት ፕሮቶኮል I2C ነው። I2C ለተዋሃደው የተቀናጀ ወረዳ ያመለክታል። በ SDA (ተከታታይ ውሂብ) እና በ SCL (ተከታታይ ሰዓት) መስመሮች በኩል ግንኙነቱ የሚካሄድበት የግንኙነት ፕሮቶኮል ነው። ብዙ መሣሪያዎችን በተመሳሳይ ጊዜ ለማገናኘት ያስችላል። እሱ በጣም ቀላሉ እና ቀልጣፋ የግንኙነት ፕሮቶኮል አንዱ ነው።

ደረጃ 2 - እርስዎ የሚፈልጉት..

ምንድን ነው የሚፈልጉት..!!
ምንድን ነው የሚፈልጉት..!!
ምንድን ነው የሚፈልጉት..!!
ምንድን ነው የሚፈልጉት..!!
ምንድን ነው የሚፈልጉት..!!
ምንድን ነው የሚፈልጉት..!!

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

1. BMG160

2. Raspberry Pi

3. I2C ኬብል

4. I2C ጋሻ ለ Raspberry Pi

5. የኤተርኔት ገመድ

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

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

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

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

ከሳጥን ውጭ ፣ ቦርዱ ለ I2C በይነገጽ የተዋቀረ ነው ፣ ስለሆነም እርስዎ ሌላ የማይታወቁ ከሆኑ ይህንን መንጠቆ እንዲጠቀሙ እንመክራለን። የሚያስፈልግዎት አራት ሽቦዎች ብቻ ናቸው!

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

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

ደረጃ 4: 3-የአክሲስ ጋይሮስኮፕ መለኪያ የጃቫ ኮድ በመጠቀም

የጃቫ ኮድ በመጠቀም 3-የአክሲስ ጋይሮስኮፕ ልኬት
የጃቫ ኮድ በመጠቀም 3-የአክሲስ ጋይሮስኮፕ ልኬት
የጃቫ ኮድ በመጠቀም 3-የአክሲስ ጋይሮስኮፕ ልኬት
የጃቫ ኮድ በመጠቀም 3-የአክሲስ ጋይሮስኮፕ ልኬት

የራስበሪ ፒን የመጠቀም ጥቅሙ አነፍናፊውን ከእሱ ጋር ለማስተሳሰር ሰሌዳውን በፕሮግራም ቋንቋ የመተጣጠፍ ችሎታን ይሰጥዎታል። የዚህን ሰሌዳ ጠቀሜታ በመጠቀም ፣ በጃቫ ውስጥ ፕሮግራሙን እዚህ እያሳየን ነው። ለ BMG160 የጃቫ ኮድ Dcube መደብር ማህበረሰብ ከሆነው ከ github ማህበረሰባችን ማውረድ ይችላል።

እንዲሁም ለተጠቃሚዎች ምቾት ፣ እኛ እዚህም ኮዱን እናብራራለን -እንደ ኮድ የመጀመሪያ ደረጃ በጃቫ ሁኔታ ውስጥ የ pi4j ቤተ -መጽሐፍትን ማውረድ ያስፈልግዎታል ፣ ምክንያቱም ይህ ቤተ -መጽሐፍት በኮዱ ውስጥ የተጠቀሙባቸውን ተግባራት ይደግፋል። ስለዚህ ቤተ -መጽሐፍቱን ለማውረድ የሚከተለውን አገናኝ መጎብኘት ይችላሉ-

pi4j.com/install.html

ለዚህ ዳሳሽ የሚሰራውን የጃቫ ኮድ ከዚህ መገልበጥ ይችላሉ-

አስመጣ com.pi4j.io.i2c. I2CBus;

አስመጪ com.pi4j.io.i2c. I2CDevice;

አስመጪ com.pi4j.io.i2c. I2CFactory;

ማስመጣት java.io. IOException;

የህዝብ መደብ BMG160

{

የሕዝብ የማይንቀሳቀስ ባዶ ባዶ (String args ) Exception ን ይጥላል

{

// I2C አውቶቡስ ይፍጠሩ

I2CBus አውቶቡስ = I2CFactory.getInstance (I2CBus. BUS_1);

// I2C መሣሪያን ያግኙ ፣ BMG160 I2C አድራሻ 0x68 (104) ነው

I2CDevice መሣሪያ = bus.getDevice (0x68);

// የክልል ምዝገባን ይምረጡ

// የሙሉ መጠን ክልል ያዋቅሩ ፣ 2000 ዲፒኤስ

መሣሪያ። ይፃፉ (0x0F ፣ (ባይት) 0x80);

// የመተላለፊያ ይዘት መመዝገቢያ ይምረጡ

// የመተላለፊያ ይዘት 200 Hz

መሣሪያ። ይፃፉ (0x10 ፣ (ባይት) 0x04);

ክር። እንቅልፍ (500);

// 6 ባይት መረጃዎችን ያንብቡ

// xGyro lsb ፣ xGyro msb ፣ yGyro lsb ፣ yGyro msb ፣ zGyro lsb ፣ zGyro msb

ባይት ውሂብ = አዲስ ባይት [6];

የመሣሪያ ንባብ (0x02 ፣ ውሂብ ፣ 0 ፣ 6);

// ውሂብ ይለውጡ

int xGyro = ((ውሂብ [1] & 0xFF) * 256 + (ውሂብ [0] & 0xFF));

ከሆነ (xGyro> 32767)

{

xGyro -= 65536;

}

int yGyro = ((ውሂብ [3] & 0xFF) * 256 + (ውሂብ [2] & 0xFF));

ከሆነ (yGyro> 32767)

{

yGyro -= 65536;

}

int zGyro = ((ውሂብ [5] & 0xFF) * 256 + (ውሂብ [4] & 0xFF));

ከሆነ (zGyro> 32767)

{

zGyro -= 65536;

}

// የውፅዓት ውሂብ ወደ ማያ ገጽ

System.out.printf ("X-Axis of Rotation: %d %n", xGyro);

System.out.printf ("Y-axis of rotation: %d %n", yGyro);

System.out.printf ("የማዞሪያ ዘ-ዘንግ: %d %n", zGyro);

}

}

በአነፍናፊው እና በቦርዱ መካከል የ i2c ግንኙነትን የሚያመቻች ቤተ -መጽሐፍት pi4j ፣ የተለያዩ ጥቅሎቹ I2CBus ፣ I2CDevice እና I2CFactory ግንኙነቱን ለማቋቋም ይረዳሉ።

አስመጣ com.pi4j.io.i2c. I2CBus ፤ አስመጪ com.pi4j.io.i2c. I2CDevice ፤ አስመጪ com.pi4j.io.i2c. I2CFactory; ማስመጣት java.io. IOException;

ይህ የኮዱ ክፍል አነፍናፊው የመፃፍ () ተግባሩን በመጠቀም የሚመለከታቸውን ትዕዛዞችን በመጻፍ የማዕዘን ምጣኔውን እንዲለካ ያደርገዋል ከዚያም የንባብ () ተግባርን በመጠቀም ውሂቡ ይነበባል።

// የክልል መመዝገቢያ ይምረጡ // ሙሉ ልኬት ክልል ያዋቅሩ ፣ 2000 dps device.write (0x0F ፣ (byte) 0x80); // የመተላለፊያ ይዘት ምዝገባን ይምረጡ/ የመተላለፊያ ይዘት 200 Hz መሣሪያ። ይፃፉ (0x10 ፣ (ባይት) 0x04); ክር። እንቅልፍ (500);

// 6 ባይት መረጃዎችን ያንብቡ

// xGyro lsb ፣ xGyro msb ፣ yGyro lsb ፣ yGyro msb ፣ zGyro lsb ፣ zGyro msb byte ውሂብ = አዲስ ባይት [6]; የመሣሪያ ንባብ (0x02 ፣ ውሂብ ፣ 0 ፣ 6);

የሚከተለውን በመጠቀም ከአነፍናፊው የተቀበለው መረጃ ወደ ተገቢው ቅርጸት ይለወጣል

int xGyro = ((ውሂብ [1] & 0xFF) * 256 + (ውሂብ [0] & 0xFF)); ከሆነ (xGyro> 32767) {xGyro -= 65536; } int yGyro = ((ውሂብ [3] & 0xFF) * 256 + (ውሂብ [2] & 0xFF)); ከሆነ (yGyro> 32767) {yGyro -= 65536; } int zGyro = ((ውሂብ [5] & 0xFF) * 256 + (ውሂብ [4] & 0xFF)); ከሆነ (zGyro> 32767) {zGyro -= 65536; }

ውጤቱ በሚከተለው ቅርጸት የ System.out.println () ተግባርን በመጠቀም ታትሟል።

System.out.println ("X-Axis of Rotation: %d %n", xGyro); System.out.println ("Y-axis of rotation: %d %n", yGyro); System.out.println ("የማዞሪያ ዘ-ዘንግ: %d %n", zGyro);

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

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

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

BMG160 እንደ ተንቀሳቃሽ ስልኮች ፣ የሰው ማሽን በይነገጽ መሣሪያዎች ባሉ መሣሪያዎች ውስጥ የተለያዩ የመተግበሪያዎች ብዛት አለው። ይህ አነፍናፊ ሞጁል እንደ የምስል ማረጋጊያ (DSC እና ካሜራ-ስልክ) ፣ የጨዋታ እና የጠቋሚ መሣሪያዎች ላሉ የሸማች መተግበሪያዎች መስፈርቶችን ለማሟላት የተነደፈ ነው። እንዲሁም የእጅ ምልክት እውቅና በሚፈልጉ እና በቤት ውስጥ አሰሳ ውስጥ ጥቅም ላይ በሚውሉት ስርዓቶች ውስጥ ይሠራል።

የሚመከር: