Подключение гироскопа GY-521 MPU-6050 к Arduio: различия между версиями
Материал из me-robotics wiki
Artecoll (обсуждение | вклад) |
|||
| (не показаны 2 промежуточные версии 1 участника) | |||
| Строка 24: | Строка 24: | ||
==== Код-лист для считывания значений гироскопа и акселерометра с датчика MPU6050. ==== | ==== Код-лист для считывания значений гироскопа и акселерометра с датчика MPU6050. ==== | ||
| − | + | <syntaxhighlight lang="c"> | |
| − | + | #include "I2Cdev.h" | |
| − | < | + | #include"MPU6050.h" |
| − | + | #include"Wire.h" | |
| − | |||
| − | |||
| − | |||
| − | |||
MPU6050 accelgyro; | MPU6050 accelgyro; | ||
| − | |||
int16_t ax, ay, az; | int16_t ax, ay, az; | ||
| − | |||
int16_t gx, gy, gz; | int16_t gx, gy, gz; | ||
| − | + | void setup() { | |
| − | void setup() | + | Wire.begin(); |
| − | + | Serial.begin(9600); | |
| − | + | //инициализация | |
| − | + | Serial.println("Initializing I2C devices..."); | |
| − | + | accelgyro.initialize(); | |
| + | delay(100); | ||
} | } | ||
| − | + | 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"); | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | 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.print(gz); | ||
} | } | ||
| + | </syntaxhighlight> | ||
Текущая версия на 02:20, 29 мая 2021
GY-521 – модуль с гироскопом, акселерометром и термометром на базе микросхемы MPU-6050. Данный датчик подойдёт для тех проектов, в которых вам необходимо измерить ориентацию или движения прибора в пространстве, без точных данных о его местоположении.
Модуль GY521:
Характеристики модуля GY-521 (MPU6050)
- Питание: 3,5 – 6 В;
- Ток потребления: 500 мкА;
- Акселерометр диапазон измерений: ± 2 ± 4 ± 8 ± 16g,
- Гироскоп диапазон измерений: ± 250 500 1000 2000 ° / s,
- Интерфейс: I2C.
Подключение к плате Arduino
Порядок подключения:
- Подключаем плату GY521 к плате Arduino по схеме
- Загружаем в плату Arduino код-лист представленный ниже
- Открываем монитор последовательного порта Arduino IDE и смотрим вывод данных гироскопа и акселерометра
- При поворотах датчика данные изменяются.
Код-лист для считывания значений гироскопа и акселерометра с датчика MPU6050.
#include "I2Cdev.h"
#include"MPU6050.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(100);
}
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.print(gz);
}

