El Moduli GY-521 Është një komponent i përdorur gjerësisht në projekte që përfshijnë matjen e lëvizjes dhe orientimin, falë faktit se integron një përshpejtues dhe xhiroskop në një pajisje të vetme. Ky komponent është i gjithanshëm dhe mund të përdoret në projekte me platforma zhvillimi si Arduino, duke ofruar të dhëna të rëndësishme për nxitimin në tre akse dhe shpejtësinë këndore.
Ky artikull do t'ju ofrojë të gjithë informacionin që ju nevojitet për të kuptuar dhe punuar me GY-521, nga veçoritë e tij më teknike deri te shembujt e kodeve që mund të zbatoni me Arduino. Do të shohim gjithashtu se si mund të lidhet ky modul me Arduino dhe çfarë lloj të dhënash mund të nxirren dhe përdoren në projektet tuaja.
Çfarë është GY-521 dhe si funksionon?
Moduli GY-521 bazohet në sensorin MPU-6050, një çip që kombinon një përshpejtues me tre boshte me një xhiroskop me tre boshte. Kjo do të thotë që GY-521 mund të matë si nxitimin ashtu edhe shpejtësinë këndore në të tre akset (X, Y dhe Z).
Akselerometri Ai mat nxitimin në tre drejtime, i cili përfshin si nxitimin për shkak të lëvizjes ashtu edhe nxitimin e shkaktuar nga graviteti. Kjo do të thotë se mund të zbulojë këndin në të cilin pajisja është e anuar në lidhje me Tokën.
Xhiroskopi, nga ana e tij, mat shpejtësinë këndore ose rrotulluese në tre akse. Në këtë mënyrë mund të zbuloni se sa shpejt po rrotullohet diçka dhe në çfarë drejtimi.
Karakteristikat teknike të GY-521
GY-521 shquhet jo vetëm për integrimin e akselerometrit dhe xhiroskopit, por edhe për një sërë karakteristikash teknike që e bëjnë atë ideal për projektet robotike, dronët dhe sistemet e tjera që kërkojnë matje të saktë të lëvizjes.
- Tensioni i funksionimit: Mund të furnizohet me energji si në 3.3V ashtu edhe në 5V, falë faktit që përfshin një rregullator tensioni në vetë modulin.
- Lidhja I2C: Ky modul komunikon me Arduino ose me ndonjë platformë tjetër duke përdorur autobusin I2C, duke e bërë të thjeshtë lidhjen dhe kontrollin e pajisjes.
- Gama e matjes së akselerometrit: Akselerometri mund të matë në një interval të rregullueshëm nga ±2g në ±16g, duke ju lejuar të rregulloni saktësinë sipas nevojave të projektit.
- Gama e matjes së xhiroskopit: Ashtu si përshpejtuesi, xhiroskopi gjithashtu ka intervale të ndryshme të rregullueshme, përkatësisht ±250, ±500, ±1000 ose ±2000 gradë për sekondë.
Përveç këtyre veçorive, GY-521 ka një Konvertuesi analog dixhital (CAD) 16 bit, i cili siguron saktësi të lartë në konvertimin e sinjaleve analoge nga sensorët në të dhëna dixhitale që mund të përpunohen nga Arduino juaj.
Lidhja e GY-521 me Arduino
Lidhja e modulit GY-521 me Arduino është shumë e thjeshtë falë ndërfaqes I2C. Ai Autobusi I2C Ai përdor dy kunja: një për sinjalin e të dhënave (SDA) dhe një tjetër për sinjalin e orës (SCL).
Për të lidhur GY-521 me një tabelë Arduino UNO:
- Lidhni kunjin KQV-së nga moduli në pinin 5V të Arduino.
- Lidhni kunjin GND nga moduli në pinin Arduino GND.
- Lidhni kunjin SCL për të pin A5 të Arduino.
- Lidhni kunjin burime natyrore për të pin A4 të Arduino.
Pasi të keni lidhur GY-521 me Arduino, mund të ngarkoni një shembull të thjeshtë kodi për të filluar leximin e të dhënave nga akselerometri dhe xhiroskopi.
Shembull kodi për të lexuar të dhëna nga GY-521 me Arduino
Më poshtë ju tregojmë një shembull të kodit bazë për të filluar leximin e të dhënave që vijnë nga akselerometri dhe xhiroskopi. Përdoret biblioteka Tela.h i cili lehtëson komunikimin me pajisjet I2C si GY-521.
#include
const int MPU = 0x68; // Dirección I2C del MPU-6050.
int16_t accelerometer_x, accelerometer_y, accelerometer_z;
int16_t gyro_x, gyro_y, gyro_z;
int16_t temperature;
void setup() {
Serial.begin(9600);
Wire.begin();
Wire.beginTransmission(MPU);
Wire.write(0x6B); // Registro de gestión de energía del MPU6050.
Wire.write(0); // Coloca a cero para activar el sensor.
Wire.endTransmission(true);
}
void loop() {
Wire.beginTransmission(MPU);
Wire.write(0x3B); // Comienza a leer desde el registro 0x3B (datos de aceleración).
Wire.endTransmission(false);
Wire.requestFrom(MPU, 14, true); // Solicita 14 registros del sensor.
// Leer datos de aceleración:
accelerometer_x = Wire.read() << 8 | Wire.read();
accelerometer_y = Wire.read() << 8 | Wire.read();
accelerometer_z = Wire.read() << 8 | Wire.read();
// Leer datos de giroscopio:
gyro_x = Wire.read() << 8 | Wire.read();
gyro_y = Wire.read() << 8 | Wire.read();
gyro_z = Wire.read() << 8 | Wire.read();
Serial.print("Acc: X="); Serial.print(accelerometer_x);
Serial.print(" | Y="); Serial.print(accelerometer_y);
Serial.print(" | Z="); Serial.println(accelerometer_z);
Serial.print("Gyro: X="); Serial.print(gyro_x);
Serial.print(" | Y="); Serial.print(gyro_y);
Serial.print(" | Z="); Serial.println(gyro_z);
delay(500);
}
Ky kod bazë do të lexojë të dhënat e nxitimit dhe rrotullimit në të tre akset dhe do të shfaqë vlerat në Monitorin Serial Arduino.
Rregullimi i shkallës dhe ndjeshmërisë
GY-521 lejon rregulloni shkallën dhe ndjeshmëria e akselerometrit dhe xhiroskopit, e cila është e dobishme nëse doni të merrni matje më të sakta ose për projekte në të cilat prisni të zbuloni lëvizje më të papritura.
Për të ndryshuar shkallën e xhiroskopit dhe akselerometrit, duhet të modifikoni regjistrat specifikë të MPU-6050. Ja se si ta bëni këtë:
- Shkalla e përshpejtuesit: Mund ta rregulloni diapazonin në ±2g, ±4g, ±8g ose ±16g duke regjistruar ACCEL_CONFIG. Në varësi të vlerës së shkruar në këtë regjistër, caktohet diapazoni i dëshiruar.
- Shkalla e xhiroskopit: Për xhiroskopin, diapazoni mund të rregullohet midis ±250, ±500, ±1000 dhe ±2000 gradë për sekondë duke regjistruar GYRO_CONFIG.
Duke bërë këto ndryshime, sensori do të ndryshojë ndjeshmërinë e tij, duke ju lejuar të merrni të dhëna më të sakta ose të zbuloni një gamë më të gjerë lëvizjesh.
Filtrimi i të dhënave: Filtri suplementar
Një nga sfidat kur punoni me sensorë si GY-521 është se të dhënat e përshpejtimit dhe xhiroskopit shpesh kanë një nivel të caktuar zhurme. Për të përmirësuar cilësinë e të dhënave, mund të aplikoni a filtër plotësues që kombinon të dy sensorët për të marrë një vlerësim më të saktë të orientimit të pajisjes.
Një filtër plotësues përdor të dhënat e xhiroskopit për të matur ndryshimet e shpejta në orientim, ndërsa të dhënat e akselerometrit përdoren për të korrigjuar lëvizjen dhe për të marrë një matje afatgjatë më të qëndrueshme.
Aplikimet GY-521
Falë aftësisë së tij për të matur nxitimin dhe shpejtësinë këndore, GY-521 përdoret në një shumëllojshmëri të gjerë projektesh dhe aplikacionesh. Disa nga më të zakonshmet përfshijnë:
- Sistemet e kontrollit të dronëve: Informacioni i dhënë nga akselerometri dhe xhiroskopi është çelësi për ruajtjen e stabilitetit gjatë fluturimit.
- Robotika: Disa robotë përdorin të dhënat e nxitimit dhe rrotullimit për të lëvizur dhe zbuluar ndryshimet në mjedisin e tyre.
- Pajisje portative: Sensorë si GY-521 përdoren në pajisje të tilla si shiritat e fitnesit ose orët inteligjente për të matur lëvizjen e përdoruesit.
Këta janë vetëm disa shembuj, por aplikimet janë vërtet të pakufishme kur bëhet fjalë për matjen dhe interpretimin e të dhënave të lëvizjes dhe orientimit.
Përfundim: Pse duhet të zgjidhni GY-521 për projektet tuaja
GY-521, me integrimin e tij të përshpejtuesit dhe xhiroskopit në një çip të vetëm, është një mjet i fuqishëm dhe i gjithanshëm për çdo projekt elektronik. Duke qenë i pajtueshëm me Arduino dhe duke pasur një ndërfaqe I2C, është vërtet e lehtë të integrohet në çdo sistem. Për më tepër, përshtatshmëria e tij për sa i përket ndjeshmërisë dhe fakti që mund të zbatohet në një shumëllojshmëri të robotikës, kontrollit të lëvizjes dhe më shumë projekte e bën atë një zgjedhje ideale për çdo krijues ose inxhinier në trajnim.
Nëse jeni duke kërkuar për një sensor të besueshëm dhe të lehtë për t'u përdorur me shumë aplikacione, GY-521 duhet të jetë patjetër në listën tuaj të komponentëve që duhet të keni.