Скица теста комбинованог сензора АРДУИНО ГИ87
Увод
Ако сте страствени произвођач или ентузијаста роботике, наишли сте на овај сићушни, али моћни модул. Ако сте страствени произвођач или ентузијаста роботике, наишли сте на овај сићушни, али моћни модул БМП085 барометар. ГИ-87 ИМУ модул је одличан начин да додате детекцију покрета вашим пројектима, као што је самобалансирајући робот или квадрокоптер.
Али пре него што почнете да експериментишете са ГИ-87 ИМУ модулом, морате знати како да га повежете са Ардуино плочом. Ту долази овај блог! У следећим параграфима ћемо покрити основе ГИ-87 ИМУ модула, како га поставити и како написати Ардуино код за читање података сензора. Такође ћемо дати неке савете и ресурсе за решавање уобичајених проблема.
Дакле, ако сте спремни да почнете, хајде да заронимо и научимо о повезивању ГИ-87 ИМУ модула са Ардуином!
Шта је ГИ-87 ИМУ МПУ6050
Модули инерцијалне мерне јединице (ИМУ) као што је ГИ-87 комбинују многе сензоре у један пакет, као што су акцелерометар/жироскоп МПУ6050, магнетометар ХМЦ5883Л и БМП085 сензор барометарског притиска. Дакле, ГИ-87 ИМУ МПУ6050 је све-у-једном 9-осни модул за праћење покрета који комбинује 3-осни жироскоп, 3-осни акцелерометар, 3-осни магнетометар и дигитални процесор покрета. Много се користи у роботским пројектима, као што су квадрокоптери и друге беспилотне летелице (УАВ), јер може прецизно да мери и прати оријентацију и кретање. Такође се користи у другим апликацијама, као што су навигација, игре и виртуелна стварност.
Хардверске компоненте
Биће вам потребан следећи хардвер за повезивање ГИ-87 ИМУ МПУ6050 ХМЦ5883Л БМП085 модула са Ардуином.
Компоненте | Валуе | Кол |
Ардуино УНО | – | 1 |
МПУ6050 Сензорски модул | ГИ-КСНУМКС | 1 |
Бреадбоард | – | 1 |
Јумпер Вирес | – | 1 |
ГИ-87 са Ардуином
Сада када сте разумели ГИ-87, време је да се повежете са Ардуином. Да бисте то урадили, пратите Сада када сте разумели ГИ-87, време је да се повежете са Ардуином. Да бисте то урадили, пратите
Шематски
Извршите везе према дијаграму струјног кола датом у наставку
ГИ-87 ИМУ МПУ6050 ХМЦ5883Л БМП085 АрдуиноОжичење / Прикључци
Ардуино | МПУ6050 Сенсор |
5V | ВЦЦ |
ГНД | ГНД |
A4 | СДА |
A5 | СЦА |
Инсталирање Ардуино ИДЕ
Прво, потребно је да инсталирате Ардуино ИДЕ софтвер са његовог званичног webсајт Ардуино. Ево једноставног водича корак по корак о томе „Како инсталирати Ардуино ИДЕ“.
Инсталирање библиотека
Пре него што почнете да отпремате код, преузмите и распакујте следеће библиотеке на /Програм Fileс (к86)/Ардуино/Библиотеке (подразумевано) да бисте користили сензор са Ардуино плочом. Ево једноставног водича корак по корак о томе „Како додати библиотеке у Ардуино ИДЕ“.
- МПУ6050
- Адафруит_БМП085
- ХМЦ5883Л_Симпле
Код
Сада копирајте следећи код и отпремите га у Ардуино ИДЕ софтвер.
#инцлуде “И2Цдев.х” #инцлуде “МПУ6050.х” #инцлуде #инцлуде МПУ085 аццелгиро; Адафруит_БМП5883 бмп; ХМЦ6050Л_Симпле Цомпасс; инт085_т ак, аи, аз; инт5883_т гк, ги, гз; #дефине ЛЕД_ПИН 16 боол блинкСтате = фалсе; воид сетуп() { Сериал.бегин(16); Вире.бегин(); // иницијализација уређаја Сериал.принтлн(“Иницијализација И13Ц уређаја…”); // иницијализује бмп9600 иф (!бмп.бегин()) { Сериал.принтлн(“Нисам могао да пронађем важећи БМП2 сензор, провери (!бмп.бегин()) { Сериал.принтлн(“Нисам могао да пронађем важећи БМП085 сензор, проверите Сериал.принтлн(аццелгиро.тестЦоннецтион() ? „МПУ085 веза је успела” : „МПУ085 веза није успела”); аццелгиро.сетИ6050ЦБипассЕнаблед(труе); // подесите режим заобилажења за гатеваи на хмц6050Л // иницијализујте хмцасс.С2л 5883, 'Е'); Цомпасс.СетСampлингМоде(ЦОМПАСС_СИНГЛЕ);
Цомпасс.СетСцале(ЦОМПАСС_СЦАЛЕ_130);
Цомпасс.СетОриентатион(ЦОМПАСС_ХОРИЗОНТАЛ_Кс_НОРТХ); // конфигуришемо Ардуино ЛЕД за проверу активности пинМоде(ЛЕД_ПИН, ОУТПУТ); } воид лооп() {
Сериал.принт(“Температура = “); Сериал.принт(бмп.реадТемпературе());
Сериал.принтлн(” *Ц”); Сериал.принт(“Притисак = “);
Сериал.принт(бмп.реадПрессуре()); Сериал.принтлн(”Па”); // Израчунај надморску висину под претпоставком 'стандардног' барометријског // притисак од 1013.25 милибара = 101325 Пасцал Сериал.принт(“Алтитуде = “); Сериал.принт(бмп.реадАлтитуде()); Сериал.принтлн(“метри”); Сериал.принт(“Притисак на нивоу заптивке (израчунати) = “);
Сериал.принт(бмп.реадСеалевелПрессуре()); Сериал.принтлн(”Па”);
Сериал.принт(“Права висина = “); Сериал.принт(бмп.реадАлтитуде(101500));
Сериал.принтлн(”метри”); // читање сирових аццел/гиро мерења са уређаја аццелгиро.гетМотион6(&ак, &аи, &аз, &гк, &ги, &гз); // приказује вредности аццел/гиро к/и/з одвојене табулаторима Сериал.принт(“а/г:\т”); Сериал.принт(ак);
Сериал.принт(“\т”); Сериал.принт(аи); Сериал.принт(“\т”); Сериал.принт(аз);
Сериал.принт(“\т”); Сериал.принт(гк); Сериал.принт(“\т”); Сериал.принт(ги);
Сериал.принт(“\т”); Сериал.принтлн(гз); флоат хеадинг =
Цомпасс.ГетХеадингДегреес(); Сериал.принт(“Наслов: \т”); Сериал.принтлн( хеадинг ); // трепћући ЛЕД индикатор активности блинкСтате = !блинкСтате;
дигиталВрите(ЛЕД_ПИН, блинкСтате); кашњење(500); }
Хајде да га тестирамо
Када отпремите код, време је да тестирате коло! Код у Ардуино програму се повезује са сензорима користећи њихове библиотеке, што му омогућава да чита податке сензора и поставља различите конфигурације сензора. Затим штампа податке сензора преко серијског порта. ЛЕД се користи да покаже да коло ради нешто. То значи да ЛЕД трепери сваки пут када се покрене функција петље, што указује да код активно чита вредности сензора.
Воркинг Екпланатион
Код је главна ствар на којој се заснива рад кола. Дакле, хајде да разумемо код:.
- Прво, укључује неколико библиотека за повезивање са сензорима:
- „И2Цдев.х“ и „МПУ6050.х“ су библиотеке за МПУ6050 6-осни акцелерометар/жироскоп сензор
- „Адафруит_БМП085.х“ је библиотека за БМП085 сензор барометарског притиска.
- „ХМЦ5883Л_Симпле.х“ је библиотека за сензор магнетометра ХМЦ5883Л.
- Затим креира глобалне објекте за три сензора: МПУ6050 аццелгиро, Адафруит_БМП085 бмп и ХМЦ5883Л_Симпле Цомпасс.
- Затим дефинише неке варијабле за чување вредности сензора, као што су ак, аи и аз за акцелерометар МПУ6050 и за магнетометар ХМЦ5883Л. И дефинише ЛЕД_ПИН константу и променљиву блинкСтате.
- Функција сетуп() покреће серијску комуникацију и започиње И2Ц комуникацију. Затим иницијализује три сензора:
- БМП085 сензор се иницијализује позивањем методе бегин(). Ако ово врати нетачно, што указује да сензор није могао бити пронађен, програм улази у бесконачну петљу и штампа поруку о грешци преко серијског порта.
- Сензор МПУ6050 се иницијализује позивањем методе инитиализе() и провером да ли ради исправно. И поставио је И2Ц бајпас омогућен за МПУ6050.
- Сензор ХМЦ5883Л се иницијализује позивањем неких функција, као што су СетДецлинатион, СетСampлингМоде, СетСцале и СетОриентатион, за подешавање различитих конфигурација за сензор.
- У функцији лооп(), код чита податке са три сензора и штампа их преко серијског порта:
- Са сензора очитава температуру, притисак, надморску висину и притисак на нивоу мора.
- Чита необрађено убрзање и мерења жироскопа са сензора МПУ6050.
- Чита курс са сензора ХМЦ5883Л, што је угао између смера у коме сензор показује и смера у коме лежи магнетни север.
- Коначно, трепери ЛЕД да би означио активност и чека тренутак пре поновног очитавања сензора.
Документи / Ресурси
![]() |
Скица теста комбинованог сензора АРДУИНО ГИ87 [пдф] Упутство за употребу ГИ87 Комбинована скица теста сензора, ГИ87, скица комбинованог теста сензора, скица теста сензора, пробна скица |