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?
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
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):
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
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 ...