Senzor MPU-6050 je velmi populární modul používaný v robotice, dronech nebo IoT projektech. Obsahuje totiž akcelerometr a gyroskop, takže dokáže měřit pohyb i orientaci zařízení v prostoru.
V tomto článku si ukážeme:
- jak připojit MPU-6050 k ESP32
- jak nainstalovat potřebné knihovny
- jak číst data z akcelerometru a gyroskopu
- jak zobrazit hodnoty v Serial Monitoru
Projekt je vhodný jako základ pro projekty jako:
- stabilizace robotů
- drony
- detekce pohybu
- měření orientace zařízení

Co je MPU-6050
MPU-6050 je tzv. IMU senzor (Inertial Measurement Unit), který kombinuje:
- 3osý akcelerometr
- 3osý gyroskop
- teplotní senzor
Díky tomu dokáže měřit 6 stupňů volnosti (6-DOF) – pohyb a rotaci ve všech třech osách.
Akcelerometr měří zrychlení zařízení, například při pohybu nebo vliv gravitace. Gyroskop naopak měří úhlovou rychlost rotace kolem os X, Y a Z.

Hlavní vlastnosti MPU-6050
Senzor nabízí poměrně dobré parametry pro hobby projekty. Akcelerometr může pracovat v několika měřicích rozsazích – konkrétně ±2 g, ±4 g, ±8 g nebo ±16 g, takže je možné měřit jak jemné pohyby, tak rychlé změny zrychlení. Citlivost senzoru se přitom mění podle zvoleného rozsahu.
Gyroskop dokáže měřit úhlovou rychlost v rozsazích ±250, ±500, ±1000 nebo ±2000 stupňů za sekundu, což umožňuje sledovat pomalé i velmi rychlé rotace zařízení.
Senzor obsahuje také integrovaný 16bitový analogově-digitální převodník, který zajišťuje přesnější měření. Komunikace s mikrokontrolérem probíhá pomocí I2C sběrnice, takže zapojení je velmi jednoduché.
Co budete potřebovat
Pro tento projekt budete potřebovat:
- ESP32 vývojovou desku
- senzor MPU-6050
- breadboard
- propojovací vodiče
Výhodou je, že MPU-6050 komunikuje přes I2C, takže stačí jen čtyři vodiče.

Instalace knihoven v Arduino IDE
Nejprve je potřeba nainstalovat knihovny.
Postup:
- otevřete Arduino IDE
- klikněte na Tools → Manage Libraries
- vyhledejte a nainstalujte:
- Adafruit MPU6050
- Adafruit Unified Sensor
- Adafruit BusIO
Tyto knihovny obsahují funkce pro jednoduché čtení dat ze senzoru.


Program pro ESP32 a MPU-6050
Následující program načítá data z:
- akcelerometru
- gyroskopu
- teplotního senzoru
a vypisuje je do Serial Monitoru.
1#include <Adafruit_MPU6050.h>
2#include <Adafruit_Sensor.h>
3#include <Wire.h>
4
5Adafruit_MPU6050 mpu;
6
7void setup() {
8
9 Serial.begin(115200);
10
11 if (!mpu.begin()) {
12 Serial.println("Nepodařilo se najít MPU6050");
13 while (1) {
14 delay(10);
15 }
16 }
17
18 Serial.println("MPU6050 nalezen!");
19
20 mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
21 mpu.setGyroRange(MPU6050_RANGE_500_DEG);
22 mpu.setFilterBandwidth(MPU6050_BAND_5_HZ);
23}
24
25void loop() {
26
27 sensors_event_t a, g, temp;
28 mpu.getEvent(&a, &g, &temp);
29
30 Serial.print("Akcelerometr X: ");
31 Serial.print(a.acceleration.x);
32 Serial.print(" m/s^2 ");
33
34 Serial.print("Y: ");
35 Serial.print(a.acceleration.y);
36 Serial.print(" m/s^2 ");
37
38 Serial.print("Z: ");
39 Serial.print(a.acceleration.z);
40 Serial.println(" m/s^2");
41
42 Serial.print("Gyroskop X: ");
43 Serial.print(g.gyro.x);
44 Serial.print(" rad/s ");
45
46 Serial.print("Y: ");
47 Serial.print(g.gyro.y);
48 Serial.print(" rad/s ");
49
50 Serial.print("Z: ");
51 Serial.print(g.gyro.z);
52 Serial.println(" rad/s");
53
54 Serial.print("Teplota: ");
55 Serial.print(temp.temperature);
56 Serial.println(" °C");
57
58 Serial.println();
59
60 delay(500);
61}Zobrazení dat v Serial Monitoru
Po nahrání programu otevřete Serial Monitor a nastavte rychlost 115200 baud.
Výstup může vypadat například takto:
1Akcelerometr X: 0.12 m/s^2 Y: -0.05 m/s^2 Z: 9.81 m/s^2
2Gyroskop X: 0.01 rad/s Y: -0.02 rad/s Z: 0.00 rad/s
3Teplota: 28.3 °CPokud senzorem pohnete nebo ho otočíte, hodnoty se okamžitě změní.
Kalibrace senzoru
Při úplném klidu by měl gyroskop vracet hodnoty blízké 0. V praxi ale může mít malou odchylku způsobenou šumem senzoru.
Stejně tak u akcelerometru by při nehybném senzoru měla být hodnota:
- osa Z přibližně 9.8 m/s² (gravitace)
- osy X a Y blízko nule.
V reálných projektech se proto často používá kalibrace nebo filtry, které chyby kompenzují.
Jak projekt rozšířit
Tento projekt můžeš snadno rozšířit například o:
- OLED displej pro zobrazení dat
- výpočet roll a pitch úhlů
- vizualizaci orientace v 3D
- použití v balancing robotu
- detekci pádu nebo náklonu
Shrnutí
V tomto návodu jsme si ukázali, jak připojit MPU-6050 k ESP32 a číst data z akcelerometru a gyroskopu pomocí Arduino IDE. Senzor dokáže měřit pohyb i rotaci ve třech osách, což z něj dělá ideální komponentu pro robotiku, drony nebo IoT projekty.
