Мазмуну:

MPU-6000 жана Arduino Nano колдонуу менен кыймылга көз салуу: 4 кадам
MPU-6000 жана Arduino Nano колдонуу менен кыймылга көз салуу: 4 кадам

Video: MPU-6000 жана Arduino Nano колдонуу менен кыймылга көз салуу: 4 кадам

Video: MPU-6000 жана Arduino Nano колдонуу менен кыймылга көз салуу: 4 кадам
Video: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, Июль
Anonim
Image
Image

MPU-6000-бул 3-октук акселерометр жана 3-октук гироскоп бар 6-октук кыймылга көз салуу сенсору. Бул сенсор 3 өлчөмдүү тегиздикте объекттин так ордун жана жайгашуусун эффективдүү көзөмөлдөөгө жөндөмдүү. Бул позицияны анализдөөнү талап кылган системаларда колдонулушу мүмкүн.

Бул окуу куралында MPU-6000 сенсор модулунун arduino нано менен интерфейси сүрөттөлгөн. Ылдамдануу жана айлануу бурчунун маанилерин окуу үчүн, I2c adapter. This I2C адаптери менен arduino наносун колдондук, сенсор модулуна туташууну жеңил жана ишенимдүү кылат.

1 -кадам: Аппараттык камсыздоо талап кылынат:

Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат

Максатыбызга жетүү үчүн бизге керектүү материалдар төмөнкү аппараттык компоненттерди камтыйт:

1. MPU-6000

2. Ардуино Нано

3. I2C кабели

4. Arduino нано үчүн I2C Shield

2 -кадам: Аппараттык туташуу:

Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу

Аппараттык туташуу бөлүмү негизинен сенсор менен arduino нанонун ортосунда талап кылынган зым байланыштарын түшүндүрөт. Туура туташууларды камсыздоо каалаган өндүрүш үчүн кандайдыр бир системада иштеп жатканда негизги зарылчылык болуп саналат. Ошентип, керектүү байланыштар төмөнкүлөр:

MPU-6000 I2C үстүндө иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.

Кутудан тышкары, такта I2C интерфейси үчүн конфигурацияланган, андыктан эгер сиз агностиксиз болсоңуз, анда бул байланышты колдонууну сунуштайбыз.

Сизге болгону төрт зым керек! Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.

Бул байланыштар жогорудагы сүрөттөрдө көрсөтүлгөн.

3 -кадам: Кыймылды көзөмөлдөө коду:

Кыймылды көзөмөлдөө коду
Кыймылды көзөмөлдөө коду

Эми arduino коду менен баштайлы.

Arduino менен сенсор модулун колдонуп жатканда, биз Wire.h китепканасын камтыйт. "Wire" китепканасы сенсор менен arduino тактасынын ортосундагы i2c байланышын жеңилдетүүчү функцияларды камтыйт.

Колдонуучунун ыңгайлуулугу үчүн ардуино коду төмөндө келтирилген:

#кошуу

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

#define Addr 0x68

жараксыз орнотуу ()

{

// I2C байланышын Мастер катары баштаңыз

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

// Толук масштабдуу диапазон = +/- 16г

Wire.write (0x18);

// I2C өткөрүүнү токтотуу

Wire.endTransmission ();

// I2C өткөрүүнү баштоо

Wire.beginTransmission (Addr);

// Кубатты башкаруу реестрин тандаңыз

Wire.write (0x6B);

// PLG xGyro шилтемеси менен

Wire.write (0x01);

// I2C өткөрүүнү токтотуу

Wire.endTransmission ();

кечигүү (300);

}

боштук цикл ()

{

кол коюлбаган int маалыматтары [6];

// I2C өткөрүүнү баштоо

Wire.beginTransmission (Addr);

// Маалымат реестрин тандоо

Wire.write (0x3B);

// I2C өткөрүүнү токтотуу

Wire.endTransmission ();

// 6 байт маалымат сураңыз

Wire.requestFrom (Addr, 6);

// 6 байт маалыматтарды окуңуз

эгер (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 ();

}

// Маалыматты конвертациялоо

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)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

маалымат [3] = Wire.read ();

data [4] = Wire.read ();

маалымат [5] = Wire.read ();

}

// Маалыматты конвертациялоо

int xGyro = маалымат [0] * 256 + маалымат [1];

int yGyro = маалыматтар [2] * 256 + маалыматтар [3];

int zGyro = маалымат [4] * 256 + маалымат [5];

// Маалыматтарды сериялык мониторго чыгаруу

Serial.print ("X-Axis менен ылдамдануу:");

Serial.println (xAccl);

Serial.print ("Y огунда ылдамдануу:");

Serial.println (yAccl);

Serial.print ("Z-огунда ылдамдануу:");

Serial.println (zAccl);

Serial.print ("X-Axis Rotation:");

Serial.println (xGyro);

Serial.print ("Y-Axis Rotation:");

Serial.println (yGyro);

Serial.print ("Z-Axis Rotation:");

Serial.println (zGyro);

кечигүү (500);

}

Зымдык китепканада Wire.write () жана Wire.read () командаларды жазуу жана сенсордун чыгышын окуу үчүн колдонулат.

Serial.print () жана Serial.println () Arduino IDE сериялык мониторунда сенсордун чыгарылышын көрсөтүү үчүн колдонулат.

Сенсордун чыгышы жогорудагы сүрөттө көрсөтүлгөн.

4 -кадам: Тиркемелер:

Колдонмолор
Колдонмолор

MPU-6000-бул смартфондордун жана планшеттердин кыймыл интерфейсинде колдонмосун тапкан кыймылга көз салуу сенсору. Смартфондордо бул сенсорлор тиркемелерди жана телефонду көзөмөлдөө, жакшыртылган оюн, кеңейтилген реалдуулук, панорамалык фото тартуу жана көрүү, жөө жана транспорт навигациясы сыяктуу тиркемелерде колдонулушу мүмкүн. MotionTracking технологиясы телефондорду жана планшеттерди ден-соолукка жана фитнеске мониторингден баштап жайгашкан кызматтарга чейинки колдонмолордо колдонула турган күчтүү 3D акылдуу түзмөктөргө айландыра алат.

Сунушталууда: