МПУ6050: модул за позиционирање са Ардуином

МПУ6050 плоча

Ако треба да направите пројекат и поставите га, то јест, знајте како се поставља што се тиче простора, можете користити модул МПУ6050. Односно, овај модул је инерцијална мерна јединица или ИМУ (Инерцијалне мерне јединице) са 6 степени слободе (ДоФ). То је захваљујући 3-осним сензорима акцелерометра и 3-осном жироскопу који примењује за рад.

Овај МПУ6050 може знати како се објект који садржи садржи позициониран за употребу у њему апликације навигација, гониометрија, стабилизација, контрола геста итд. Мобилни телефони обично укључују ову врсту сензора за, на пример, управљање одређеним функцијама помоћу геста, попут заустављања ако је паметни телефон преокренут, вожње возила у видео играма окретањем мобилног као да је волан итд.

Шта су акцелерометар и жироскоп?

Примери МЕМС-а

Примери МЕМС-а

Па, идемо по деловима. Прво је видети шта су то ове врсте сензора су у стању да открију убрзање и завоје, као што се може закључити из њихових властитих имена.

  • Акцелерометар: мери убрзање, односно промену брзине у јединици времена. Запамтите да је у физици промена брзине са временом (а = дВ / дт) дефиниција убрзања. Према Њутновом Другом закону, такође имамо да је а = Ф / м, и то је оно што акцелерометри користе за рад, односно користе параметре силе и масе предмета. Да би се ово могло применити у електроници, користе се технике МЕМС (Мицро Елецтро Мецханицал Системс), које се разликују од конвенционалних техника производње електронских чипова, јер су механички делови створени у МЕМС-у. У овом случају се стварају трагови или елементи који могу да мере убрзање. То подразумева да се могу узети многе друге јединице, попут брзине (ако се убрзање интегрише у времену), ако се поново интегрише, имамо померање итд. Односно, врло занимљиви параметри за познавање положаја или откривање кретања предмета.
  • Жироскоп: такође назван жироскоп, то је уређај који мери угаону брзину објекта, односно угаони помак у јединици времена или колико се брзо тело окреће око своје осе. У овом случају, МЕМС технике се такође користе за мерење ове брзине помоћу ефекта познатог као Цориолис. Захваљујући томе, може се мерити угаона брзина или се интегрисањем угаоне брзине у односу на време може добити угаони помак.

МПУ6050 модул

МПУ6050 пиноут

Сад кад знате шта су акцелерометар и жироскоп, модул МПУ6050 је електронска плоча која интегрише ова два елемента како би вам омогућила да измерите ове промене у положају елемента и тако будете у могућности да генеришете реакцију. На пример, да када се објекат креће, засветле ЛЕД или друге много сложеније ствари.

Као што рекох, има 6 оса слободе, ДоФ, 3-осни Кс, И и З акцелерометар убрзања и други 3-осни жироскоп за мерење угаоне брзине. Морате узети у обзир да не направите грешку у начину на који постављате модул и смеру ротације за мерења, јер ако направите погрешан знак то ће бити помало хаотично. Погледајте следећу слику где одређује смер оса (међутим, имајте на уму да је и на ПЦБ-у одштампана на једној страни):

Датасхеет МПУ6050

Узимајући у обзир ово и пиноут, мање-више имате све јасно да бисте почели да користите МПУ6050. Као што видите на претходној слици, везе су прилично једноставне и омогућава И2Ц комуникацију да буде компатибилна са већином микроконтролера, укључујући Ардуино. Прибадаче СЦЛ и СДА имају на плочи повлачни отпорник за директну везу са Ардуино плочом, тако да не морате бринути да ли ћете их сами додати.

Можете радити са оба смера на И2Ц магистрали игле и упутства:

  • АД0 = 1 или високи (5в): за И0Ц адресу 69к2.
  • АД0 = 0 или ниско (ГНД или Нц): за адресу 0к68 И2Ц магистрале.

Имајте на уму да је радни напон модела 3в3, али срећом има уграђени регулатор, тако да га без проблема може отуђити Ардуино 5в и трансформисаће га у 3.3в.

Успут, имајући унутрашњи отпор према ГНД, ако овај пин није повезан, адреса подразумевано ће бити 0к68, пошто ће бити подразумевано повезан са земљом, тумачећи га као логичку 0.

Интеграција са Ардуином

Конекција Ардуино и МПУ6050

Можете добити више информација о И2Ц магистрали у овом чланку. Већ знате да се у зависности од Ардуино плоче игле које се користе за аутобус разликују, али у Arduino UNO је аналогни пин А4 и А5, за СДА (подаци) и СЦЛ (сат) редом. То су једине Ардуино пинове, заједно са 5в и ГНД за напајање плоче, које бисте требали користити. Тако да је веза што једноставнија.

За функције МПУ6050 можете користити библиотеке од којих на овом линку можете пронаћи више информација за ИКСНУМКСЦ модула и магистрале МПУ6050.

Програмирање Ардуино плоче није превише једноставно са МПУ6050, тако да није за почетнике. Поред тога, знајући границе убрзања или опсеге углова, можете калибрирати да бисте утврдили шта је тачно било кретање или убрзање. Међутим, како бисте бар имали пример како да коментаришете његово коришћење, овај код можете видети из Пример скице за ваш Ардуино ИДЕ који ће очитавати вредности забележене акцелерометром и жироскопом:

// Bibliotecas necesarias:
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Wire.h"

// Dependiendo del estado de AD0, la dirección puede ser 0x68 o 0x69, para controlar así el esclavo que leerá por el bus I2C
MPU6050 sensor;

// Valores RAW o en crudo leidos del acelerometro y giroscopio en los ejes x,y,z
int ax, ay, az;
int gx, gy, gz;

void setup() {
  Serial.begin(57600);    //Función para iniciar el puerto serie con 57600 baudios
  Wire.begin();           //Inicio para el bus I2C 
  sensor.initialize();    //Iniciando del sensor MPU6050

  if (sensor.testConnection()) Serial.println("Sensor iniciado correctamente");
  else Serial.println("Error al iniciar el sensor");
}

void loop() {
  // Leer las aceleraciones y velocidades angulares
  sensor.getAcceleration(&ax, &ay, &az);
  sensor.getRotation(&gx, &gy, &gz);

  // Muestra las lecturas que va registrando separadas por una tabulación 
  Serial.print("a[x y z] g[x y z]:\t");
  Serial.print(ax); Serial.print("\t");
  Serial.print(ay); Serial.print("\t");
  Serial.print(az); Serial.print("\t");
  Serial.print(gx); Serial.print("\t");
  Serial.print(gy); Serial.print("\t");
  Serial.println(gz);

  delay(100);
}

Ако сте почетник и не знате добро како програмирати са Ардуино ИДЕ, ово ће вам бити тешко да разумете, па можете бесплатно да погледате наш приручник са уводним курсом за Ардуино програмирање ...


Будите први који ће коментарисати

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

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

*

*

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