Привет! Сегодня сделаем обзор на гироскоп GY-521 для Ардуино. Он послужит нам в нескольких будущих проектах. Но сначала нужно разобраться с самим модулем и посмотреть, на что он способен.
Содержание
- Для выполнения этого урока нам понадобятся
- Гироскоп GY-521
- Контакты платы
- Характеристики
- Проект и схема
- Программа
- Полный текст программы
- Где купить
- Заключение
Для выполнения этого урока нам понадобятся
- Ардуино UNO
- Макетная плата
- Перемычки
- Модуль GY-521
- Кабель USB
Гироскоп GY-521
Кроме гироскопа в модуле GY-521 есть акселерометр и датчик температуры. Для питания можно использовать и 3.3 вольта и 5 вольт.
Гироскоп измеряет угол наклона датчика.
Акселерометр измеряющий проекцию кажущегося ускорения. Более подробно об этом написано в википедии.
Контакты платы
- VCC – питание модуля 3.3 В до 5 В
- GND – земля
- SCL – линия синхронизации для протокола I2C
- SDA – линия передачи данных протокола I2C
- XDA – линия передачи данных протокола при работе в режиме мастера
- XCL – линия синхронизации для протокола I2C при работе в режиме мастера
- AD0 – если вывод лог «0» адрес I2C будет 0x68, если вывод лог «1» адрес I2C будет 0x69
- INT – прерывание
Характеристики
- напряжение питания: от 3,5 до 6 В;
- потребляемый ток: 500 мкА;
- ток в режиме пониженного потребления: 10 мкА при 1,25 Гц, 20 мкА при 5 Гц, 60 мкА при 20 Гц, 110 мкА при 40 Гц;
- диапазон: ± 2, 4, 8, 16g;
- разрядность АЦП: 16;
- интерфейс: I2C (до 400 кГц).
Проект и схема
Мы хотим измерить наклон модуля по двум осям и посмотреть как работает акселерометр.
Сначала, подключим датчик к Ардуино, используем маленькую макетную плату.
Для подключения модуля нам понадобиться библиотека MPU6050.h Скачать ее можно с помощью менеджера библиотек. После установки библиотеки, в меню примеров можно найти скетч MPU6050_raw для проверки модуля. Он покажет данные с гироскопа и акселерометра.
Но мы напишем более простой скетч, чтобы получить эти данные и проверить работоспособность модуля.
Программа
Подключим все библиотеки и инициализируем порты и библиотеку.
#include "MPU6050.h"
#include "I2Cdev.h"
#include "Wire.h"
MPU6050 accelgyro;
int16_t ax, ay, az;
int16_t gx, gy, gz;
void setup(){
Wire.begin();
Serial.begin(9600);
Serial.println("Initializing I2C devices...");
accelgyro.initialize();
delay(500);
}
В основном цикле получим данные от библиотеки и выведем все переменные в последовательный порт. Будем выводить данные по одному, чтобы лучше проследить за происходящим.
void loop(){
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
Serial.print("a/g:\t");
Serial.println(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);
}
Загрузим программу в Ардуино, откроем плоттер и посмотрим, как работает модуль. В данном случае мы выводим изменения по оси х.
При наклоне данные изменяются от -32к до 32к.
Закомментируем другие строки и проверим работу датчика по всем осям гироскопа и Акселерометра.
С помощью плоттера можно построить графики для каждой оси и посмотреть на изменения в зависимости от движений датчика.
На основе этих данных мы сможем вычислить углы наклона по каждой оси, а также изменение положения датчика в будущих проектах.
Полный текст программы
#include "MPU6050.h"
#include "I2Cdev.h"
#include "Wire.h"
MPU6050 accelgyro;
int16_t ax, ay, az;
int16_t gx, gy, gz;
void setup(){
Wire.begin();
Serial.begin(9600);
Serial.println("Initializing I2C devices...");
accelgyro.initialize();
delay(500);
}
void loop(){
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
Serial.print("a/g:\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);
}
Где купить
Заключение
Мы рассмотрели гироскоп GY-521 и подключили его к Ардуино. Измерили наклоны датчика по осям x,y и z. А также измерили данные от акселерометра.
Спасибо, что дочитали статью до конца.
Пожалуйста, подписывайтесь на блог в яндекс дзен, ставьте лайки и пишите в комментариях, если у вас появились вопросы.
Посмотрите больше уроков и проектов на сайте arcadepub.ru
И подписывайтесь на соц. сети.
Спасибо за внимание, скоро увидимся #arcade pub
Другие интересные статьи
С чего начать знакомство с Ардуино
Ультразвуковой радар
Модуль RFID RC522