
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51


Бүгүнкү дүйнөдө, жаштардын жана балдардын жарымынан көбү оюндарды жакшы көрүшөт жана оюндун техникалык аспектилерине кызыккандар, бул чөйрөдө кыймыл сезүүнүн маанилүүлүгүн билишет. Бизди дагы ошол эле нерсе таң калтырды жана тактайга алып келүү үчүн, биз кандайдыр бир нерсенин бурчтук ылдамдыгын өлчөй турган гироскоп сенсорунун үстүндө иштөөнү ойлодук. Ошентип, биз тапшырманы чечүү үчүн кабыл алган сенсор BMG160. BMG160-бул 16-биттик, санариптик, үч фазалуу, гироскоптук сенсор, ал бөлмө перпендикулярынын үч өлчөмүндө бурчтук ылдамдыгын өлчөй алат.
Бул үйрөткүчтө, биз программалоо тили катары Java колдонуп, Raspberry pi менен BMG160тун иштешин көрсөтөбүз.
Бул үчүн сизге керектүү болгон жабдыктар төмөнкүлөр:
1. BMG160
2. Raspberry Pi
3. I2C кабели
4. Raspberry Pi үчүн I2C Shield
5. Ethernet кабели
1 -кадам: BMG160 Обзор:

Биринчиден, биз сизди BMG160 сенсор модулунун негизги функциялары жана ал иштеген байланыш протоколу менен тааныштыргыбыз келет.
BMG160 негизинен бурчтук ылдамдыгын өлчөй турган 16-бит, санарип, үч фазалуу, гироскоп сенсору. Бул бөлмө перпендикулярынын үч өлчөмүндө бурчтук ылдамдыктарды эсептей алат, x-, y- жана z-огу, жана тиешелүү чыгуу сигналдарын камсыздайт. Бул I2C байланыш протоколун колдонуп, малина пи тактасы менен байланыша алат. Бул модуль керектөөчүлөрдүн өтүнмөлөрүнө, ошондой эле өндүрүштүк максаттарга жооп берүү үчүн иштелип чыккан.
Сенсор иштеген байланыш протоколу I2C. I2C интегралдык схеманы билдирет. Бул байланыш протоколу, анда байланыш SDA (сериялык маалыматтар) жана SCL (сериялык саат) линиялары аркылуу ишке ашат. Бул бир эле учурда бир нече түзмөктү туташтырууга мүмкүндүк берет. Бул эң жөнөкөй жана эффективдүү байланыш протоколунун бири.
2 -кадам: Сизге эмне керек..



Максатыбызга жетүү үчүн бизге керектүү материалдар төмөнкү аппараттык компоненттерди камтыйт:
1. BMG160
2. Raspberry Pi
3. I2C кабели
4. Raspberry Pi үчүн I2C Shield
5. Ethernet кабели
3 -кадам: Аппараттык туташуу:


Аппараттык туташуу бөлүмү негизинен сенсор менен малина пи ортосунда талап кылынган зым байланыштарын түшүндүрөт. Туура туташууларды камсыздоо каалаган өндүрүш үчүн кандайдыр бир системада иштеп жатканда негизги зарылчылык болуп саналат. Ошентип, керектүү байланыштар төмөнкүлөр:
BMG160 I2C үстүндө иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.
Кутудан тышкары, такта I2C интерфейси үчүн конфигурацияланган, андыктан эгер сиз агностиксиз болсоңуз, анда бул байланышты колдонууну сунуштайбыз. Сизге болгону төрт зым керек!
Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.
Бул байланыштар жогорудагы сүрөттөрдө көрсөтүлгөн.
4-кадам: Java кодун колдонуу менен 3-октук гироскопту өлчөө:


Малина пи колдонуунун артыкчылыгы, башкача айтканда, сенсорго интерфейс үчүн тактаны программалоону каалаган программалоо тилинин ийкемдүүлүгүн камсыздайт. Бул тактанын артыкчылыгын колдонуп, биз бул жерде анын Java программасын көрсөтөбүз. BMG160 үчүн Java кодун биздин github коомчулугунан жүктөп алса болот, бул Dcube Store Community.
Колдонуучулардын ыңгайлуулугу үчүн, биз бул жерде дагы кодду түшүндүрүп жатабыз: коддоонун биринчи кадамы катары java болгон учурда pi4j китепканасын жүктөп алуу керек, анткени бул китепкана коддо колдонулган функцияларды колдойт. Ошентип, китепкананы жүктөө үчүн төмөнкү шилтемеге кире аласыз:
pi4j.com/install.html
Бул сенсордун java кодун бул жерден көчүрүп алсаңыз болот:
com.pi4j.io.i2c. I2CBus импорттоо;
com.pi4j.io.i2c. I2CDevice импорттоо;
com.pi4j.io.i2c. I2CFactory импорттоо;
java.io. IOException импорттоо;
коомдук класс BMG160
{
public static void main (String args ) Exception ыргытат
{
// I2C шинасын түзүү
I2CBus автобус = I2CFactory.getInstance (I2CBus. BUS_1);
// I2C аппаратын алыңыз, BMG160 I2C дареги 0x68 (104)
I2CDevice түзмөгү = bus.getDevice (0x68);
// Регистр диапазонун тандоо
// Толук масштабдуу диапазонду конфигурациялоо, 2000 dps
device.write (0x0F, (байт) 0x80);
// Өткөрүү жөндөмүнүн регистрин тандаңыз
// Өткөрүү жөндөмдүүлүгү 200 Гц
device.write (0x10, (байт) 0x04);
Thread.sleep (500);
// 6 байт маалыматтарды окуңуз
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
байт маалымат = жаңы байт [6];
device.read (0x02, data, 0, 6);
// Маалыматты Convert
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 ("Айлануунун огу: %d %n", xGyro);
System.out.printf ("Y-айлануу огу: %d %n", yGyro);
System.out.printf ("Z-айлануу огу: %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 импорттоо;
Коддун бул бөлүгү сенсорго write () функциясын колдонуп, тиешелүү буйруктарды жазуу менен бурчтук ылдамдыкты өлчөйт, андан кийин маалыматтар read () функциясынын жардамы менен окулат.
// Регистр диапазонун тандоо // Толук масштабдуу диапазонду конфигурациялоо, 2000 dps device.write (0x0F, (байт) 0x80); // Тандоо жөндөмүнүн регистрин тандаңыз // Өткөрүү жөндөмү 200 Гц device.write (0x10, (байт) 0x04); Thread.sleep (500);
// 6 байт маалыматтарды окуңуз
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb байт маалыматтар = жаңы байт [6]; device.read (0x02, data, 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 ("Айлануунун огу: %d %n", xGyro); System.out.println ("Y-айлануу огу: %d %n", yGyro); System.out.println ("Z-айлануу огу: %d %n", zGyro);
Сенсордун чыгышы жогорудагы сүрөттө көрсөтүлгөн.
5 -кадам: Тиркемелер:

BMG160 уюлдук телефондор, адамдын машина интерфейси сыяктуу түзмөктөрдө ар түрдүү тиркемелерге ээ. Бул сенсор модулу сүрөттү турукташтыруу (DSC жана камера-телефон), оюн жана көрсөтүүчү түзмөктөр сыяктуу керектөөчүлөрдүн талаптарына жооп берүү үчүн иштелип чыккан. Бул жаңсоону таанууну талап кылган тутумдарда жана ички багыттоодо колдонулган системаларда колдонулат.
Сунушталууда:
Arduino менен LM35 температура сенсорунун интерфейси: 4 кадам

Arduino менен LM35 температура сенсорунун интерфейси: Термометрлер температураны өлчөө үчүн узак убакыт бою колдонулган пайдалуу аппарат. Бул долбоордо биз учурдагы айлана -чөйрөнүн температурасын жана температурасынын өзгөрүшүн ЖКда көрсөтүү үчүн Arduino негизделген санарип термометрин жасадык. Депл болушу мүмкүн
Arduino жана ESP8266 менен DS18B20 температура сенсорунун интерфейси: 8 кадам

DS18B20 Температура Сенсору Arduino жана ESP8266 менен: Эй, эмне болду, балдар! Akarsh бул жерде CETech.Todayден биз DS18B20 Температура Сенсору деп аталган арсеналга жаңы сенсорду кошкубуз келип жатат. Бул DHT11ге окшош температура сенсору, бирок башка колдонмолор топтому бар. Биз аны салыштырып көрөбүз
WIFI жана гироскоп менен алты тараптуу PCB LED Dice - PIKOCUBE: 7 кадам (сүрөттөр менен)

WIFI жана гироскоп менен алты тараптуу PCB LED Dice - PIKOCUBE: Саламатсызбы жаратуучулар, бул moekoe жаратуучусу! Бүгүн мен сизге алты ПХБнын жана 54 LEDдин негизинде чыныгы LED диодун кантип курууну көрсөткүм келет. Ички гироскопиялык сенсордун жанында кыймылды жана сөөктүн абалын аныктай турган кубдун жанында ESP8285-01F бар
Гироскоп Неопиксель шакеги менен көңүлдүү: 4 кадам (сүрөттөр менен)

Gyroscope Fun with Neopixel Ring: Бул үйрөткүчтө биз MPU6050 гироскопун, неопикселдик шакекти жана ардуинону ийкемдүүлүк бурчуна туура келген жарык берүүчү приборду куруу үчүн колдонобуз. Бул жөнөкөй жана кызыктуу долбоор жана ал бара жатат нан тактасына чогултулат
MPU6050-акселерометр+гироскоп сенсорунун негиздери: 3 кадам

MPU6050-Акселерометр+Гироскоп Сенсорунун Негиздери: MPU6050-абдан пайдалуу сенсор.Mpu 6050-бул IMU: Инерциялык өлчөө бирдиги (IMU)-бул дененин белгилүү бир күчүн, бурчтук ылдамдыгын жана кээде ориентациясын билдирүүчү электрондук аппарат. дененин комбинациясын колдонуп