Мазмұны:

BMG160 3 осьті гироскоп сенсорының Arduino Nano көмегімен интерфейсі: 5 қадам
BMG160 3 осьті гироскоп сенсорының Arduino Nano көмегімен интерфейсі: 5 қадам

Бейне: BMG160 3 осьті гироскоп сенсорының Arduino Nano көмегімен интерфейсі: 5 қадам

Бейне: BMG160 3 осьті гироскоп сенсорының Arduino Nano көмегімен интерфейсі: 5 қадам
Бейне: IMU (Accelerometer and Gyroscope Devices) Project 2024, Қараша
Anonim
Image
Image

Қазіргі әлемде жастар мен балалардың жартысынан көбі ойынға құмар, ал ойынның техникалық аспектілеріне қызығатындардың бәрі осы саладағы қозғалысты сезудің маңыздылығын біледі. Бізді бір нәрсе таң қалдырды және оны тақтаға шығару үшін біз кез келген заттың бұрыштық жиілігін өлшейтін гироскоп сенсорымен жұмыс жасауды ойладық. Мәселен, біз тапсырманы шешуге сенсор - BMG160. BMG160-бұрыштық жиілікті үш перпендикуляр бөлме өлшемінде өлшеуге болатын 16-разрядты, цифрлық, үшсиалды гироскоп сенсоры.

Бұл оқулықта біз BMG160 Arduino Nano -мен қалай жұмыс жасайтынын көрсеткіміз келеді.

Бұл үшін сізге қажет жабдықтар келесідей:

1. BMG160

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

3. I2C кабелі

4. Arduino Nano үшін I2C қалқаны

1 -қадам: BMG160 шолуы

Сізге не керек.. !!
Сізге не керек.. !!

Ең алдымен, біз сенсорлық модульдің негізгі мүмкіндіктерімен танысқымыз келеді, ол BMG160 және ол жұмыс істейтін байланыс хаттамасы.

BMG160-бұл негізінен 16 биттік, цифрлық, үштік гироскоп сенсоры, ол бұрыштық жиілікті өлшей алады. Ол бөлменің үш перпендикуляр өлшемінде, x-, y- және z осінде бұрыштық жылдамдықтарды есептеуге және сәйкес шығыс сигналдарын беруге қабілетті. Ол I2C байланыс протоколы арқылы таңқурай pi тақтасымен байланыса алады. Бұл нақты модуль тұтынушылық қосымшаларға қойылатын талаптарды қанағаттандыруға, сондай -ақ өндірістік мақсаттарға арналған.

Сенсор жұмыс істейтін байланыс протоколы I2C болып табылады. I2C интегралды схеманы білдіреді. Бұл байланыс хаттамасы, онда байланыс SDA (сериялық деректер) және SCL (сериялық сағат) желілері арқылы жүзеге асады. Бұл бірнеше құрылғыны бір уақытта қосуға мүмкіндік береді. Бұл қарапайым және тиімді байланыс протоколдарының бірі.

2 -қадам: Сізге не керек..

Сізге не керек.. !!
Сізге не керек.. !!
Сізге не керек.. !!
Сізге не керек.. !!
Сізге не керек.. !!
Сізге не керек.. !!

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

1. BMG160

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

3. I2C кабелі

4. Arduino Nano үшін I2C қалқаны

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

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

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

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

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

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

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

4-қадам: 3 осьті гироскопты өлшеу Arduino коды:

3 осьті гироскопты өлшеу Arduino коды
3 осьті гироскопты өлшеу Arduino коды
3 осьті гироскопты өлшеу Arduino коды
3 осьті гироскопты өлшеу Arduino коды

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

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

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

#қосу // BMG160 I2C мекенжайы - 0x68 (104)

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

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

{

// I2C байланысын MASTER ретінде баптаңыз

Wire.begin ();

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

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 Гц

Wire.write (0x04);

// I2C берілуін тоқтату

Wire.endTransmission ();

кешіктіру (300);

}

бос цикл ()

{

қол қойылмаған 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);

// Деректерді түрлендіру

int xGyro = ((деректер [1] * 256) + деректер [0]);

int yGyro = ((деректер [3] * 256) + деректер [2]);

int zGyro = ((деректер [5] * 256) + деректер [4]);

// Деректерді сериялық мониторға шығару

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

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

Serial.println (yGyro); Serial.print («Z-айналу осі:»);

Serial.println (zGyro);

кешіктіру (500);

}

5 -қадам: Өтініштер:

Қолданбалар
Қолданбалар

BMG160 ұялы телефондар, адамның машиналық интерфейсі сияқты құрылғыларда әр түрлі қосымшаларға ие. Бұл сенсорлық модуль суретті тұрақтандыру (DSC және камера-телефон), ойын және меңзегіш құрылғылар сияқты тұтынушылардың қосымшаларына қойылатын талаптарды қанағаттандыруға арналған. Ол сонымен қатар ыммен тануды қажет ететін жүйелерде және ішкі навигацияда қолданылатын жүйелерде қолданылады.

Ұсынылған: