MPU6050: koyaushe don daidaitawa tare da Arduino

Kwamitin MPU6050

Idan kana buƙatar ƙirƙirar aiki da sanya shi, ma'ana, sani yaya aka sanya shi game da sarari, zaka iya amfani da ƙirar Saukewa: MPU6050. Wato, wannan rukunin naúrar ma'aunin inertial ne ko IMU (erananan asunƙun Maɓuɓɓuka) tare da digiri 6 na 'yanci (DoF). Wannan godiya ne ga nau'ikan na'urori masu auna sigina na 3-axis da gyroscope na 3-axis waɗanda suke aiwatarwa don aiki.

Wannan MPU6050 na iya sanin yadda aka sanya abun da ke ƙunshe don amfani dashi aikace-aikace kewayawa, goniometry, karfafawa, karimcin sarrafawa, da dai sauransu. Wayoyin hannu galibi galibi sun haɗa da wannan nau'ikan na'urori masu auna firikwensin, misali, sarrafa wasu ayyuka ta hanyar motsi, kamar tsayawa idan wayar hannu ta juya, tuka ababen hawa cikin wasannin bidiyo ta hanyar juya wayar ta hannu kamar dai ita ce sitiyari, da sauransu

Menene accelerometer da gyroscope?

Misalan MEMS

Misalan MEMS

To, bari mu shiga cikin sassa. Abu na farko shine ganin menene waɗannan nau'ikan na'urori masu auna sigina suna iya gano hanzari da juyawa, kamar yadda za'a iya fitar dasu daga sunayensu.

  • Accelerometer: matakan hanzari, ma'ana, canjin sauri a kowane sashi na lokaci. Ka tuna cewa a kimiyyar lissafi, canjin saurin gudu tare da lokaci (a = dV / dt) shine ma'anar hanzari. Dangane da Dokar ta biyu ta Newton, muna da cewa = = F / m, kuma wannan shine abin da hanzari ke amfani dashi don aiki, ma'ana, suna amfani da sigogi na ƙarfi da nauyin abu. Don haka za a iya aiwatar da wannan a cikin kayan lantarki, ana amfani da dabarun MEMS (Micro Electro Mechanical Systems), wanda ya bambanta da dabarun ƙera keɓaɓɓu na lantarki, tunda an ƙirƙiri ɓangarorin inji a cikin MEMS. A wannan yanayin, ana ƙirƙirar waƙoƙi ko abubuwan da zasu iya auna saurin aiki. Wannan yana nuna cewa za'a iya ɗaukar wasu raka'a da yawa, kamar saurin (idan hanzari ya haɗu a lokaci), idan aka sake haɗawa, muna da ƙaura, da dai sauransu. Wato, sigogi masu matukar ban sha'awa don sanin matsayi ko gano motsi na wani abu.
  • Gyroscope: wanda kuma ake kira da gyroscope, wata na’ura ce da ke auna saurin kusurwa na abu, ma’ana, sauyawar kusurwa cikin kowane sashi na lokaci ko kuma yadda sauri jiki ke juyawa a gefensa. A wannan yanayin, ana amfani da dabarun MEMS don auna wannan saurin ta amfani da tasirin da aka sani da Coriolis. Godiya ga wannan, ana iya auna saurin mai kusurwa ko, ta hanyar haɗakar saurin kusurwa game da lokaci, ana iya samun ƙaura mai kusurwa.

MPU6050 module

MPU6050 mai kashe ido

Yanzu da kun san menene hanzari da gyroscope, samfurin MPU6050 Kwamitin lantarki ne wanda ke haɗa waɗannan abubuwa guda biyu don baka damar auna waɗannan canje-canje a matsayin matsayin wani abu kuma don haka ya sami damar haifar da martani. Misali, cewa lokacin da abu ya motsa LED yana haskakawa, ko wasu abubuwa masu rikitarwa.

Kamar yadda na ce, tana da gatari 6 na 'yanci, DoF, 3-axis X, Y, da Z hanzarin hanzari, da sauran 3-axis gyroscope don auna saurin kusurwa. Dole ne ku yi la'akari da cewa kada kuyi kuskure a cikin hanyar da kuka sanya darajan da kuma shugabanci na juyawa don ma'aunan, tunda idan kun sanya alamar da ba daidai ba zata zama ɗan rikici. Dubi hoto mai zuwa inda ya keɓance shugabancin gatarin (duk da haka, lura cewa PCB ɗin kanta ma an buga shi a gefe ɗaya):

Takardar Bayani MPU6050

La'akari da wannan kuma da pinout, fiye ko youasa kuna da komai bayyananne don fara amfani da MPU6050. Kamar yadda kake gani a cikin hoton da ya gabata, mahaɗan suna da sauƙi kuma yana ba da damar sadarwa ta I2C ta dace da yawancin microcontrollers, gami da Arduino. Lines na SCL da SDA suna da abin ja-gora a kan jirgi don haɗi kai tsaye zuwa hukumar Arduino, don haka kada ku damu da ƙara su da kanku.

Don aiki tare da kwatance duka a kan motar I2C, zaku iya amfani da waɗannan fil da kwatance:

  • AD0 = 1 ko Babban (5v): don adireshin I0C 69x2.
  • AD0 = 0 ko Lowasa (GND ko Nc): don adireshin 0x68 na motar I2C.

Ka tuna cewa ƙarfin aikin samfurin shine 3v3, amma sa'ar al'amarin yana da ginanniyar mai tsarawa, saboda haka ana iya canzawa tare da Arduino's 5v ba tare da matsala ba kuma zai canza shi zuwa 3.3v.

Af, samun juriya ta ciki ga GND, idan wannan fil ɗin ba a haɗa shi ba, adireshin ta tsoho zai zama 0x68, tunda za'a iya haɗa shi ta tsohuwa zuwa duniya, fassara shi azaman ma'ana 0.

Haɗuwa tare da Arduino

Haɗin Arduino da MPU6050

Kuna iya samu ƙarin bayani game da motar I2C a cikin wannan labarin. Kun riga kun san cewa ya dogara da jirgin Arduino fil ɗin da aka yi amfani da shi don bas ɗin ya bambanta, amma a cikin Arduino UNO shine alamar analog A4 da A5, don SDA (bayanai) da SCL (agogo) bi da bi. Su kadai ne Arduino fil, tare da 5v da GND ɗaya don iko da allon, wanda yakamata kuyi amfani dashi. Don haka haɗin yana da sauƙi kamar yadda zai yiwu.

Don ayyukan MPU6050 zaku iya amfani da dakunan karatu wanda zaku iya samun ƙarin bayanai a cikin wannan haɗin don I2C na koyaushe da na bas din Saukewa: MPU6050.

Shirye-shiryen kwamitin Arduino ba madaidaiciya bane tare da MPU6050, don haka ba don farawa bane. Kari akan haka, sanin iyakokin hanzartawa ko jeri na kusurwa, zaka iya yin calibrate don sanin menene ainihin motsi ko hanzari ya kasance. Koyaya, don aƙalla ku sami misali na yadda zaku yi sharhi akan amfani da shi, kuna iya ganin wannan lambar daga Misali zane don Arduino IDE wanda zai karanta ƙimomin da aka rubuta ta hanyar accelerometer da 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);
}

Idan kai dan farawa ne kuma baka san da kyau ba yadda ake shirin tare da Arduino IDE, wannan zai muku wahala ku fahimta, saboda haka zaku iya tuntuɓar littafinmu tare da tsarin gabatarwa ga shirye-shiryen Arduino kyauta ...


Kasance na farko don yin sharhi

Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.