Мазмұны:

MPU-6000 және Arduino Nano көмегімен қозғалысты бақылау: 4 қадам
MPU-6000 және Arduino Nano көмегімен қозғалысты бақылау: 4 қадам

Бейне: MPU-6000 және Arduino Nano көмегімен қозғалысты бақылау: 4 қадам

Бейне: MPU-6000 және Arduino Nano көмегімен қозғалысты бақылау: 4 қадам
Бейне: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, Қараша
Anonim
Image
Image

MPU-6000-6 осьтік қозғалысты бақылау сенсоры, оның ішінде 3 осьті акселерометр мен 3 осьті гироскоп бар. Бұл сенсор үш өлшемді жазықтықта объектінің нақты орналасуы мен орнын тиімді бақылауға қабілетті. Оны жоғары дәлдіктегі позициялық талдауды қажет ететін жүйелерде қолдануға болады.

Бұл оқулықта MPU-6000 сенсорлық модулінің arduino nano-мен байланысы суреттелген. Үдеу мен айналу бұрышының мәндерін оқу үшін I2c адаптері бар arduino нано қолдандық, бұл I2C адаптері сенсор модуліне қосылуды жеңіл әрі сенімді етеді.

1 -қадам: Қажетті жабдық:

Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық

Мақсатқа жету үшін бізге қажет материалдар келесі аппараттық компоненттерді қамтиды:

1. MPU-6000

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

3. I2C кабелі

4. Arduino наноға арналған I2C қалқаны

2 -қадам: Жабдықты қосу:

Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу

Аппаратты қосу бөлімі негізінен сенсор мен arduino нано арасындағы сымдық қосылыстарды түсіндіреді. Қажетті шығыс үшін кез келген жүйеде жұмыс істеу кезінде дұрыс қосылуды қамтамасыз ету - бұл негізгі қажеттілік. Сонымен, қажетті байланыстар келесідей:

MPU-6000 I2C режимінде жұмыс істейді. Датчиктің әр интерфейсін қалай қосуға болатынын көрсететін электр схемасының мысалы.

Қаптамадан тыс тақта I2C интерфейсі үшін конфигурацияланған, сондықтан егер сіз агностикалық болмасаңыз, осы қосылымды пайдалануды ұсынамыз.

Сізге тек төрт сым қажет! Vcc, Gnd, SCL және SDA түйреуіштеріне тек төрт қосылым қажет және олар I2C кабелінің көмегімен қосылған.

Бұл байланыстар жоғарыдағы суреттерде көрсетілген.

3 -қадам: Қозғалысты бақылау коды:

Қозғалысты бақылау коды
Қозғалысты бақылау коды

Енді arduino кодынан бастайық.

Сенсорлық модульді arduino көмегімен пайдалану кезінде біз Wire.h кітапханасын қосамыз. «Wire» кітапханасында сенсор мен arduino тақтасы арасындағы i2c байланысын жеңілдететін функциялар бар.

Пайдаланушыға ыңғайлы болу үшін барлық arduino коды төменде берілген:

#қосу

// MPU-6000 I2C мекенжайы-0x68 (104)

#анықтайтын Addr 0x68

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

{

// I2C байланысын Мастер ретінде іске қосыңыз

Wire.begin ();

// Сериялық байланысты орнатыңыз, жіберу жылдамдығы = 9600

Serial.begin (9600);

// I2C жіберуді бастау

Wire.beginTransmission (Addr);

// гироскоптың конфигурация регистрін таңдаңыз

Wire.write (0x1B);

// Толық масштаб диапазоны = 2000 д/ с

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)

{

деректер [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 («Айналудың осі:»);

Serial.println (xGyro);

Serial.print («Айналу осі:»);

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 интеллектуалды құрылғыларға айналдыра алады.

Ұсынылған: