МПУ6050 сензор има много функција преко једног чипа. Састоји се од МЕМС акцелерометра, МЕМС жироскопа и температурног сензора. Овај модул је врло прецизан приликом претварања аналогних вредности у дигиталне, јер има 16-битни хардвер аналогног у дигитални претварач за сваки канал. Овај модул може истовремено да ухвати к, и и з канал. Има И2Ц интерфејс за комуникацију са хост контролером. Овај МПУ6050 модул је компактни чип који има и акцелерометар и жироскоп. Ово је веома користан уређај за многе примене попут дронова, робота, сензора покрета. Такође се назива жироскоп или троосни акцелерометар.
Данас ћемо у овом чланку повезати овај МПУ6050 жироскоп са Ардуином и приказати вредности преко ЛЦД екрана 16к2.
Потребне компоненте:
- Ардуино Уно
- МПУ-6050
- 10К ПОТ
- Жица краткоспојника
- Бреадбоард
- УСБ кабл
- Напајање
МПУ6050 жиро сензор:
МПУ-6050 је 8-пински жироскоп са 6 осовина и акцелерометар у једном чипу. Овај модул подразумевано ради на И2Ц серијској комуникацији, али се може конфигурисати за СПИ интерфејс конфигурисањем регистра. За И2Ц ово има СДА и СЦЛ линије. Готово сви пинови су мултифункционални, али овде радимо само са И2Ц модовима.
Конфигурација пин-а:
Вцц: - овај пин се користи за напајање МПУ6050 модула у односу на масу
ГНД: - ово је уземљена игла
СДА: - СДА пин се користи за податке између контролера и мпу6050 модула
СЦЛ: - СЦЛ пин се користи за унос сата
КСДА: - Ово је сензорска линија података И2Ц СДА за конфигурисање и читање са спољних сензора ((опционално) која се у нашем случају не користи)
КСЦЛ: - Ово је сензорска И2Ц СЦЛ линија сата за конфигурисање и очитавање са спољних сензора ((опционално) која се у нашем случају не користи)
АДО: - И2Ц адреса славе ЛСБ (није применљива у нашем случају)
ИНТ: - Игла за прекид за индикацију спремности података.
Опис:
У овом чланку приказујемо очитавања температуре, жироскопа и акцелерометра на ЛЦД-у користећи МПУ6050 са Ардуином. Овај модул нам даје вредности редова и нормализоване вредности у излазу, али вредности редова нису стабилне, тако да овде приказујемо нормализоване вредности преко ЛЦД-а. Ако желите само вредност акцелерометра, такође можете да користите акцелерометар АДКСЛ335 са Ардуином.
У овом пројекту смо прво приказали температурну вредност преко ЛЦД-а, а након 10 секунди приказујемо гироскопске вредности, а након 10 секунди имамо очитавања акцелерометра као што је приказано на сликама испод:
Шема и објашњење:
Шема кола за повезивање МПУ6050 са Ардуином је врло једноставна, овде смо користили ЛЦД и МПУ6050. И овде смо користили УСБ напајање за лаптоп. За управљање осветљеношћу ЛЦД-а користи се посуда од 10 хиљада. У вези са МПУ6050, урадили смо 5 веза у којима смо повезали 3.3в напајање и масу МПУ6050 са 3.3в и масом Ардуина. СЦЛ и СДА пинови МПУ6050 повезани су са Ардуиновим А4 и А5 пином. А ИНТ пин МПУ6050 повезан је на прекид 0 Ардуина (Д2). ЛЦД-ови РС, РВ и ЕН су директно повезани са 8, гнд и 9 Ардуина. Дата пин су директно повезани са дигиталним пиновима 10, 11, 12 и 13.
Објашњење програмирања
Програмски део је такође лак за овај пројекат. Овде смо користили ову библиотеку МПУ6050 да бисмо је повезали са Ардуином. Дакле, пре свега, морамо да преузмемо библиотеку МПУ6050 са ГитХуб-а и инсталирамо је у Ардуино ИДЕ.
После ње можемо пронаћи примере кодова у примеру. Корисник може тестирати тај код директним отпремањем на Ардуино и може видети вредности преко серијског монитора. Или корисник може користити наш код дат на крају чланка за приказивање вредности и преко ЛЦД-а и серијског монитора.
У кодирање смо уврстили неке потребне библиотеке попут МПУ6050 и ЛЦД.
#инцлуде
У функцији подешавања , иницијализујемо оба уређаја и пишемо поруку добродошлице преко ЛЦД-а
воид сетуп () {лцд.бегин (16,2); лцд.цреатеЦхар (0, степен); Сериал.бегин (9600); Сериал.принтлн ("Иницијализација МПУ6050"); вхиле (! мпу.бегин (МПУ6050_СЦАЛЕ_2000ДПС, МПУ6050_РАНГЕ_2Г)) {лцд.цлеар (); лцд.принт („Уређај није пронађен“); Сериал.принтлн („Не могу да пронађем важећи сензор МПУ6050, проверите ожичење!“); кашњење (500); } цоунт = 0; мпу.цалибратеГиро (); мпу.сетТхресхолд (3); У петље функција, ми смо звали три функције у свакој 10сецондс за приказ температуре, жироскоп, акцелерометар и читање на ЛЦД дисплеју. Ове три функције су темпСхов, гироСхов и аццелСхов , те функције можете проверити у комплетном Ардуино коду датом на крају овог чланка:
воид лооп () {лцд.цлеар (); лцд.принт ("Температура"); лонг ст = милис (); Сериал.принтлн ("Температура"); док (милис ()
МПУ6050 жироскоп и акцелерометар се користе за откривање положаја и оријентације било ког уређаја. Жиро користи земаљску гравитацију за одређивање положаја к, и и з осе, а акцелерометар открива на основу брзине промене кретања. Акцелерометар смо већ користили са Ардуином у многим нашим пројектима попут:
- Робот под контролом гестова заснован на акцелерометру
- Систем за узбуњивање незгода на бази Ардуино-а
- Аларм за детектор земљотреса користећи Ардуино