Мазмуну:

MPU-6000 жана Бөлүк Фотонун Колдонуусун Көздөө: 4 Кадам
MPU-6000 жана Бөлүк Фотонун Колдонуусун Көздөө: 4 Кадам

Video: MPU-6000 жана Бөлүк Фотонун Колдонуусун Көздөө: 4 Кадам

Video: MPU-6000 жана Бөлүк Фотонун Колдонуусун Көздөө: 4 Кадам
Video: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, Ноябрь
Anonim
Image
Image

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

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

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

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

Биздин тапшырманы аткаруу үчүн керектүү материалдар төмөндө көрсөтүлгөн аппараттык компоненттерди камтыйт:

1. MPU-6000

2. Бөлүкчөлөрдүн фотону

3. I2C кабели

4. Бөлүкчө фотону үчүн I2C калканы

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

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

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

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

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

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

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

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

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

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

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

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

#камтыйт #камтыйт // MPU-6000 I2C дареги 0x68 (104) #аныктоо Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Particle.variable өзгөрмөсүн коюу ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Particle.variable ("xGyro", xGyro); Particle.variable ("yGyro", yGyro); Particle.variable ("zGyro", zGyro); // Master Wire.begin катары I2C байланышын баштоо (); // Сериялык байланышты баштоо, байдын ылдамдыгын коюу = 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) башкаруу башкаруу реестрин тандоо; // PLG xGyro шилтемеси менен Wire.write (0x01); // I2C берүүнү токтотуу Wire.endTransmission (); кечигүү (300); } void loop () {unsigned int data [6]; // I2C берүүнү баштоо Wire.beginTransmission (Addr); // Wire.write маалымат регистрин тандоо (0x3B); // I2C берүүнү токтотуу Wire.endTransmission (); // Wire.requestFrom маалыматынын 6 байтын сурануу (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 (); } кечигүү (800); // Маалыматтарды Convert xAccl = ((маалымат [1] * 256) + маалымат [0]); эгер (xAccl> 32767) {xAccl -= 65536; } yAccl = ((маалыматтар [3] * 256) + маалыматтар [2]); эгер (yAccl> 32767) {yAccl -= 65536; } zAccl = ((маалымат [5] * 256) + маалымат [4]); эгер (zAccl> 32767) {zAccl -= 65536; } кечигүү (800); // I2C берүүнү баштоо Wire.beginTransmission (Addr); // Wire.write маалымат регистрин тандоо (0x43); // I2C берүүнү токтотуу Wire.endTransmission (); // Wire.requestFrom маалыматынын 6 байтын сурануу (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 (); } // Маалыматтарды 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-Axis менен ылдамдануу:", String (xAccl)); кечигүү (1000); Particle.publish ("Y огунда ылдамдануу:", String (yAccl)); кечигүү (1000); Particle.publish ("Z-огунда ылдамдануу:", String (zAccl)); кечигүү (1000); Particle.publish ("Айлануунун X огу:", String (xGyro)); кечигүү (1000); Particle.publish ("Y-Axis Rotation:", String (yGyro)); кечигүү (1000); Particle.publish ("Z-айлануу огу:", String (zGyro)); кечигүү (1000); }

Particle.

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

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

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

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

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