
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 14:36


В днешния свят повече от половината младежи и деца обичат игрите и всички, които я обичат, очаровани от техническите аспекти на игрите, знаят значението на усещането за движение в тази област. Ние също бяхме изумени от едно и също нещо и само за да го представим на дъските, мислехме да работим върху сензор за жироскоп, който може да измери ъгловата скорост на всеки обект. И така, сензорът, който взехме, за да се справим със задачата, е BMG160. BMG160 е 16-битов, цифров, триосен, жироскопен сензор, който може да измерва ъгловата скорост в три перпендикулярни размери на помещението.
В този урок ще демонстрираме работата на BMG160 с Raspberry pi, използвайки Java като език за програмиране.
Хардуерът, който ще ви е необходим за тази цел, е следният:
1. BMG160
2. Малина Пи
3. I2C кабел
4. I2C щит за Raspberry Pi
5. Ethernet кабел
Стъпка 1: Преглед на BMG160:

На първо място бихме искали да ви запознаем с основните характеристики на сензорния модул BMG160 и комуникационния протокол, по който работи.
BMG160 е основно 16-битов, цифров, триосен, жироскопен сензор, който може да измерва ъгловите скорости. Той е в състояние да изчислява ъгловите скорости в три перпендикулярни размери на помещението, оста x, y и z и да осигурява съответните изходни сигнали. Той може да комуникира с малиновата платка pi, използвайки комуникационния протокол I2C. Този конкретен модул е проектиран да отговаря на изискванията за потребителски приложения, както и за промишлени цели.
Комуникационният протокол, по който работи сензорът, е I2C. I2C означава междуинтегрална схема. Това е комуникационен протокол, в който комуникацията се осъществява чрез линии SDA (серийни данни) и SCL (сериен часовник). Тя позволява свързване на няколко устройства едновременно. Това е един от най -простите и ефективни комуникационни протоколи.
Стъпка 2: Какво ви трябва..



Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:
1. BMG160
2. Малина Пи
3. I2C кабел
4. I2C щит за Raspberry Pi
5. Ethernet кабел
Стъпка 3: Свързване на хардуера:


Разделът за свързване на хардуер основно обяснява необходимите кабелни връзки между сензора и малиновото пи. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:
BMG160 ще работи над I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.
Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици. Всичко, от което се нуждаете, са четири проводника!
Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.
Тези връзки са показани на снимките по -горе.
Стъпка 4: Измерване на триосен жироскоп с помощта на Java код:


Предимството на използването на малинов pi е, че ви осигурява гъвкавостта на езика за програмиране, на който искате да програмирате платката, за да свържете интерфейса на сензора с нея. Използвайки това предимство на тази дъска, ние демонстрираме тук нейното програмиране в Java. Java кодът за BMG160 може да бъде изтеглен от нашата github общност, която е Dcube Store Community.
Както и за улеснение на потребителите, ние обясняваме кода и тук: Като първа стъпка от кодирането трябва да изтеглите библиотеката pi4j в случай на java, тъй като тази библиотека поддържа функциите, използвани в кода. Така че, за да изтеглите библиотеката, можете да посетите следната връзка:
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 Hz
device.write (0x10, (байт) 0x04);
Thread.sleep (500);
// Прочетете 6 байта данни
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
байт данни = нов байт [6];
device.read (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-ос на въртене: %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 Hz device.write (0x10, (байт) 0x04); Thread.sleep (500);
// Прочетете 6 байта данни
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb байт данни = нов байт [6]; device.read (0x02, данни, 0, 6);
Данните, получени от сензора, се преобразуват в подходящ формат, като се използва следното:
int xGyro = ((данни [1] & 0xFF) * 256 + (данни [0] & 0xFF)); ако (xGyro> 32767) {xGyro -= 65536; } int yGyro = ((данни [3] & 0xFF) * 256 + (данни [2] & 0xFF)); if (yGyro> 32767) {yGyro -= 65536; } int zGyro = ((данни [5] & 0xFF) * 256 + (данни [4] & 0xFF)); ако (zGyro> 32767) {zGyro -= 65536; }
Изходът се отпечатва с помощта на функцията System.out.println () в следния формат.
System.out.println ("X-ос на въртене: %d %n", xGyro); System.out.println ("Y-ос на въртене: %d %n", yGyro); System.out.println ("Z-ос на въртене: %d %n", zGyro);
Изходът на сензора е показан на горната снимка.
Стъпка 5: Приложения:

BMG160 има разнообразни приложения в устройства като мобилни телефони, устройства за интерфейс на човешка машина. Този сензорен модул е проектиран да отговаря на изискванията за потребителски приложения като стабилизация на изображението (DSC и телефон с камера), игри и посочващи устройства. Използва се и в системи, които изискват разпознаване на жестове, и в системите, използвани при навигация на закрито.
Препоръчано:
Stone Lcd + сензор за жироскоп за ускорение: 5 стъпки

Stone Lcd +ускорител сензор за жироскоп: Този документ ще ви научи как да използвате STM32 MCU +MPU6050 акселерометър жироскоп сензор +STONE STVC070WT дисплей за сериен порт за DEMO.STVC070WT е серийният дисплей на нашата компания, разработката му е проста, лесна за използване , можете да отидете в
Ръководство за свързване на PLSD: Свързване към телевизори на Apple чрез AirPlay [неофициално]: 10 стъпки
![Ръководство за свързване на PLSD: Свързване към телевизори на Apple чрез AirPlay [неофициално]: 10 стъпки Ръководство за свързване на PLSD: Свързване към телевизори на Apple чрез AirPlay [неофициално]: 10 стъпки](https://i.howwhatproduce.com/images/009/image-24281-j.webp)
Ръководство за свързване на PLSD: Свързване към Apple TV чрез AirPlay [Неофициално]: Следното ръководство е предоставено, за да илюстрира процеса на свързване към Apple TV към конферентна зала чрез AirPlay. Този неофициален ресурс е предоставен с любезното съдействие на администрацията, персонала и упълномощените гости на местния училищен район Perkins
Платформа с контролер на жироскоп за сензор за лабиринт: 3 стъпки

Платформа, управлявана от сензори с жироскоп от акселерометъра
Свързване на Arduino с ултразвуков сензор и безконтактен температурен сензор: 8 стъпки

Arduino взаимодействие с ултразвуков сензор и безконтактен температурен сензор: В днешно време производителите, разработчиците предпочитат Arduino за бързо развитие на прототипирането на проекти. Arduino е електронна платформа с отворен код, базирана на лесен за използване хардуер и софтуер. Arduino има много добра потребителска общност. В този проект
Правилно свързване на светодиоди от серия срещу паралелно свързване: 6 стъпки

Правилно свързване на светодиоди от серия срещу паралелна връзка: В тази инструкция говорим за светодиоди - светодиоди и как можем да ги свържем, ако имаме няколко блока. Това е един урок, който бих искал да знам от самото начало, защото когато започнах да се занимавам с електронни схеми, изградих няколко