MPU6050: module para sa pagpoposisyon sa Arduino

Board ng MPU6050

Kung kailangan mong lumikha ng isang proyekto at iposisyon ito, iyon ay, alamin paano ito nakalagay patungkol sa espasyo, maaari mong gamitin ang modyul MPU6050. Iyon ay, ang modyul na ito ay isang yunit ng pagsukat ng inertial o IMU (Mga Unit ng Pagsukat na Inertial) na may 6 degree na kalayaan (DoF). Salamat sa mga sensor ng uri ng 3-axis na accelerometer at isang 3-axis gyroscope na ipinapatupad nito upang gumana.

Maaaring malaman ng MPU6050 kung paano nakaposisyon ang naglalaman ng bagay para magamit sa application pag-navigate, goniometry, pagpapapanatag, pagkontrol sa kilos, atbp. Karaniwang isinasama ng mga mobile phone ang ganitong uri ng mga sensor upang, halimbawa, makontrol ang ilang mga pag-andar sa pamamagitan ng mga galaw, tulad ng pagtigil kung ang smartphone ay nakabukas, pagmamaneho ng mga sasakyan sa mga video game sa pamamagitan ng pag-on sa mobile na parang isang manibela, atbp.

Ano ang isang accelerometer at isang gyroscope?

Mga Halimbawa ng MEMS

Mga Halimbawa ng MEMS

Kaya, pumunta tayo sa mga bahagi. Ang unang bagay ay upang makita kung ano ang mga uri ng sensor na iyon ay nakakakita ng pagbilis at pagliko, tulad ng maaaring maibawas mula sa kanilang sariling mga pangalan.

  • Accelerometer: sumusukat sa pagpabilis, iyon ay, ang pagbabago ng bilis bawat yunit ng oras. Tandaan na sa pisika, ang pagbabago sa bilis ng oras (a = dV / dt) ay ang kahulugan ng pagpapabilis. Ayon sa Ikalawang Batas ni Newton, mayroon din tayong isang = F / m, at iyon ang ginagamit ng mga accelerometer upang gumana, iyon ay, gumagamit sila ng mga parameter ng puwersa at dami ng bagay. Upang maipatupad ito sa electronics, ginagamit ang mga diskarte na MEMS (Micro Electro Mechanical Systems), na naiiba mula sa maginoo na mga diskarte sa pagmamanupaktura ng electronic chip, yamang ang mga bahagi ng mekanikal ay nilikha sa isang MEMS. Sa kasong ito, nilikha ang mga track o element na may kakayahang sukatin ang mga acceleration. Ipinapahiwatig nito na maraming iba pang mga yunit ang maaaring makuha, tulad ng bilis (kung ang pagpabilis ay isinasama sa oras), kung ito ay isinama muli, mayroon kaming pag-aalis, atbp. Iyon ay upang sabihin, napaka-kagiliw-giliw na mga parameter upang malaman ang posisyon o tuklasin ang paggalaw ng isang bagay.
  • Gyroscope: tinatawag din na isang gyroscope, ito ay isang aparato na sumusukat sa angular na tulin ng isang bagay, iyon ay, angular na pag-aalis sa bawat yunit ng oras o kung gaano kabilis ang isang katawan na umiikot sa axis nito. Sa kasong ito, ginagamit din ang mga diskarte sa MEMS upang masukat ang bilis na ito gamit ang isang epekto na kilala bilang Coriolis. Salamat dito, maaaring sukatin ang angular na tulin o, sa pamamagitan ng pagsasama ng angular na tulin na may paggalang sa oras, maaaring makuha ang angular na pag-aalis.

Module ng MPU6050

MPU6050 pinout

Ngayong alam mo na kung ano ang accelerometer at gyroscope, ang module ng MPU6050 Ito ay isang elektronikong lupon na isinasama ang dalawang sangkap na ito upang payagan kang masukat ang mga pagbabagong ito sa posisyon ng isang elemento at sa gayon ay makakabuo ng isang reaksyon. Halimbawa, na kapag ang isang bagay ay gumagalaw ng isang LED lights up, o iba pang mas kumplikadong mga bagay.

Tulad ng sinabi ko, mayroon itong 6 na palakol ng kalayaan, DoF, 3-axis X, Y, at Z acceleration accelerometer, at iba pang 3-axis gyroscope upang masukat angular na tulin. Kailangan mong isaalang-alang na hindi magkamali sa paraan kung saan mo iposisyon ang module at ang direksyon ng pag-ikot para sa mga sukat, dahil kung gumawa ka ng maling pag-sign magiging medyo magulo. Tingnan ang sumusunod na imahe kung saan tinukoy nito ang direksyon ng mga palakol (gayunpaman, pansinin na ang PCB mismo ay mayroon ding naka-print sa isang gilid):

Data sheet MPU6050

Isinasaalang-alang ito at ang pinout, higit pa o mas kaunti mayroon kang lahat na malinaw upang simulang gamitin ang MPU6050. Tulad ng nakikita mo sa nakaraang imahe, ang mga koneksyon ay medyo simple at pinapayagan nitong makipag-ugnay sa komunikasyon ng I2C sa karamihan ng mga microcontroller, kasama na ang Arduino. Ang mga pin ng SCL at SDA ay may isang pull-up risistor sa pisara para sa direktang koneksyon sa Arduino board, kaya't hindi ka dapat magalala tungkol sa pagdaragdag ng mga ito sa iyong sarili.

Upang gumana kasama ang parehong direksyon sa I2C bus, maaari mo itong magamit mga pin at direksyon:

  • AD0 = 1 o Mataas (5v): para sa I0C address na 69x2.
  • AD0 = 0 o Mababa (GND o Nc): para sa address na 0x68 ng I2C bus.

Tandaan na ang operating boltahe ng modelo ay 3v3, ngunit sa kabutihang palad mayroon itong built-in na regulator, kaya maaari itong ilipat sa 5v ng Arduino nang walang problema at ibabago nito ito sa 3.3v.

Sa pamamagitan ng paraan, pagkakaroon ng isang panloob na paglaban sa GND, kung ang pin na ito ay hindi konektado, ang address bilang default magiging 0x68 ito, dahil makakonekta ito bilang default sa lupa, binibigyang kahulugan ito bilang isang lohikal na 0.

Pagsasama sa Arduino

Koneksyon ng Arduino at MPU6050

Maaari kang makakuha karagdagang impormasyon tungkol sa I2C bus sa artikulong ito. Alam mo na depende sa board ng Arduino ang mga pin na ginamit para sa bus ay magkakaiba, ngunit sa Arduino UNO ay ang analog pin A4 at A5, para sa SDA (data) at SCL (orasan) ayon sa pagkakabanggit. Ang mga ito ay ang tanging mga pin ng Arduino, kasama ang 5v at GND na isa upang paandarin ang board, na dapat mong gamitin. Kaya't ang koneksyon ay kasing simple hangga't maaari.

Para sa mga pagpapaandar ng MPU6050 maaari mong gamitin ang mga aklatan kung saan maaari kang makakuha ng karagdagang impormasyon sa link na ito para sa I2C ng modyul at ng bus MPU6050.

Ang programa ng board ng Arduino ay hindi masyadong prangka sa MPU6050, kaya't hindi para sa mga nagsisimula. Bilang karagdagan, alam ang mga limitasyon ng mga acceleration o saklaw ng mga anggulo, maaari mong i-calibrate upang matukoy kung ano ang eksaktong kilusan o pagpabilis. Gayunpaman, upang magkaroon ka ng kahit isang halimbawa ng kung paano magbigay ng puna sa paggamit nito, maaari mong makita ang code na ito mula sa Halimbawa ng sketch para sa iyong Arduino IDE na babasahin ang mga halagang naitala ng accelerometer at gyroscope:

// 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);
}

Kung ikaw ay isang nagsisimula at hindi mo alam kung paano magprogram sa Arduino IDEMahihirapan ito upang maunawaan mo, upang maaari kang kumunsulta sa aming manu-manong kasama ang panimulang kurso sa Arduino na programa nang libre ...


Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.