Схема подключения довольно проста:

VCC к контакту 5VGND к землеSCL к контакту A4SDA к контакту A5INT к контакту 2

Другие выводы бесполезны для большинства случаев использования. Тем не менее, если вы заинтересованы или хотите узнать больше об этом чипе, я рекомендую вам прочитать документацию здесь: https://www.invensense.com/products/motion-tracking/6-axis/mpu-6050/

Разводка MPU 6050 на плате arduino UNO

Чтение значений x y z

Теперь, когда проводка завершена, пришло время перейти к фактическому программному обеспечению. Чтобы получить значения x y z, нам нужно иметь возможность читать необработанные значения, существует множество руководств о том, как это сделать. Но в конечном итоге это не так уж и полезно, так как вам нужно производить вычисления, чтобы эти значения действительно имели смысл. После долгого копания и опробования различных туториалов, подобных этому одному, я понял, что, хотя делать все с нуля довольно интересно, когда вы хотите создавать что-то быстро, часто лучше использовать библиотеку от того, кто потратил гораздо больше. время, чем вы на проблему.

Кроме того, ни одно из этих руководств, похоже, не учитывало ту часть, где вы должны вычислять смещения и калибровать чертову штуку. И если вы его не откалибруете, то, скорее всего, рано или поздно столкнетесь с проблемами.

Библиотека токнов MPU6050

Пользователь Github tockn создал эту потрясающую библиотеку под названием MPU6050_tockn (поставьте ему звездочку, если можете). Что делает почти все для вас. Более того, он доступен в менеджере библиотек arduino. Так что скачать его очень просто.

Идем дальше и скачиваем библиотеку (я использую 1.5.2). А теперь загрузите этот код:

#include
#include

MPU6050 mpu6050(Wire);

void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true);
}

void loop() {
mpu6050 .update();
Serial.print("angleX: ");
Serial.print(mpu6050.getAngleX());
Serial.print("\tangleY: ");< br /> Serial.print(mpu6050.getAngleY());
Serial.print("\tangleZ : ");
Serial.println(mpu6050.getAngleZ());
}

Через несколько секунд загрузки вы должны получить следующее:

Последовательный монитор с данными X Y Z

Успех ! Имейте в виду, что вы все еще можете столкнуться с проблемами дрейфа, особенно в параметре z. Также после расчета смещений используйте mpu6050.setGyroOffsets(x, y, z); а не вычислять их каждый раз. Это позволит ускорить запуск и снизит вероятность того, что вы испортите расчеты смещения, непреднамеренно переместив его.

И это все для этого руководства о том, как получить значения x y z на MPU-6050. Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы. А если хотите копнуть глубже, то есть еще один пример с большим количеством данных со всех элементов на плате (акселерометр/гироскоп и температура) здесь.