Преобразование ускорения в угол от датчика MPU6050 I2C
Компоненты и расходные материалы
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Приложения и онлайн-сервисы
![]() |
| |||
![]() |
|
Об этом проекте
Некоторое время назад я опубликовал учебное пособие о том, как подключить акселерометр, гироскоп и датчик компаса MPU9250 на Arduino Nano и запрограммируйте его с помощью Visuino для отправки пакетных данных и отображения их на осциллографе и визуальных приборах.
Акселерометр отправляет ускорение по осям X, Y и Z силы. Однако часто нам нужно преобразовать силы в 3D-угол X, Y, Z . для определения трехмерной ориентации датчика. Очень немногие люди просили такое руководство, и, наконец, я нашел время сделать его.
Некоторые люди также спрашивали, как можно подключить и использовать акселерометр и гироскоп MPU6050 . , поэтому я решил использовать этот модуль для учебника вместо более сложного и дорогого MPU9250 .
В этом руководстве я покажу вам, как легко подключить акселерометр MPU6050 и датчик гироскопа . на Arduino Nano и запрограммируйте его с помощью Visuino чтобы преобразовать ускорение в 3D X, Y, Z угол .
Шаг 1. Компоненты

- Один Arduino совместимая плата (я использую Arduino Nano, потому что она у меня есть, но подойдет и любая другая)
- Один модуль датчика акселерационного гироскопа MPU6050
- 4 женщины перемычки
Шаг 2. Подключите акселерометр и гироскоп MPU6050 к Arduino




- Подключите питание 5 В постоянного тока ( Красный провод ), Земля ( Черный провод ), SCL ( Желтый провод ) и SDA ( Зеленый провод ) к модулю MPU6050 ( Изображение 1 )
- Подключите другой конец провода заземления . ( Черный провод ) на землю штифт Arduino Nano доска ( Изображение 2 )
- Подключите другой конец провода 5 В VCC . ( Красный провод ) на 5 В вывод питания Arduino Nano доска ( Изображение 2 )
- Подключите другой конец кабеля SDA . ( Зеленый провод ) к SDA / аналоговому контакту 4 из Arduino Nano доска ( Изображение 3 )
- Подключите другой конец провода SCL . ( Желтый провод ) к SCL / аналоговому контакту 5 из Arduino Nano доска ( Изображение 3 )
- Изображение 4 показывает, где находится Земля , 5 В Питание, SDA / аналоговый контакт 4 и SCL / аналоговый вывод 5 , контакты Arduino Nano
Шаг 3. Запустите Visuino и выберите тип платы Arduino


Чтобы начать программировать Arduino, вам понадобится Arduino IDE . устанавливается отсюда:http://www.arduino.cc/.
Убедитесь, что вы установили 1.6.7 или более позднюю версию, иначе это руководство не будет работать!
Visuino :https://www.visuino.com также необходимо установить.
- Запустите Visuino как показано на первом рисунке
- Нажмите " Инструменты . "кнопка на Arduino компонент ( Изображение 1 ) в Visuino
- В открывшемся диалоговом окне выберите Arduino Nano . как показано на рисунке 2
Шаг 4. В Visuino:добавьте и подключите MPU9650 и ускорение к угловым компонентам




Сначала нам нужно добавить компоненты для управления датчиком MPU6050 и преобразовать ускорение X, Y, Z в 3D X, Y, Z Angle:
- Введите " 6050 . "в поле" Фильтр "на панели инструментов компонентов, затем выберите" Акселерометрический гироскоп MPU6000 / MPU6050 I2C "компонент ( Изображение 1 ) и поместите его в область дизайна ( Изображение 2 )
- Введите " угол . "в поле" Фильтр "на панели инструментов компонентов, затем выберите" Ускорение до угла ". "компонент ( Изображение 2 ) и поместите его в область дизайна ( Изображение 3 )
- Щелкните в строке " Out ". "Коробка" Акселерометра "поле, содержащее контакты ускорения X, Y, X AccelerometerGyroscope1 компонент, чтобы начать одновременное подключение всех выводов Out ( Рисунок 3 )
- Наведите указатель мыши на значок " X "входной контакт" В "поле AccelerationToAngle1 компонент. Visuino автоматически расправит провода, чтобы они правильно соединились с остальными контактами ( Рисунок 3 )
- Подключите " Выход "контакт АкселерометрГироскоп1 компонент к " In "контакт I2C канал Arduino компонент ( рисунок 4 )
Шаг 5. В Visuino:добавьте компонент пакета и 3 двоичных аналоговых элемента и соедините их



Чтобы отправить данные всех каналов через последовательный порт из Arduino, мы можем использовать компонент Packet, чтобы объединить каналы вместе и отобразить их в области действия и датчиках в Visuino . :
- Введите " пакет . "в поле" Фильтр "на панели инструментов компонентов, затем выберите компонент" Синусоидальный аналоговый генератор "( Рисунок 1 ) и поместите его в область дизайна
- В Инспекторе объектов разверните " Маркер заголовка . "свойство ( Изображение 2 )
- В Инспекторе объектов нажмите " ... "кнопка ( Изображение 2 )
- В редакторе байтов введите числа, например 55 55 . ( Изображение 3 )
- Нажмите кнопку ОК . для подтверждения и закрытия редактора
Шаг 6. В Visuino:добавьте 3 двоичных аналоговых элемента к компоненту пакета и соедините их





Чтобы отправить данные всех каналов через последовательный порт из Arduino, мы можем использовать компонент Packet, чтобы объединить каналы вместе и отобразить их в области действия и датчиках в Visuino . :
- Нажмите " Инструменты . "кнопки Пакет1 компонент ( Изображение 1 )
- В разделе « Элементы "Редактор выберите" Двоичный аналог ", А затем нажмите кнопку" " 3 раза ( Изображение 2 ), чтобы добавить 3 Аналоговые элементы ( Рисунок 3 )
- Щелкните в строке " Out ". "Коробка" Акселерометра "Поле, содержащее контакты AccelerationToAngle1 компонент, чтобы начать подключение всех выводов Out сразу ( Рисунок 4 )
- Наведите указатель мыши на " В "вывод" Elements.Analog (Binary) 1 "элемент Packet1 компонент. Visuino автоматически расправит провода, чтобы они правильно подключились к остальным контактам ( Рисунок 4 )
- Подключите " Выход "выходной контакт Packet1 компонент " In "входной контакт" Последовательный [0] "канал" Arduino "компонент ( Изображение 5 )
Шаг 6. Сгенерируйте, скомпилируйте и загрузите код Arduino


- В Visuino , Нажмите F9 или нажмите кнопку, показанную на Рисунке 1 для генерации кода Arduino и открытия IDE Arduino
- В Arduino IDE , нажмите Загрузить кнопку, чтобы скомпилировать и загрузить код ( Изображение 2 )
Шаг 7. И играйте ...





Вы можете увидеть подключенные и работающие акселерометр MPU6050 и датчик гироскопа . на изображении 1 .
- В Visuino выберите последовательный порт, а затем нажмите " Формат: "и выберите Пакет1 . ( Изображение 2 )
- Нажмите кнопку « Подключиться . "кнопка ( Изображение 2 )
- Если вы выберете " Область ", вы увидите, что область действия отображает углы X, Y, Z с течением времени ( Рисунок 3 )
- Если вы выберете " Инструменты "вы увидите вкладку Датчики показывает ту же информацию ( Изображение 4 )
Вы можете увидеть датчик в действии на видео .
Поздравляем! Вы создали Visuino проект, конвертирующий ускорение в угол из акселерометра MPU6050 и датчика гироскопа .
На изображении 5 вы можете увидеть полную версию Visuino диаграмма.
Также прилагается Visuino проект, который я создал для этого урока. Вы можете скачать и открыть его в Visuino . :https://www.visuino.com
Код
- MPU6050AccelerationToAngleTutorial
MPU6050AccelerationToAngleTutorial Arduino
Полный проект VisuinoБез предварительного просмотра (только загрузка)
Производственный процесс
- Работа датчика акселерометра и приложения
- Оптимизация высокоточного определения наклона / угла:основы акселерометра
- Регистратор температуры Raspberry Pi
- Цифровой датчик барометрического давления BMP180 I2C
- Отправка данных датчика от одного Arduino к другому с помощью Firebase
- Мониторинг CO2 с помощью датчика K30
- Какой ты рост?
- Емкостной датчик отпечатков пальцев с Arduino или ESP8266
- Башня датчика облаков Arduino
- Водяной пистолет с датчиком движения