Комплетан водич за MEMS MPU6050 и LSM9DS1: Теорија, пракса и случајеви употребе

  • MEMS сензори MPU6050 и LSM9DS1 омогућавају мерење убрзања и ротације у три осе са високом прецизношћу и ниском ценом.
  • MPU6050 интегрише акцелерометар и жироскоп, док LSM9DS1 такође додаје магнетометар, пружајући апсолутну оријентацију.
  • Калибрацијом и филтрирањем, оба сензора се могу користити у апликацијама као што су инерцијална навигација, роботика или носиви уређаји.
ЛСМ9ДС1

Наслагано од 12 слика. Метод=Б (Р=44,С=4)

У данашњем свету технологије и електронике, MEMS (микро-електро-механички системи) сензори су постали кључни алат за све врсте пројеката, од роботике до кућне аутоматизације и носивих уређаја. Модули који комбинују акцелерометре и жироскопе, као што су МПУ6050 и ЛСМ9ДС1, су две најпопуларније опције захваљујући својој свестраности, ниској цени и лакоћи интеграције са микроконтролерима попут Ардуина и других платформи. Темељно разумевање њиховог рада, јединствених карактеристика, разлика, па чак и најбољег начина да се они искористе, неопходно је за пројектовање прецизних система који мерење кретања, оријентације и нагиба.

У овом чланку ћемо вас корак по корак провести кроз све што треба да знате о сензорима МПУ6050 y ЛСМ9ДС1: како раде, које апликације имају, како их интегрисати у ваш пројекат, калибрисати их, правилно интерпретирати њихова очитавања и максимално искористити њихове могућности, комбинујући информације прикупљене у најбољим туторијалима и техничким чланцима, под практичном и ажурираном визијом са блиским језиком, тако да постићи професионалне резултате у вашем развоју догађаја.

Шта је MEMS сензор и како функционише?

mpu6050 модул

Пре него што се упустимо у конкретне моделе MPU6050 и LSM9DS1, важно је да буде јасно о концепту МЕМС сензорОви уређаји, такође названи Микро електромеханички системи, интегришу микроскопске механичке компоненте и електронска кола у један чип, тако да могу да детектују физичке варијације - као што су убрзања, ротације или вибрације - и да их претворе у електричне сигнале које дигитални системи могу да интерпретирају.

У случају MEMS акцелерометара и жироскопа, њихов рад се заснива на принципима као што су:

  • Њутнов закон убрзања (a = F/m), користећи унутрашње структуре које делују као микроскопске масе и опруге.
  • Кориолисов ефекат се користи за детекцију угаоних кретања, користећи предност отклона који мале масе доживљавају приликом ротације унутар чипа.
  • Интерни АЦП конвертори за трансформацију физичких варијација у дигиталне вредности високе резолуције (обично 16 бита).

Ове могућности чине MEMS изузетно корисним у апликацијама које захтевају мерење оријентације, нагиба или кретања у три димензије, као што су навигациони системи, стабилизација камере, паметни сатови, дронови, роботи и још много тога.

Главне карактеристике МПУ6050

El МПУ6050 Вероватно је најшире коришћени MEMS сензор покрета међу произвођачима, инжењерима и хобистима који траже економично и поуздано решење за мерење убрзања и ротације у три осе.

Његове главне техничке спецификације укључују:

  • 3-осни акцелерометарСпособан за детекцију убрзања на X, Y и Z осама, са програмабилним опсегом од ±2g, ±4g, ±8g и ±16g.
  • 3 осни жироскопМери угаоне брзине на све три осе, са подесивом осетљивошћу на ±250, ±500, ±1000 и ±2000 степени у секунди.
  • Дигитални процесор покрета (DMP): Укључује интерни микропроцесор намењен за обављање сложених прорачуна Фузија покрета (фузија сензора), израчунавање података као што су кватерниони, Ојлерови углови и матрице ротације без потребе за учитавањем тих прорачуна на главни микроконтролер.
  • Дигитални излаз преко I2CКомуникација преко I2C магистрале са две могуће адресе (конфигурабилне преко пина AD0 на 0x68 или 0x69), омогућавајући рад са већином Arduino, ESP и сличних плоча.
  • 16-битни АЦП конверторНуди високу резолуцију у прикупљању података.
  • Интегрисани сензор температуре
  • Могућност проширења спољним магнетометромПреко помоћне I2C магистрале, MPU6050 може да очитава друге повезане сензоре као што је популарни HMC5883L (магнетометар), како би формирао комплетан 9-осни IMU.
  • Флексибилни радни напонМоже се напајати на 3,3 V или чак 5 V ако се користи матична плоча попут GY-521, која има уграђени регулатор.

Штавише, компактна величина модула (око 25 x 15 мм) и чињеница да долази спреман за интеграцију у плочу за плочу чине га идеалним и за тестирање и за финални развој.

Шта је LSM9DS1 и по чему се разликује?

Са своје стране, ЛСМ9ДС1 То је напреднија и модернија опција у оквиру MEMS IMU породице, иако је мање популарна од MPU6050 у почетним пројектима. Интегрише следеће на једном чипу:

  • Un 3-осни акцелерометар
  • Un 3-осни жироскоп
  • Un магнетометар такође троосни

То значи да је LSM9DS1 9 DoF (степени слободе) IMU, што вам омогућава да мерите убрзање, угаону брзину и Земљино магнетно поље у три димензије, пружајући потпуна и тачна очитавања апсолутни положај и оријентација у односу на Земљу.

Његове главне предности у односу на MPU6050 укључују:

  • Комбинује три сензора у један физички чип, штедећи простор и поједностављујући повезивање.
  • Можете комуницирати и путем I2C као SPI, што му даје већу свестраност за различите платформе.
  • Домет и осетљивост сваког сензора (акцелерометар, жироскоп, магнетометар) су флексибилније подесиви.
  • Има напредне опције дигиталног филтрирања и детекције догађаја.

LSM9DS1 се често бира за пројекте где је потребна апсолутна оријентација (нпр. компаси, навигациони системи или стабилизација лета) без потребе за додатним спољним сензорима.

Принципи рада MEMS акцелерометара и жироскопа

Да бисмо заиста разумели како ови MEMS модули раде, важно је разумети физичке концепте и како се они преводе у дигиталне податке:

Акцелерометар

Un MEMS акцелерометар мери убрзање објекта (промену брзине током времена) у односу на три осе простора. Интерно, заснива се на присуству микроскопска суспендована маса флексибилним сидрима или ситним опругама. Када сензор убрзава, ова маса се благо помера, а ова варијација се претвара у електрични сигнал помоћу променљивих или пиезоелектричних кондензатора.

  • Акцелерометар увек детектује барем једно убрзање: гравитација (9,81 м/с2), чак и ако сензор мирује.
    Ово се користи за израчунавање нагиба у односу на хоризонталну раван.
  • Интегрисањем убрзања у односу на време, може се добити брзина и, заузврат, пређена позиција, иако ове операције имају тенденцију да акумулирају грешке.

Жироскоп

El МЕМС жироскоп користити Кориолисов ефекат да детектује брзину којом се тело окреће око својих X, Y и Z оса. Када сензор доживи ротацију, унутрашње вибрирајуће масе трпе одступање пропорционално угаона брзина, и та промена се мери електронски.

  • Жироскоп мери угаона брзина: колико брзо се оријентација сензора мења на свакој оси.
  • Интегрисање угаоне брзине са временом даје угао ротације (угаони положај), иако ова операција генерише кумулативне грешке које се називају заношење.

Зашто комбиновати акцелерометар и жироскоп?

Сами по себи, и акцелерометри и жироскопи имају ограничења при одређивању оријентације објекта:

  • Акцелерометар: Прецизан за детекцију нагиба у односу на вертикалну осу (користећи гравитацију), али веома осетљив на нагле покрете, спољашња убрзања или вибрације.
  • Жироскоп: Идеалан је за мерење брзих промена оријентације, али пати од накупљања грешака ако се његов излаз интегрише током дужег временског периода.

Стога, већина апликација спаја податке са оба сензора, што значајно побољшава тачност и поузданост очитавања. угао, нагиб или положајДа би се то постигло, користе се филтери за дигиталну обраду као што су комплементарни филтер или Калманов филтер, који комбинују и вреднују предности сваког сензора.

Почетак рада са MPU6050: повезивање и библиотеке

Типичан дијаграм повезивања

Модул МПУ6050 Обично се монтира на плочу типа ГИ-КСНУМКС, што знатно олакшава интеграцију са микроконтролерима као што је Ардуино.

Основне везе за коришћење модула у I2C режиму су обично:

МПУ6050 Arduino Uno/Нано/Мини Ардуино Мега/ДУЕ Ардуино Леонардо
ВЦЦ 5V 5V 5V
ГНД ГНД ГНД ГНД
СЦЛ A5 21 3
СДА је A4 20 2

Модул има уграђене отпорнике за повећање отпорности, тако да их генерално није потребно додавати споља.

I2C адреса и AD0 пин

MPU6050 вам омогућава да конфигуришете његову I2C адресу на 0x68 (подразумевано, када је AD0 пин на GND или није повезан) или 0x69 (када је AD0 повезан на висок/5V). Ово олакшава коришћење више сензора на истој магистрали.

Препоручена библиотека: I2Cdevlib од Џефа Роуберга

За удобан рад са MPU6050 на Ардуину, заједница препоручује коришћење следећих библиотека:

  • I2CdevОмогућава I2C комуникацију са многим сензорима.
  • МПУ6050: Омогућава вам приступ свим функцијама сензора, очитавање калибрисаних вредности, померања и коришћење DMP-а.

Доступни су у: https://github.com/jrowberg/i2cdevlib

Када их преузмете, једноставно их распакујте и ставите у фасциклу библиотеке из Ардуино IDE-а.

Очитавање основних података: убрзање и угаона брзина

Када је MPU6050 повезан и конфигурисан, следећи корак је извршавање очитавања убрзања и угаоних брзина на три осе. Основни процес, користећи горе поменуту библиотеку, укључује:

  1. Иницијализујте сензор помоћу функције sensor.initialize().
  2. Проверите везу са сензор.тестКонекција().
  3. Очитајте RAW (необрађене) вредности са акцелерометра и жироскопа у променљиве попут ax, ay, az за убрзање и gx, gy, gz за спин.
  4. Пошаљите податке на серијски порт да бисте приказали резултате.

Ови подаци се појављују као 16-битни цели бројеви у опсегу .

Калибрација сензора MPU6050

Једна од кључних фаза при коришћењу MPU6050 је калибрацијаВеома је уобичајено да сензор враћа вредности које нису нула, чак и ако је савршено хоризонталан и у мировању, због могућих неусклађености приликом лемљења чипа на модул или чак мањих производних несавршености.

Калибрација сензора подразумева одређивање померања акцелерометра и жироскопа на свакој оси и конфигуришите их на сензору тако да очитавања буду заснована на тачним информацијама. Типичан процес може да се састоји од:

  • Прочитајте тренутне помаке користећи функције као што су getXAccelOffset(), getYAccelOffset(), Итд
  • Поставите сензор у хоризонтални положај и потпуно мирујте.
  • Користећи програм, подесите помаке док се филтрирана очитавања (на пример, коришћењем покретног просека или нископропусног филтера) не конвергирају ка идеалним вредностима: ак = 0, аи = 0, аз = 16384, гк = 0, ги = 0, гз = 0 у сировом режиму (RAW).
  • Поставите ове вредности помоћу функција setXAccelOffset(), setYAccelOffset(), Итд

Када се правилно калибрише, сензор ће пружити много прецизније и стабилније вредности, што је неопходно за критичне примене као што су стабилизација или навигација.

Скалирање и претварање очитавања у физичке јединице

Необрађена очитавања са MPU6050 морају се трансформисати у SI (Међународни систем) јединице како би се могла интерпретирати и користити у физичким прорачунима или визуелизацији података:

  • Убрзање: Подразумевани опсег је ±2g, што је еквивалентно ±19,62 m/s2RAW вредност од 16384 одговара 1 g; стога, да би се конвертовала у x am/s2: секира * (9,81/16384.0).
  • Угаона брзина: Подразумевано, ±250°/s, тако да би конверзија била: гx * (250.0 / 32768.0) да конвертује из RAW вредности у степене у секунди.

Ови фактори скалирања се мењају ако конфигуришете сензор на друге опсеге, тако да је неопходно увек проверити фабричка или прилагођена подешавања пре тумачења података.

Израчунајте нагиб користећи само акцелерометр

Када је сензор у мировању или само под дејством гравитације, очитавања акцелерометра могу се користити за израчунавање угао нагиба у односу на X и Y осеТипичне математичке формуле користе тригонометријске функције:

  • За X-нагиб: атан(ак / скрт(аи² + аз²)) × 180/π
  • За Y-нагиб: атан(аи / скрт(ак² + аз²)) × 180/π

Ово обезбеђује угао нагиба у односу на сваку осу у односу на раван гравитације, мада ако је сензор у покрету или прима друга убрзања, ове вредности се могу променити.

Израчунавање углова ротације помоћу жироскопа

Жироскоп омогућава израчунавање варијација угла интеграцијом угаоне брзине током времена. Математички:

  • Угао је једнак интегралу угаоне брзине у датом временском интервалу: θ = θ0 + ∫w·dt

У пракси, ови прорачуни се могу изводити у програмским петљама, сумирањем угаоне брзине помножене са периодом узорковања (dt) да би се добио акумулирани угао.

Важно је контролисати грешку интеграције, јер се мале грешке акумулирају, узрокујући заношење.

Филтери за фузију сензора: комплементарни и Калман

Да би се смањиле грешке у интерпретацији и максимално искористио сваки сензор, користе се алгоритми за фузију података:

Комплементарни филтер

Овај филтер комбинује угао који процењује жироскоп (што добро функционише краткорочно) са углом који израчунава акцелерометар (што је поузданије на дужи рок, али је бучно). Типична формула је:

Коначни_угао = α × (Претходни_угао + Угаона_брзина×dt) + (1-α) × Угао_акцелерометра

Где је α обично између 0,95 и 0,99. Омогућава добијање стабилног очитавања и смањење заношење.

Калманов филтер

Много напреднији, овај филтер спаја мерења, узимајући у обзир несигурност сваког мерења и њихове корелације, постижући тачне процене у присуству шума. Широко се користи у навигационим системима и напредној роботици, иако захтева већу рачунарску снагу.

3Д симулација и визуелизација оријентације (скретање, нагиб, љуљање)

Занимљива примена је приказ 3D оријентације у реалном времену објекта, као што је дрон или робот, представљањем углова Скретање, нагиб и котрљање.

Ово се постиже преносом обрађених података у графички софтвер, коришћењем алата попут серијског плотера или специфичних 3Д програма за праћење и анализу покрета. На овај начин можете визуелно разумети како је ваш систем оријентисан у простору.

Проширена очитавања: употреба магнетометра и сензора LSM9DS1

El ЛСМ9ДС1 интегрише акцелерометар, жироскоп и магнетометар у једном чипу, омогућавајући добијање података из апсолутни положај и оријентацијаПоред мерења убрзања и ротације, може да детектује Земљино магнетно поље како би:

  • Израчунајте апсолутни азимут, користан у навигацији и дигиталним компасима.
  • Развијте системе за навођење без потребе за додатним спољним сензорима.
  • Спојите податке са свих сензора за веома прецизну процену положаја и оријентације (9-DoF).

Практични савети за ефикасну употребу MPU6050 и LSM9DS1

  • Увек калибришите сензоре пре употребе у критичним апликацијама ради побољшања тачности.
  • Избегавајте монтирање модула у близини извора електромагнетних сметњи, као што су мотори или магнети.
  • Користите технике филтрирања и одржавајте прецизну контролу времена узорковања.
  • За апсолутну оријентацију у односу на север, препоручује се употреба ЛСМ9ДС1 или комбинујте MPU6050 са спољним магнетометром, као што је HMC5883L.
  • Имплементација визуелизација у реалном времену помаже у бољем тумачењу прикупљених података.
  • Књижаре попут И2Цдевлиб Они знатно поједностављују рад, зато им дајте приоритет како бисте олакшали развој.
ЛСМ9ДС1
Повезани чланак:
Комплетан водич за сензор ЛСМ9ДС1 са Ардуино: акцелерометар, жироскоп и магнетометар

Започните разговор

Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.