Съдържание:

Свързване на 3-осен сензор за жироскоп BMG160 с частици: 5 стъпки
Свързване на 3-осен сензор за жироскоп BMG160 с частици: 5 стъпки

Видео: Свързване на 3-осен сензор за жироскоп BMG160 с частици: 5 стъпки

Видео: Свързване на 3-осен сензор за жироскоп BMG160 с частици: 5 стъпки
Видео: Широкоъгълен Сгъваем Дрон с Видео в Реално Време #05881 | 4Sales.bg 2024, Ноември
Anonim
Image
Image

В днешния свят повече от половината младежи и деца обичат игрите и всички, които я обичат, очаровани от техническите аспекти на игрите, знаят значението на усещането за движение в тази област. Ние също бяхме изумени от едно и също нещо и само за да го представим на дъските, мислехме да работим върху сензор за жироскоп, който може да измери ъгловата скорост на всеки обект. И така, сензорът, който взехме, за да се справим със задачата, е BMG160. BMG160 е 16-битов, цифров, триосен, жироскопен сензор, който може да измерва ъгловата скорост в три перпендикулярни размери на помещението.

В този урок ще демонстрираме работата на BMG160 с частичен фотон.

Хардуерът, който ще ви е необходим за тази цел, е следният:

1. BMG160

2. Фотон на частици

3. I2C кабел

4. I2C щит за частичен фотон

Стъпка 1: Преглед на BMG160:

От какво имаш нужда..!!
От какво имаш нужда..!!

На първо място бихме искали да ви запознаем с основните характеристики на сензорния модул BMG160 и комуникационния протокол, по който работи.

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

Комуникационният протокол, по който работи сензорът, е I2C. I2C означава междуинтегрална схема. Това е комуникационен протокол, в който комуникацията се осъществява чрез линии SDA (серийни данни) и SCL (сериен часовник). Тя позволява свързване на няколко устройства едновременно. Това е един от най -простите и ефективни комуникационни протоколи.

Стъпка 2: Какво ви трябва..

От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!
От какво имаш нужда..!!

Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:

1. BMG160

2. Фотон от частици

3. I2C кабел

4. I2C щит за частичен фотон

Стъпка 3: Свързване на хардуера:

Хардуерно свързване
Хардуерно свързване
Хардуерно свързване
Хардуерно свързване

Разделът за хардуерно свързване основно обяснява необходимите кабелни връзки между сензора и частицата. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:

BMG160 ще работи над I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.

Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици.

Всичко, от което се нуждаете, са четири проводника! Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.

Тези връзки са показани на снимките по -горе.

Стъпка 4: Код на частици за измерване на триосен жироскоп:

Код на частиците за измерване на триосен жироскоп
Код на частиците за измерване на триосен жироскоп
Код на частиците за измерване на триосен жироскоп
Код на частиците за измерване на триосен жироскоп

Нека започнем с кода на частиците сега.

Докато използваме сензорния модул с 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;

void setup ()

{

// Задаване на променлива

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);

// Изберете регистър на обхвата

Wire.write (0x0F);

// Конфигуриране на пълен мащаб 2000 dps

Wire.write (0x80);

// Спиране на I2C предаването

Wire.endTransmission ();

// Стартиране на I2C предаване

Wire.beginTransmission (Addr);

// Изберете регистър на честотната лента

Wire.write (0x10);

// Задайте честотна лента = 200 Hz

Wire.write (0x04);

// Спиране на I2C предаването

Wire.endTransmission ();

забавяне (300);

}

void loop ()

{

беззнакови 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)

{

данни [0] = Wire.read ();

данни [1] = Wire.read ();

данни [2] = Wire.read ();

данни [3] = Wire.read ();

данни [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 ("X-ос на въртене:", String (xGyro));

Particle.publish ("Y-ос на въртене:", String (yGyro));

Particle.publish ("Z-ос на въртене:", String (zGyro));

забавяне (1000);

}

Стъпка 5: Приложения:

Приложения
Приложения

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

Препоръчано: