Точное управление сервоприводом через MPU6050 (Arduino, SG90, MG996R)
Компоненты и материалы
- Arduino UNO — 1 шт.
- Датчик MPU6050 (6 осей: акселерометр + гироскоп) — 1 шт. (модуль GY-521 / DFRobot)
- Сервопривод SG90 — 1 шт. (или MG996R для большего момента)
- Провода-перемычки
Программное обеспечение
- Arduino IDE
Описание проекта
Проект демонстрирует управление сервоприводом по данным гироскопа/акселерометра MPU6050. Наклон датчика по осям X/Y преобразуется в угол поворота сервопривода. Подходит для стабилизации камер, роботизированных рук, инерциального управления.
Подключение
Подключите MPU6050 по I2C: SDA → A4, SCL → A5 (на Arduino UNO). VCC → 3.3В или 5В (в зависимости от модуля), GND → GND. Сервопривод: сигнал → пин 9, питание → 5V/GND Arduino (для SG90) или внешнее питание для MG996R.

Программирование
- Установите библиотеку
GY6050(илиMPU6050_tockn,Wireвстроена). Библиотека GY6050 прилагается к проекту (только скачивание). - Загрузите скетч ниже.
Код
// hammadiqbal12@gmail.com
// https://www.youtube.com/watch?v=Cvtr3LKdqvk
#include <GY6050.h> // библиотека гироскопа
#include <Wire.h>
#include <Servo.h>
Servo myservo;
int X = 0, Y = 0;
GY6050 gyro(0x68); // адрес I2C по умолчанию
void setup() {
Wire.begin();
gyro.initialisation();
delay(100);
myservo.attach(9);
}
void loop() {
// Считываем углы наклона по осям X и Y (-90..90 градусов)
// и маппим на диапазон сервопривода 0..180
X = map(gyro.refresh('A', 'X'), -90, 90, 0, 180);
Y = map(gyro.refresh('A', 'Y'), -90, 90, 0, 180);
myservo.write(Y); // управление сервоприводом по оси Y (наклон вперед/назад)
delay(15);
}
Примечание
Полное понимание работы дает видеоурок (ссылка в коде). Подпишитесь на канал автора для новых проектов.
Производственный процесс
- Создание аудио-эффектов, управляемых датчиками, с набором Satellite CCRMA
- Надежная система учета рабочего времени на Arduino с RFID и Python
- Проект с датчиком DHT11: индикация температуры светодиодами и пьезо-динамиком на Arduino
- Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2"
- Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
- Управление Roomba Create 2 через Arduino и Android: пошаговое руководство
- Бесшовное управление яркостью светодиодов с помощью Bolt IoT и Arduino UNO
- Модуль GPS u-blox LEA-6H 02: Интеграция с Arduino и Python
- Освоение распознавания и синтеза речи на Arduino Due
- Серводвигатели: принцип работы и значение