El Модул GY-521 Това е компонент, който се използва широко в проекти, които включват измерване на движение и ориентация, благодарение на факта, че интегрира акселерометър и жироскоп в едно устройство. Този компонент е многофункционален и може да се използва в проекти с платформи за разработка като Arduino, като предоставя важни данни за ускорение в три оси и ъглова скорост.
Тази статия ще ви предостави цялата информация, от която се нуждаете, за да разберете и да работите с GY-521, от най-техническите му характеристики до примерни кодове, които можете да внедрите с Arduino. Ще видим също как този модул може да бъде свързан с Arduino и какъв тип данни могат да бъдат извлечени и използвани във вашите проекти.
Какво е GY-521 и как работи?
Модулът GY-521 е базиран на сензора MPU-6050, чип, който комбинира триосен акселерометър с триосен жироскоп. Това означава, че GY-521 може да измерва както ускорението, така и ъгловата скорост във всичките три оси (X, Y и Z).
Акселерометърът Той измерва ускорението в три посоки, което включва както ускорение, дължащо се на движение, така и ускорение, причинено от гравитацията. Това означава, че може да открие ъгъла, под който устройството е наклонено спрямо Земята.
Жироскопът, от своя страна, измерва ъглова или скорост на въртене в три оси. По този начин можете да разберете колко бързо се върти нещо и в каква посока.
Технически характеристики на GY-521
GY-521 се откроява не само с интеграцията на акселерометър и жироскоп, но и със серия от технически характеристики, които го правят идеален за проекти за роботика, дронове и други системи, които изискват прецизно измерване на движението.
- Работно напрежение: Може да се захранва както на 3.3V, така и на 5V, благодарение на това, че включва регулатор на напрежение в самия модул.
- I2C връзка: Този модул комуникира с Arduino или друга платформа, използвайки I2C шината, което улеснява свързването и управлението на устройството.
- Обхват на измерване на акселерометъра: Акселерометърът може да измерва в регулируем диапазон от ±2g до ±16g, което ви позволява да регулирате точността според нуждите на проекта.
- Обхват на измерване на жироскопа: Подобно на акселерометъра, жироскопът също има различни регулируеми диапазони, а именно ±250, ±500, ±1000 или ±2000 градуса в секунда.
В допълнение към тези характеристики, GY-521 има a Цифрово-аналогов преобразувател (CAD) 16 бита, което гарантира висока прецизност при преобразуването на аналоговите сигнали от сензорите в цифрови данни, които могат да бъдат обработени от вашия Arduino.
Свързване на GY-521 с Arduino
Свързването на модула GY-521 към Arduino е много лесно благодарение на интерфейса I2C. той I2C шина Той използва два щифта: един за сигнала за данни (SDA) и друг за сигнала на часовника (SCL).
За да свържете GY-521 към платка Arduino UNO:
- Свържете щифта VCC от модула към 5V извода на Arduino.
- Свържете щифта GND от модула към щифта GND на Arduino.
- Свържете щифта SCL към щифт A5 на Arduino.
- Свържете щифта S.D.A. към щифт A4 на Arduino.
След като свържете GY-521 към Arduino, можете да качите прост примерен код, за да започнете да четете данни от акселерометъра и жироскопа.
Примерен код за четене на данни от GY-521 с Arduino
По-долу ви показваме основен пример за код, за да започнете да четете данните, идващи от акселерометъра и жироскопа. Използва се библиотеката Тел.ч което улеснява комуникацията с I2C устройства като 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);
}
Този основен код ще прочете данните за ускорението и въртенето по трите оси и ще покаже стойностите на серийния монитор на Arduino.
Настройка на мащаба и чувствителността
GY-521 позволява регулирайте скалата и чувствителност както на акселерометъра, така и на жироскопа, което е полезно, ако искате да получите по-прецизни измервания или за проекти, в които очаквате да откриете по-резки движения.
За да промените мащаба на жироскопа и акселерометъра, трябва да промените специфичните регистри на MPU-6050. Ето как да направите това:
- Скала на акселерометъра: Можете да регулирате диапазона до ±2g, ±4g, ±8g или ±16g, като се регистрирате ACCEL_CONFIG. В зависимост от стойността, записана в този регистър, се присвоява желаният диапазон.
- Мащаб на жироскопа: За жироскопа диапазонът може да се регулира между ±250, ±500, ±1000 и ±2000 градуса в секунда чрез регистриране GYRO_CONFIG.
Правейки тези промени, сензорът ще промени своята чувствителност, което ви позволява да получавате по-прецизни данни или да откривате по-широк обхват на движение.
Филтриране на данни: Допълнителен филтър
Едно от предизвикателствата при работа със сензори като GY-521 е, че данните за ускорението и жироскопа обикновено имат определено ниво на шум. За да подобрите качеството на данните, можете да приложите a допълнителен филтър който комбинира двата сензора, за да получи по-точна оценка на ориентацията на устройството.
Допълнителен филтър използва данни от жироскоп за измерване на бързи промени в ориентацията, докато данните от акселерометъра се използват за коригиране на отклонението и получаване на по-стабилно дългосрочно измерване.
GY-521 Приложения
Благодарение на способността си да измерва ускорение и ъглова скорост, GY-521 се използва в голямо разнообразие от проекти и приложения. Някои от най-често срещаните включват:
- Системи за управление на дронове: Информацията, предоставена от акселерометъра и жироскопа, е ключова за поддържане на стабилност по време на полет.
- роботика: Някои роботи използват данни за ускорение и въртене, за да се движат и да откриват промени в околната среда.
- Преносими устройства: Сензори като GY-521 се използват в устройства като фитнес ленти или смарт часовници за измерване на движението на потребителя.
Това са само няколко примера, но приложенията са наистина неограничени, когато става въпрос за измерване и интерпретиране на данни за движение и ориентация.
Заключение: Защо трябва да изберете GY-521 за вашите проекти
GY-521, с интегрирането на акселерометър и жироскоп в един чип, е мощен и универсален инструмент за всеки електронен проект. Тъй като е съвместим с Arduino и има I2C интерфейс, той е наистина лесен за интегриране във всяка система. Освен това неговата регулируемост по отношение на чувствителността и фактът, че може да се внедри в различни роботи, контрол на движението и други проекти го прави идеален избор за всеки производител или инженер в процес на обучение.
Ако търсите надежден, лесен за използване сензор с множество приложения, GY-521 определено трябва да бъде в списъка ви с компоненти, които трябва да имате.