![Бөлүкчө менен 3-октук Гироскоп сенсорунун BMG160 интерфейси: 5 кадам Бөлүкчө менен 3-октук Гироскоп сенсорунун BMG160 интерфейси: 5 кадам](https://i.howwhatproduce.com/images/002/image-3179-31-j.webp)
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51
![Image Image](https://i.howwhatproduce.com/images/002/image-3179-33-j.webp)
![](https://i.ytimg.com/vi/5ulaaU7w3qg/hqdefault.jpg)
Бүгүнкү дүйнөдө, жаштардын жана балдардын жарымынан көбү оюндарды жакшы көрүшөт жана оюндун техникалык аспектилерине кызыккандар, бул чөйрөдө кыймыл сезүүнүн маанилүүлүгүн билишет. Бизди дагы ошол эле нерсе таң калтырды жана тактайга алып келүү үчүн, биз кандайдыр бир нерсенин бурчтук ылдамдыгын өлчөй турган гироскоп сенсорунун үстүндө иштөөнү ойлодук. Ошентип, биз тапшырманы чечүү үчүн кабыл алган сенсор BMG160. BMG160-бул 16-биттик, санариптик, үч фазалуу, гироскоптук сенсор, ал бөлмө перпендикулярынын үч өлчөмүндө бурчтук ылдамдыгын өлчөй алат.
Бул окуу куралында биз BMG160тын Particle Photon менен иштешин көрсөтөбүз.
Бул үчүн сизге керектүү болгон жабдыктар төмөнкүлөр:
1. BMG160
2. Бөлүкчө фотону
3. I2C кабели
4. I2C Shield for Particle Photon
1 -кадам: BMG160 Обзор:
![Сизге эмне керек.. !! Сизге эмне керек.. !!](https://i.howwhatproduce.com/images/002/image-3179-34-j.webp)
Биринчиден, биз сизди BMG160 сенсор модулунун негизги функциялары жана ал иштеген байланыш протоколу менен тааныштыргыбыз келет.
BMG160 негизинен бурчтук ылдамдыгын өлчөй турган 16-бит, санарип, үч фазалуу, гироскоп сенсору. Бул бөлмө перпендикулярынын үч өлчөмүндө бурчтук ылдамдыктарды эсептей алат, x-, y- жана z-огу, жана тиешелүү чыгуу сигналдарын камсыздайт. Бул I2C байланыш протоколун колдонуп, малина пи тактасы менен байланыша алат. Бул модуль керектөөчүлөрдүн өтүнмөлөрүнө, ошондой эле өндүрүштүк максаттарга жооп берүү үчүн иштелип чыккан.
Сенсор иштеген байланыш протоколу I2C. I2C интегралдык схеманы билдирет. Бул байланыш протоколу, анда байланыш SDA (сериялык маалыматтар) жана SCL (сериялык саат) линиялары аркылуу ишке ашат. Бул бир эле учурда бир нече түзмөктү туташтырууга мүмкүндүк берет. Бул эң жөнөкөй жана эффективдүү байланыш протоколунун бири.
2 -кадам: Сизге эмне керек..
![Сизге эмне керек.. !! Сизге эмне керек.. !!](https://i.howwhatproduce.com/images/002/image-3179-35-j.webp)
![Сизге эмне керек.. !! Сизге эмне керек.. !!](https://i.howwhatproduce.com/images/002/image-3179-36-j.webp)
![Сизге эмне керек.. !! Сизге эмне керек.. !!](https://i.howwhatproduce.com/images/002/image-3179-37-j.webp)
Максатыбызга жетүү үчүн бизге керектүү материалдар төмөнкү аппараттык компоненттерди камтыйт:
1. BMG160
2. Бөлүкчөлөрдүн фотону
3. I2C кабели
4. I2C Shield for Particle Photon
3 -кадам: Аппараттык туташуу:
![Аппараттык туташуу Аппараттык туташуу](https://i.howwhatproduce.com/images/002/image-3179-38-j.webp)
![Аппараттык туташуу Аппараттык туташуу](https://i.howwhatproduce.com/images/002/image-3179-39-j.webp)
Аппараттык туташуу бөлүмү негизинен сенсор менен бөлүкчөнүн ортосунда талап кылынган зым байланыштарын түшүндүрөт. Туура туташууларды камсыздоо каалаган өндүрүш үчүн кандайдыр бир системада иштеп жатканда негизги зарылчылык болуп саналат. Ошентип, керектүү байланыштар төмөнкүлөр:
BMG160 I2C үстүндө иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.
Кутудан тышкары, такта I2C интерфейси үчүн конфигурацияланган, андыктан эгер сиз агностиксиз болсоңуз, анда бул байланышты колдонууну сунуштайбыз.
Сизге болгону төрт зым керек! Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.
Бул байланыштар жогорудагы сүрөттөрдө көрсөтүлгөн.
4-кадам: 3-октук гироскоптун өлчөө бөлүкчөлөрүнүн коду:
![3-октук гироскоптун өлчөө бөлүкчөлөрүнүн коду 3-октук гироскоптун өлчөө бөлүкчөлөрүнүн коду](https://i.howwhatproduce.com/images/002/image-3179-40-j.webp)
![3-октук гироскоптун өлчөө бөлүкчөлөрүнүн коду 3-октук гироскоптун өлчөө бөлүкчөлөрүнүн коду](https://i.howwhatproduce.com/images/002/image-3179-41-j.webp)
Эми бөлүкчө коду менен баштайлы.
Arduino менен сенсор модулун колдонуп жатканда, биз application.h жана spark_wiring_i2c.h китепканасын камтыйт. "application.h" жана spark_wiring_i2c.h китепканасы сенсор менен бөлүкчөнүн ортосундагы i2c байланышын жеңилдетүүчү функцияларды камтыйт.
Колдонуучунун ыңгайлуулугу үчүн бүт бөлүкчө коду төмөндө келтирилген:
#кошуу
#кошуу
// BMG160 I2C дареги 0x68 (104)
#define Addr 0x68
int xGyro = 0, yGyro = 0, zGyro = 0;
жараксыз орнотуу ()
{
// Өзгөрмөнү коюу
Particle.variable ("i2cdevice", "BMG160");
Particle.variable ("xGyro", xGyro);
Particle.variable ("yGyro", yGyro);
Particle.variable ("zGyro", zGyro);
// I2C байланышын MASTER катары баштаңыз
Wire.begin ();
// Сериялык байланышты баштоо
Serial.begin (9600);
// I2C берүүнү баштоо
Wire.beginTransmission (Addr);
// Range register тандаңыз
Wire.write (0x0F);
// Толук масштабда 2000 dps конфигурациялоо
Wire.write (0x80);
// I2C берүүнү токтотуу
Wire.endTransmission ();
// I2C берүүнү баштоо
Wire.beginTransmission (Addr);
// Bandwidth регистрин тандаңыз
Wire.write (0x10);
// Орнотуу жөндөмдүүлүгү = 200 Гц
Wire.write (0x04);
// I2C берүүнү токтотуу
Wire.endTransmission ();
кечигүү (300);
}
боштук цикл ()
{
кол коюлбаган int маалыматтары [6];
// I2C берүүнү баштоо
Wire.beginTransmission (Addr);
// Маалымат реестрин тандоо
Wire.write (0x02);
// I2C берүүнү токтотуу
Wire.endTransmission ();
// 6 байт маалымат сураңыз
Wire.requestFrom (Addr, 6);
// 6 байт маалыматтарды окуңуз
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
эгер (Wire.available () == 6)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
маалымат [3] = Wire.read ();
data [4] = Wire.read ();
маалымат [5] = Wire.read ();
}
кечигүү (300);
// Маалыматты конвертациялоо
xGyro = ((маалымат [1] * 256) + маалымат [0]);
эгер (xGyro> 32767)
{
xGyro -= 65536;
}
yGyro = ((маалыматтар [3] * 256) + маалыматтар [2]);
эгер (yGyro> 32767)
{
yGyro -= 65536;
}
zGyro = ((маалымат [5] * 256) + маалымат [4]);
эгер (zGyro> 32767)
{
zGyro -= 65536;
}
// Маалыматтарды тактасына чыгаруу
Particle.publish ("Rotation of X-Axis:", String (xGyro));
Particle.publish ("Y-Axis Rotation:", String (yGyro));
Particle.publish ("Z-айлануу огу:", String (zGyro));
кечигүү (1000);
}
5 -кадам: Тиркемелер:
![Колдонмолор Колдонмолор](https://i.howwhatproduce.com/images/002/image-3179-42-j.webp)
BMG160 уюлдук телефондор, адамдын машина интерфейси сыяктуу түзмөктөрдө ар түрдүү тиркемелерге ээ. Бул сенсор модулу сүрөттү турукташтыруу (DSC жана камера-телефон), оюн жана көрсөтүүчү түзмөктөр сыяктуу керектөөчүлөрдүн талаптарына жооп берүү үчүн иштелип чыккан. Бул жаңсоону таанууну талап кылган тутумдарда жана ички багыттоодо колдонулган системаларда колдонулат.
Сунушталууда:
Arduino менен LM35 температура сенсорунун интерфейси: 4 кадам
![Arduino менен LM35 температура сенсорунун интерфейси: 4 кадам Arduino менен LM35 температура сенсорунун интерфейси: 4 кадам](https://i.howwhatproduce.com/images/001/image-677-j.webp)
Arduino менен LM35 температура сенсорунун интерфейси: Термометрлер температураны өлчөө үчүн узак убакыт бою колдонулган пайдалуу аппарат. Бул долбоордо биз учурдагы айлана -чөйрөнүн температурасын жана температурасынын өзгөрүшүн ЖКда көрсөтүү үчүн Arduino негизделген санарип термометрин жасадык. Депл болушу мүмкүн
Arduino жана ESP8266 менен DS18B20 температура сенсорунун интерфейси: 8 кадам
![Arduino жана ESP8266 менен DS18B20 температура сенсорунун интерфейси: 8 кадам Arduino жана ESP8266 менен DS18B20 температура сенсорунун интерфейси: 8 кадам](https://i.howwhatproduce.com/images/002/image-5131-11-j.webp)
DS18B20 Температура Сенсору Arduino жана ESP8266 менен: Эй, эмне болду, балдар! Akarsh бул жерде CETech.Todayден биз DS18B20 Температура Сенсору деп аталган арсеналга жаңы сенсорду кошкубуз келип жатат. Бул DHT11ге окшош температура сенсору, бирок башка колдонмолор топтому бар. Биз аны салыштырып көрөбүз
Interfacing Sensirion, SPS-30, I2C режимин колдонуу менен Arduino Duemilanove менен бөлүкчө зат сенсору: 5 кадам
![Interfacing Sensirion, SPS-30, I2C режимин колдонуу менен Arduino Duemilanove менен бөлүкчө зат сенсору: 5 кадам Interfacing Sensirion, SPS-30, I2C режимин колдонуу менен Arduino Duemilanove менен бөлүкчө зат сенсору: 5 кадам](https://i.howwhatproduce.com/images/007/image-19575-j.webp)
Interfacing Sensirion, SPS-30, Arduino Duemilanove менен Particulate Matter Sensor I2C режимин колдонуу: Мен SPS30 сенсорлорунун интерфейсин карап жатканда, мен булактардын көбү Raspberry Pi үчүн экенин түшүндүм, бирок Arduino үчүн анча көп эмес. Мен сенсордун Arduino менен иштешине бир аз убакыт бөлөм жана тажрыйбамды бул жерге жайгаштырууну чечтим
MPU6050-акселерометр+гироскоп сенсорунун негиздери: 3 кадам
![MPU6050-акселерометр+гироскоп сенсорунун негиздери: 3 кадам MPU6050-акселерометр+гироскоп сенсорунун негиздери: 3 кадам](https://i.howwhatproduce.com/images/002/image-3936-42-j.webp)
MPU6050-Акселерометр+Гироскоп Сенсорунун Негиздери: MPU6050-абдан пайдалуу сенсор.Mpu 6050-бул IMU: Инерциялык өлчөө бирдиги (IMU)-бул дененин белгилүү бир күчүн, бурчтук ылдамдыгын жана кээде ориентациясын билдирүүчү электрондук аппарат. дененин комбинациясын колдонуп
IoT мышык багуучу Alexa, SmartThings, IFTTT, Google Sheets менен интеграцияланган бөлүкчө фотондорун колдонот: 7 кадам (сүрөттөр менен)
![IoT мышык багуучу Alexa, SmartThings, IFTTT, Google Sheets менен интеграцияланган бөлүкчө фотондорун колдонот: 7 кадам (сүрөттөр менен) IoT мышык багуучу Alexa, SmartThings, IFTTT, Google Sheets менен интеграцияланган бөлүкчө фотондорун колдонот: 7 кадам (сүрөттөр менен)](https://i.howwhatproduce.com/images/002/image-5027-54-j.webp)
IoT мышык багуучу Alexa, SmartThings, IFTTT, Google Sheets менен интеграцияланган бөлүкчөлөрдүн фотонун колдонот: Мышыктарды автоматтык түрдө азыктандыруунун зарылдыгы түшүнүктүү. Мышыктар (биздин мышыктын аты Белла) ачка болгондо жийиркеничтүү болушу мүмкүн жана эгер мышыгың меникиндей болсо, идишти кургак сайын жеп коёт. Мага көзөмөлдөнгөн тамак -ашты автоматтык түрдө берүүнүн жолу керек болчу