Съдържание:

Проследяване на движение с помощта на MPU-6000 и Arduino Nano: 4 стъпки
Проследяване на движение с помощта на MPU-6000 и Arduino Nano: 4 стъпки

Видео: Проследяване на движение с помощта на MPU-6000 и Arduino Nano: 4 стъпки

Видео: Проследяване на движение с помощта на MPU-6000 и Arduino Nano: 4 стъпки
Видео: ASECAM АНТИВАНДАЛЬНАЯ КАМЕРА 5-ЗУМ С ОПРЕДЕЛЕНИЕМ И СЛЕЖЕНИЕМ ЗА ЛЮДЬМИ 2024, Юли
Anonim
Image
Image

MPU-6000 е 6-осен сензор за проследяване на движение, който има 3-осен акселерометър и 3-осен жироскоп, вграден в него. Този сензор е в състояние ефективно да проследява точното положение и местоположението на обект в триизмерната равнина. Може да се използва в системи, които изискват анализ на позицията с най -висока точност.

В този урок е илюстрирано взаимодействието на сензорния модул MPU-6000 с arduino nano. За да прочетете стойностите на ускорението и ъгъла на въртене, използвахме arduino nano с I2c адаптер, който прави връзката към сензорния модул лесна и по -надеждна.

Стъпка 1: Изисква се хардуер:

Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер

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

1. MPU-6000

2. Arduino Nano

3. I2C кабел

4. I2C щит за arduino nano

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

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

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

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

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

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

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

Стъпка 3: Код за проследяване на движение:

Код за проследяване на движение
Код за проследяване на движение

Нека започнем с кода arduino сега.

Докато използваме сензорния модул с arduino, ние включваме библиотеката Wire.h. Библиотеката "Wire" съдържа функциите, които улесняват i2c комуникацията между сензора и платката arduino.

Целият код на arduino е даден по -долу за удобство на потребителя:

#включва

// MPU-6000 I2C адрес е 0x68 (104)

#define Addr 0x68

void setup ()

{

// Инициализира I2C комуникацията като Master

Wire.begin ();

// Инициализира серийна комуникация, зададена скорост на предаване = 9600

Serial.begin (9600);

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

Wire.beginTransmission (Addr);

// Изберете регистър за конфигурация на жироскоп

Wire.write (0x1B);

// Пълен мащаб = 2000 dps

Wire.write (0x18);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// Изберете регистър за конфигурация на акселерометъра

Wire.write (0x1C);

// Пълен мащаб = +/- 16g

Wire.write (0x18);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

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

Wire.write (0x6B);

// PLL с xGyro справка

Wire.write (0x01);

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

Wire.endTransmission ();

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

}

void loop ()

{

беззнакови int данни [6];

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

Wire.beginTransmission (Addr);

// Изберете регистър на данни

Wire.write (0x3B);

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

Wire.endTransmission ();

// Изискване на 6 байта данни

Wire.requestFrom (Addr, 6);

// Прочетете 6 байта данни

ако (Wire.available () == 6)

{

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

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

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

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

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

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

}

// Конвертиране на данните

int xAccl = данни [0] * 256 + данни [1];

int yAccl = данни [2] * 256 + данни [3];

int zAccl = данни [4] * 256 + данни [5];

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

Wire.beginTransmission (Addr);

// Изберете регистър на данни

Wire.write (0x43);

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

Wire.endTransmission ();

// Изискване на 6 байта данни

Wire.requestFrom (Addr, 6);

// Прочетете 6 байта данни

ако (Wire.available () == 6)

{

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

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

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

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

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

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

}

// Конвертиране на данните

int xGyro = данни [0] * 256 + данни [1];

int yGyro = данни [2] * 256 + данни [3];

int zGyro = данни [4] * 256 + данни [5];

// Извеждане на данни към сериен монитор

Serial.print ("Ускорение по ос X:");

Serial.println (xAccl);

Serial.print ("Ускорение по оста Y:");

Serial.println (yAccl);

Serial.print ("Ускорение по Z-ос:");

Serial.println (zAccl);

Serial.print ("X-ос на въртене:");

Serial.println (xGyro);

Serial.print ("Y-ос на въртене:");

Serial.println (yGyro);

Serial.print ("Z-ос на въртене:");

Serial.println (zGyro);

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

}

В библиотеката с проводници Wire.write () и Wire.read () се използват за писане на командите и четене на изхода на сензора.

Serial.print () и Serial.println () се използват за показване на изхода на сензора на серийния монитор на Arduino IDE.

Изходът на сензора е показан на горната снимка.

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

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

MPU-6000 е сензор за проследяване на движение, който намира своето приложение в интерфейса за движение на смартфони и таблети. В смартфоните тези сензори могат да се използват в приложения като команди за жестове за приложения и управление на телефона, подобрени игри, разширена реалност, панорамно заснемане и гледане на снимки и навигация на пешеходци и превозни средства. Технологията MotionTracking може да преобразува телефони и таблети в мощни 3D интелигентни устройства, които могат да се използват в приложения, вариращи от мониторинг на здравето и годността до услуги, базирани на местоположението.

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