Ардуино гироскоп: 3-х осевой гироскоп и акселерометр GY-521 (MPU 6050): описание, подключение, схема, характеристики

Содержание

MPU-6050 3-х осевой аналоговый гироскоп + 3-х осевой акселерометр для Arduino

Характеристики:
  • Микросхема: MPU-6050
  • Напряжение питания: 3 — 5 В
  • Цифровой интерфейс: I2C 400 кГц
  • Формат выходных данных: углы Эйлера, кватернионы, матрица поворота или необработанные данные
  • Встроенный датчик температуры
  • Рабочий диапазон гироскопа: ±250, ±500, ±1000, и ±2000 угл.град/с
  • Рабочий диапазон акселерометра: ±2, ±4, ±8 и ±16 g
  • Чип встроенный 16-битный АЦП, 16 бит вывода данных
  • Расстояние между контактами: 2,54
  • Размеры: 2,0 х 1,6 х 0,3 см

Переглянути відгуки (0)
С этим товаром покупают:

MPU-6050 3-х осевой аналоговый гироскоп + 3-х осевой акселерометр для Arduino содержит в себе сразу два датчика: трехосевой гироскоп и трехосевой акселерометр. Акселерометр определяет ускорение, а гироскоп — ориентацию в пространстве тела, на котором он установлен.

Принцип работы MPU-6050 3-х осевого аналогового гироскопа + 3-х осевого акселерометра для Arduino . Гироскоп представляет собой устройство, реагирующее на изменение углов ориентации контролируемого тела. Акселерометр — это устройство, которое измеряет проекцию кажущегося ускорения, то есть разницы между истинным ускорением объекта и гравитационным ускорением. Таким образом, гироскоп реагирует на изменение в пространстве независимо от направление движения, с помощью акселерометра же может измерять линейные ускорения предмета, а так же и искусственно рассчитываемое расположение предмета в пространстве.

В данном устройстве гироскоп используют в паре с акселерометром, т.к. данные от обоих датчиков дополняют и корректируют друг друга.

Данные измерений датчиков можно считывать как из регистров хранения, так и пользоваться функциями FIFO микросхемы MPU-6050.

Микросхема

MPU-6050 содержит Digital Motion Processor (DMP), он необходим для того, чтобы обрабатывать данные, получаемые из датчиков гироскопа и акселерометра. Все это делается для того, чтобы повысить точность получаемых данных.

С помощью MPU-6050 3-х осевого аналогового гироскопа + 3-х осевого акселерометра для Arduino можно определять положение объекта в пространстве, а также движение объекта или его столкновение. Например, диагностировать падение объекта или толчок о преграду, чтобы обходить её.

Область применения MPU-6050 3-х осевого аналогового гироскопа + 3-х осевого акселерометра для Arduino достаточно широка. Данный модуль можно использовать для координации различных устройств — от простого детектора движения до системы ориентации различных роботов или управления движениями каким-либо устройствами. Кроме того, MPU-6050 3-х осевой аналоговый гироскоп + 3-х осевой акселерометр для Arduino часто применяют для стабилизации полета моделей летательных аппаратов, что возможно по причине совместного использования гироскопа и акселерометра.

Эмбиент машина из ардуино и двух гироскопов / Habr

Идея была довольно проста: сделать цилиндр из картона с прорезями, внутрь поместить фонарь, повесить цилиндр за нитки к потолку, сверху разместить ардуино с подключённым датчиком гироскопа с элементарной прошивкой, которая читает значения датчика в цикле и шлёт их по http на сервер на ноуте. Дальше использовать эти данные чтобы поразвлекаться с

генеративной музыкой

.

Для незнакомых с этим направлением рекомендую: https://teropa.info/loop и https://teropa.info

О технической части проекта рассказывать особенно нечего, все тривиально — взял две Arduino «Wemos esp8266 with battery pack» там уже встроенный контроллер заряда и производитель обещает что может работать часов 13 от батареи 18650, чего мне более чем достаточно. Кстати, платы эти не рекомендую, USB разъем закреплен крайне ненадежно и выламывается на раз.

В качестве датчика гироскопа использовал L3G4200D, он показался менее шумным чем более распространенные датчики на основе MPU6050.

Исходный код на github (node.js и библиотека node-midi (байндинг к RtMidi)). Кроме, собственно, генерирования MIDI нот, значения с гироскопов отдаются как MIDI Control Change, что позволяет их связать в с любой крутилкой в синтезаторе.

Код весьма безобразен, поскольку делался в после рабочее время и цель была просто развлечься, а не качество.

Поскольку на ноутбуке использую линукс и ноутбук достаточно старый, вариантов чем управлять с помощью midi было немного, поиграл с VCV Rack — очень крутая штука, но не понравилась требовательностью к ресурсам, поскольку в планах перенести все это на Raspberry. В результате остановился на SunVox.

Итак, одна из первых попыток собрать все вместе:

Более осмысленная попытка сделать что-то интересное на основе клеточного автомата

правило 30

:

Тоже клеточные автоматы и

гамма Хираёши

:

Еще один вариант,

евклидовские ритмы

, немного шума и много-много ревера:

arduino gyroscope

 

[adrotate banner =”7″]
 
Также со средой разработки обработки, мы сделаем несколько практических приложений, используя датчики, сначала давайте кратко объясним, как каждый из этих микро, электромеханические системы или датчик MEMS работают. Мы начнем с акселерометра, который измеряет ускорение, измеряя изменение емкости.. Его микроструктура выглядит примерно так: он имеет массу, прикрепленную к экрану, который ограничен перемещением в одном направлении, и фиксированные внешние пластины. Итак, когда будет применено ускорение в определенном направлении, масса будет двигаться, и емкость между пластинами и массой изменится. Это изменение емкости будет измеряться в процессе, и оно будет соответствовать определенному значению ускорения.. Далее идет гироскоп, который измеряет угловую скорость с помощью эффекта Кориолиса, когда масса движется в определенном направлении., с определенной скоростью и когда будет применяться внешняя угловая скорость, как показано зеленой стрелкой, произойдет сила, как показано синей стрелкой, что вызовет перпендикулярное смещение массы, так похожее на акселерометр. Это смещение вызовет изменение емкости., который будет измеряться процессом и будет соответствовать определенной угловой скорости. Микроструктура гироскопа выглядит примерно так: масса, которая постоянно движется или колеблется, и когда будет применяться внешняя угловая скорость, гибкая часть массы переместится и произведет перпендикулярное смещение. Ладно, теперь давайте объясним, как работает магнитометр. Он измеряет магнитное поле земли с помощью холловского ТВС, магнита или резистивного эффекта..

Фактически, почти 90 процентов датчиков на рынке используют эффект Холла, и вот как он работает. Если у нас есть проводящая пластина вроде этой, и мы устанавливаем ток, чтобы течь к нему, электроны будут течь прямо с одной стороны пластины на другую.. Сейчас, если мы поднесем к пьесе какое-нибудь магнитное поле, мы нарушим прямой поток, и электроны отклонятся к одной стороне пластины, а положительные полюса — к другой стороне пластины.. Это означает, что если мы теперь поместим зеркало между этими двумя сторонами, мы получим напряжение, зависящее от магнитного поля, сила и ее направление. Остальные десять процентов датчиков на рынке используют магнит или резистивный эффект.. В этих датчиках используются материалы, чувствительные к магнитному полю., обычно состоит из железа и никеля. Итак, когда эти материалы подвергаются воздействию магнитного поля, они меняют свое сопротивление. Ладно, теперь давайте подключим эти ножницы к плате Arduino и воспользуемся ими.. Например, Я буду использовать G Yad, коммутационная плата, который имеет следующие: датчики: DXL 345 Q, осевой акселерометр, LG, g4, 200 D, 3 осевой гироскоп, MC 588, 3, L, 3, осевой магнитометр, а также барометр и термометр, которые мы не будем использовать в этом руководстве. Сначала подключим плату к Arduino.. Эта плата использовала протокол связи I Square C, это означает, что мы можем использовать все датчики, всего лишь 2 провода.

Так, чтобы обеспечить связь между Arduino и датчиками, нам нужно знать их уникальные адреса устройств и адреса их внутренних регистров для получения из них данных. Эти адреса можно найти в таблице данных датчика, и я прикрепил ссылки на каждый из них на своем веб-сайте для получения более подробной информации., как это общение работает. Вы можете проверить мой учебник по коммуникации I square C. Ok, теперь давайте посмотрим код для получения данных с датчиков. Сначала мы начнем с акселерометра, нам нужно включить библиотеку проводов arduino и определить адреса регистров датчика в разделе настройки. Нам нужно запустить библиотеку проводов и запустить последовательную связь., поскольку мы будем использовать серийный монитор для отображения результатов. Также. Здесь нам нужно активировать датчик или включить измерение, отправив соответствующее сообщение «до свидания» в регистр управления питанием, и вот. Как мы это делаем, используя функцию начала передачи точки провода, мы ноги два, какой датчик мы будем говорить о трехосном акселерометре в этом случае, тогда, используя функцию записи wire dot, мы сообщаем, с каким внутренним регистром мы будем разговаривать. После этого, мы отправим соответствующий адрес для включения измерения с использованием точки провода в функции передачи. Мы закончим передачу, и данные будут переданы в регистры.. Сейчас, в секции петли, нам нужно прочитать данные для каждой оси. Начнем с оси x, так что сначала мы выберем, о каких регистрах будем говорить.

Два внутренних регистра оси x. В таком случае, тогда, используя запрос точки провода из функции. Мы запросим переданные данные или два байта из двух регистров.. Функция доступности точки провода вернет количество байтов, доступных для извлечения, и если это число совпадает, с нашими запрошенными байтами, в нашем случае два байта с использованием проводной функции чтения точек, мы будем читать байты из двух регистров оси x: выходные данные из двух регистров — это два дополнения с x0 как младший байт и x1 как самый старший байт. Используя это выражение здесь, мы можем преобразовать эти байты в значения с плавающей запятой от минус один до плюс один, в зависимости от направления оси x. Относительно ускорения земли или силы тяжести, мы повторим эту процедуру для двух других осей, и в конце мы распечатаем эти значения на. Последовательный монитор вот как они выглядят. Ладно, теперь для получения данных с гироскопа, у нас будет код, аналогичный предыдущему. Итак, сначала мы должны определить регистр, адреса и знаковые переменные для данных. В разделе настройки, надо проснуться и перевести датчик в нормальный режим, используя регистр управления один, а также выбрать чувствительность датчика. Для этого примера, Я выберу 2000 Режим чувствительности DPS или градусов в секунду. В участке петли аналогично акселерометру, мы будем читать данные для оси x yampz сейчас.

Необработанные данные должны быть преобразованы в значения углов из таблицы данных датчика.. Мы видим, что для 2000 Режим чувствительности DPS или градусов в секунду соответствует 70 мил согласен в секунду или цифровая единица. Это означает, что мы должны умножить выходные данные строки на нулевую точку.: нуль, семь, чтобы получить угловую скорость в градусах в секунду. Сейчас, если умножить угловую скорость на время, это даст нам значение угла. Итак, нам нужно рассчитать временной интервал каждого участка цикла, и мы можем сделать это, используя функцию moolies вверху и внизу отрезка цикла., и мы сохраним его значение в эту переменную DT. Итак, для каждого выполненного цикла, мы рассчитаем угол и добавим его к окончательному значению угла. Проделаем то же самое для двух других осей и в конце напечатаем. Вот как выглядят результаты на последовательном мониторе. Перо показывает ось x датчика., поэтому, если я поверну датчик вокруг этой оси, мы можем видеть изменение угла на последовательном мониторе, имейте в виду, что результаты гироскопа нестабильны, потому что они дрейфуют с течением времени. Так, чтобы получить точные углы, мы должны объединить его с акселерометром, вот здесь, пример объединения данных гироскопа и акселерометра, а также бесплатный фильтр для сглаживания результатов.

Таким образом, данные с датчиков и платы Arduino отправляются на обработку, и они используются для управления ориентацией трехмерного объекта.. Вы можете найти более подробную информацию и исходные коды для этого примера на моем веб-сайте.. Теперь осталось посмотреть, как снова получить данные с магнитометра.. Воспользуемся техникой, аналогичной предыдущей.. Первый, нам нужно определить адреса регистров и в секции настройки установить датчик в непрерывный режим измерения в секции петли. Мы получим необработанные данные для каждой оси тем же способом, что и для предыдущих датчиков.. Теперь нам нужно преобразовать необработанные данные в магнитное поле., значение или единицы Гаусса. Из паспорта датчика, мы видим, что режим чувствительности по умолчанию 0.92 Национальный, Гаусс на цифру. Это означает, что нам нужно умножить данные строки на нулевую точку.: нуль: нуль, нуль 92 чтобы получить магнитное поле Земли в единицах Гаусса. В конце, мы напечатаем значения на серийном мониторе. Здесь я отметил Северный полюс на бумаге, а ручка показывает ось Y датчика.. Сейчас, если я наведу ось Y на Северный полюс и заполню датчик вокруг 45 градусы, Я получу максимум около нуля целых шесть десятых коров. Угол наклона, зависит от вашего местоположения. Например, если вы на экваторе, вам не нужно наклонять датчик, потому что наклон в этом месте равен нулю или если вы находитесь на Северном полюсе, вам нужно будет сказать датчику 90 градусы.

Вот классное приложение датчика.

 
 

[adrotate banner =”1″]

[mam_video id = eqZgxR6eRjo]

 

 

[adrotate banner =”2″]

 

[mam_tag id = 3891]

 

 

[adrotate banner =”3″]

 

 

 

  • Опубликовано в четверг, сентябрь 19, 2019

    Плата Spartan Edge Accelerator, совместимая с Arduino, сочетает в себе ESP32 & Программное обеспечение Spartan-7 FPGA CNX … Продолжить чтение »
  • Отправлено в среду, сентябрь 25, 2019

  • Отправлено в среду, сентябрь 25, 2019

 

 

 

[adrotate banner =”4″]

 

 

 

 

[adrotate banner =”5″]

 

 

👋 Хотите, чтобы принести Тони Старк, как жест управления для ваших проектов? Узнайте, как с BLE поддержкой WiFi МКРА 1010 и Nano 33 BLE доски Sense, используя библиотеку ArduinoBLE.

Ардуин-йо-хо-хо! Ярмарочной любимый, пиратский корабль представляет собой интересный способ, чтобы исследовать колебания маятника. Сколько удовольствия, ты спрашиваешь? Доступ к нашей лаборатории физики Science Kit Предварительный просмотр и убедитесь сами: http://bit.ly/2oC6L0Q

🔬 Теперь, когда вы получили ваши ноги мокрые, погружение в комплект и наслаждаться все девять экспериментов. Сегодня ваша: http://bit.ly/2MnQ7fr

Самый простой способ сделать робота для управления жестами https://t.co/Sx9OqnYtuA
#arduino #robot #technology #electronics #robotocs #gyroscope #youtube #subscribe

HTTPS://t.co/Sx9OqnYtuA
RT @AllArduino: #arduino https://t.co/9lvzGhgURT Лучшая Arduino для настройки гироскопа и датчика пульса и отправки данных по Wi-Fi (OSC)

HTTPS://t.co/9lvzGhgURT


 

[adrotate banner =”6″]

 

Измерение угла наклона с помощью гироскопа/акселерометра MPU6050 и Arduino


Обзор

В этом посте мы узнаем, как измерить угол наклона с помощью MPU6050 и Arduino. Это можно сделать, просто подключив к MPU6050 6-осевой датчик гироскопа/акселерометра. Акселерометр посылает силы ускорения X, Y и Z. Нам нужно преобразовать силы в трехмерные углы X, Y, Z, чтобы определить трехмерную ориентацию датчика.

Гироскоп измеряет скорость вращения или скорость изменения углового положения во времени по осям X, Y и Z.Он использует технологию MEMS и эффект Кориолиса для измерения. Выходные данные гироскопа указаны в градусах в секунду, поэтому, чтобы получить угловое положение, нам просто нужно проинтегрировать угловую скорость.

Акселерометр может измерять гравитационное ускорение по трем осям, и, используя некоторую тригонометрическую математику, мы можем вычислить угол, под которым расположен датчик. Таким образом, если мы объединим или объединим данные акселерометра и гироскопа MPU6050, мы сможем получить очень точную информацию об ориентации датчика.Следовательно, MPU6050 с Arduino может измерять угол наклона.

Проверьте это сообщение:
1. Управление двигателем постоянного тока с использованием датчика гироскопа/акселерометра MPU6050 и Arduino
2. Монитор угла наклона ESP8266 и MPU6050 на IoT Blynk


Необходимые компоненты

1. Плата Arduino

2. Датчик гироскопа/акселерометра MPU6050

3. Макетная плата

4. Соединительные провода


MPU6050 Датчик гироскопа/акселерометра
Введение:

Датчик InvenSense MPU-6050 содержит акселерометр MEMS и гироскоп MEMS в одном чипе.Он очень точен, так как содержит 16-битное аналогово-цифровое преобразование для каждого канала. Поэтому он захватывает каналы x, y и z одновременно. Датчик использует шину I2C для взаимодействия с Arduino.

MPU-6050 стоит не дорого, особенно с учетом того, что сочетает в себе и акселерометр, и гироскоп.

MPU6050 Распиновка:

Модуль MPU-6050 имеет 8 контактов:
INT: Контакт цифрового выхода прерывания.
AD0: Адрес ведомого устройства I2C, контакт LSB.Это 0-й бит в 7-битном ведомом адресе устройства. Если подключен к VCC, то он считывается как логическая единица и меняется адрес ведомого.
XCL: Контакт вспомогательных последовательных часов. Этот вывод используется для подключения другого контакта SCL датчиков с интерфейсом I2C к MPU-6050.
XDA: Дополнительный контакт последовательных данных. Этот контакт используется для подключения другого контакта SDA датчиков с интерфейсом I2C к MPU-6050.
SCL: вывод серийных часов. Подключите этот вывод к выводу SCL микроконтроллера.
SDA: Вывод серийных данных. Подключите этот вывод к выводу SDA микроконтроллера.
GND: Контакт заземления. Подключите этот контакт к заземлению.
VCC: Контакт питания. Подключите этот контакт к источнику питания +5 В постоянного тока.

3-осевой гироскоп:

MPU6050 состоит из 3-осевого гироскопа с технологией микроэлектромеханической системы (MEMS). Он используется для определения скорости вращения по осям X, Y, Z, как показано на рисунке ниже.

3-осевой акселерометр:

MPU6050 состоит из 3-осевого акселерометра с микроэлектромеханической технологией (MEM). Он использовался для определения угла наклона или наклона по осям X, Y и Z, как показано на рисунке ниже.


Принципиальная схема и подключение

MPU6050 имеет выводы I2C. Поэтому его нужно подключить к контактам I2C Arduino. Поэтому подключите контакты SDA MPU6050 к A4 Arduino и SCL к A5. Подайте вход 5 В на MPU6050, а также подключите GND, как показано на рисунке ниже.


Исходный код/программа

Ниже приведен код для измерения угла наклона с помощью MPU6050 и Arduino. Скопируйте код и загрузите его на плату Arduino.

1

2

2

3

4

5

6

70007

8

11

12

13

12

13

14

15

16

17

18

19

20

20

21

22

23

240007 26

25

26

27

28

29

30

31

30

31

32

33

34

35

36

37

38

39

39

40

41

42

42

43

44

45

46

47

#include

const int MPU_addr=0x68;

int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;

int minVal=265;

инт maxVal=402;

двойной х;

двойной у;

двойной г;

void setup(){

Wire.begin();

Wire.beginTransmission(MPU_addr);

Wire.write(0x6B);

Wire.write(0);

Wire.endTransmission(true);

Последовательный.начало(9600);

}

void loop(){

Провод.начало передачи (MPU_addr);

Wire.write(0x3B);

Wire.endTransmission(false);

Wire.requestFrom(MPU_addr,14,true);

AcX=Wire.read()<<8|Wire.read();

AcY=Wire.read()<<8|Wire.read();

AcZ=Wire.read()<<8|Wire.read();

int xAng = map(AcX,minVal,maxVal,-90,90);

int yAng = map(AcY,minVal,maxVal,-90,90);

int zAng = map(AcZ,minVal,maxVal,-90,90);

x= RAD_TO_DEG * (atan2(-yAng, -zAng)+PI);

y= RAD_TO_DEG * (atan2(-xAng, -zAng)+PI);

z= RAD_TO_DEG * (atan2(-yAng, -xAng)+PI);

Серийный номер.print(«УголX= «);

Serial.println(x);

Serial.print(«AngleY= «);

Serial.println(y);

Serial.print(«AngleZ= «);

Serial.println(z);

Serial.println(«———————————————————«) ;

задержка(400);

}


Вывод/результаты

Итак, как только код загружен, вы можете нажать на последовательный монитор, чтобы проверить выходные данные. Вам нужно наклонить гироскоп/акселерометр MPU6050, чтобы определить угловое положение осей X, Y и Z.

Вы также можете проверить этот проект: Измерение угла наклона с помощью микроконтроллера MPU6050 и STM32

Arduino 5-минутные уроки: Урок | Сообщество RobotShop

Меню уроков:

Урок 7 Оборудование:
  1. Компьютер/ноутбук или нетбук
  2. Ардуино Микроконтроллер
  3. Адаптер USB-Serial (если ваш микроконтроллер не имеет USB-порта)
  4. Соответствующий USB-кабель (платы Arduino получают питание от USB-порта — батарей пока нет)
  5. Аналоговый акселерометр, гироскоп и/или IMU
  6. Разъемы
  7. (между IMU и Arduino

Акселерометры, гироскопы и IMU — невероятно полезные маленькие датчики, которые все больше и больше интегрируются в электронные устройства вокруг нас.Эти датчики используются в сотовых телефонах, игровых консолях, таких как беспроводной пульт дистанционного управления Wii, игрушках, самобалансирующихся роботах, костюмах для захвата движения и многом другом. Акселерометры используются в основном для измерения ускорения и наклона, гироскопы используются для измерения угловой скорости и ориентации, а IMU (которые сочетают в себе как акселерометры, так и гироскопы) используются для получения полного представления об ускорении, скорости, положении, ориентации и многом другом устройства.

При выборе акселерометра, гироскопа или IMU также важно учитывать тип выхода; в зависимости от типа датчика показания могут выводиться как:

  • Последовательные данные (вывод Tx)
  • I2C (ПДД, СКЛ)
  • Аналог
  • ТТЛ
  • другие…

В этом уроке мы рассмотрим только аналоговый выход. Показанный ниже код включает в себя выходной сигнал для датчика с одной осью и коэффициенты для остальных значений.

Акселерометры измеряют ускорение по одной-трем линейным осям (x, y, z). Акселерометр с одной осью может измерять ускорение в любом направлении. Это может быть хорошо для ракеты, удара, поезда или другого сценария, когда устройство действительно движется в одном основном направлении.Зная ускорение и время, можно с помощью математики найти расстояние, пройденное объектом. На рынке все меньше и меньше одно- и двухосевых акселерометров, потому что трехосевой акселерометр может делать гораздо больше. Благодаря низкой себестоимости изготовления трехосные акселерометры ненамного дороже одно- или двухосных.

Ускорение свободного падения является постоянной величиной и фактически может быть измерено с помощью акселерометра. При размещении параллельно земле ускорение силы тяжести будет «ощущаться» только одной осью.Однако при наклоне это ускорение будет выглядеть как компоненты двух (или трех) осей. Вы можете получить представление о том, как использовать акселерометр для измерения наклона здесь и здесь.

Подключите акселерометр к Arduino; каждый выходной контакт подключается к одному из аналоговых контактов на Arduino, контакт Vin подключается к контакту 5 В на Arduino (прочитайте руководство пользователя, чтобы убедиться, что контакт Vin имеет напряжение 5 В, а не 3,3 В), а контакт GND подключается к контакт GND на Arduino. Обратите внимание, что нет необходимости в дополнительной электронике! Далее откройте пример скетча File -> Examples -> Sensors -> ADXL3xx.Загрузите в Arduino и посмотрите, как изменятся значения.

Чтобы правильно выбрать акселерометр, учитывайте максимальное линейное ускорение, которому будет подвергаться датчик. Если вы планируете добавить акселерометр к маленькому мобильному роботу, вы, скорее всего, будете использовать акселерометр 2g (даже это, вероятно, излишне), тогда как, если вы прикрепляете его к ракете, акселерометр 16g, вероятно, будет лучшим выбором. При подключении к 10-битному АЦП акселерометр 2g будет иметь точность 2/1024 = 0.002 г, а акселерометр 16 г будет иметь точность 16/1024 = 0,0156. Поэтому, если вам нужен только диапазон 2 г, но вы покупаете акселерометр 16 г, у вас будет только около 128 возможных показаний вместо полных 1024. И наоборот, если вы выберете акселерометр 2 г, когда вам действительно нужен 16 г, вы получите много «максимальных (1024)» показаний, так как ускорение «зашкаливает».

Гироскопы измеряют угловую скорость в α, β, γ (см. изображение ниже). Гироскопы можно использовать для стабилизации, а также для изменения направления и ориентации.В отличие от акселерометров, гироскопы не имеют фиксированной точки отсчета, а только измеряют изменения. Чтобы правильно выбрать гироскоп для ваших нужд, примите во внимание максимальную угловую скорость изменения (градусы в секунду), которой будет подвергаться ваш продукт. Пульт дистанционного управления, скорее всего, будет вращаться со скоростью менее 1 оборота в секунду (360 градусов в секунду), в то время как ракета, падающая с неба, может вращаться со скоростью 1500 градусов в секунду. При подключении к тому же микроконтроллеру (например, 10 бит) гироскоп 360 градусов/с будет иметь точность 360/1024 = 0.35 град/с, тогда как гироскоп на 1500 град/с будет иметь точность 1500/1024 = 1,46 град/с. Поэтому, если вы выбрали гироскоп на 1500 град/с, когда вам нужен был только гироскоп на 360 град/с, вы получите только около 245 показаний, а не 1024.

Предоставлено: Википедия

IMU (инерциальный измерительный блок) обычно состоит из акселерометра и гироскопа и используется для измерения ориентации объекта, скорости и т. д. Часто для повышения точности включаются дополнительные датчики (магнитные, температурные).Количество «степеней свободы» указывает на количество различных осей, измеряемых чипом. Например, объединение трехосного акселерометра с двухосевым гироскопом будет рассматриваться как IMU с 3 + 2 = 5 степенями свободы.

Дополнительные соображения

При использовании акселерометров, гироскопов или инерциальных измерительных блоков (IMU) для определения положения в пространстве важно учитывать, что существует несколько дополнительных факторов, влияющих на показания, основным препятствием является частота дискретизации.Микроконтроллерам требуется определенное время для считывания значений, предоставляемых им датчиком, и из-за этого значения между этими показаниями теряются. Существует несколько математических методов (популярным выбором является фильтр Калмана), которые пытаются это компенсировать. Второй источник ошибки заключается в том, что на показания часто влияют колебания температуры. В большинстве спецификаций, связанных с микроэлектромеханическими системами (МЭМС), делается попытка описать, как температура влияет на выходной сигнал.

Хотите узнать больше? Начните с материалов, бесплатно предоставляемых Analog Devices, производителями МЭМС-акселерометров, гироскопов и других датчиков.

Акселерометр, гироскоп и руководство по покупке IMU

Акселерометры и гироскопы становятся все более популярными в бытовой электронике, так что, возможно, пришло время добавить их в свой проект! Прокрутив категорию датчиков SparkFun, вы увидите огромный список этих датчиков, которые могли бы идеально подойти для вашего следующего проекта, если бы вы только знали, что они делают, и какой из них лучше всего подходит для вашего проекта.Цель этого руководства по покупке — научить вас говорить на том же языке, что и описания этих датчиков, и помочь вам выбрать тот, который лучше всего подходит для ваших нужд.

Акселерометры

Что такое акселерометр? Ну и разгон. Вы знаете… как быстро что-то ускоряется или замедляется. Вы увидите ускорение, отображаемое либо в метрах в секунду в квадрате (м/с 2 ), либо в перегрузке (g), что составляет около 9,8 м/с 2 (точное значение зависит от вашей высоты и масса планеты, на которой вы находитесь).

Акселерометры используются для определения как статического (например, силы тяжести), так и динамического (например, внезапные пуски/остановки) ускорения. Одним из наиболее широко используемых приложений для акселерометров является определение наклона. Поскольку на них влияет ускорение силы тяжести, акселерометр может сказать вам, как он ориентирован относительно поверхности Земли. Например, в iPhone от Apple есть акселерометр, который позволяет узнать, находится ли он в портретном или ландшафтном режиме. Акселерометр также может использоваться для определения движения.Например, акселерометр в WiiMote от Nintendo можно использовать для распознавания ударов справа и слева от теннисной ракетки или бросков шара для боулинга. Наконец, акселерометр также можно использовать для определения того, находится ли устройство в состоянии свободного падения. Эта функция реализована в нескольких жестких дисках: при обнаружении падения жесткий диск быстро отключается для защиты от потери данных.

Теперь, когда вы знаете, что они делают, давайте рассмотрим, на какие характеристики следует обращать внимание при выборе акселерометра:

  • Диапазон — Верхний и нижний пределы того, что может измерять акселерометр, также известен как его диапазон.В большинстве случаев меньший диапазон полной шкалы означает более чувствительный выходной сигнал; так что вы можете получить более точные показания акселерометра с низким диапазоном полной шкалы.
    Вы хотите выбрать диапазон измерения, который лучше всего подходит для вашего проекта, если ваш проект будет подвергаться только ускорениям от +2g до -2g, акселерометр с диапазоном ±250g не даст вам большой точности, если вообще даст.
    У нас есть хороший ассортимент акселерометров с максимальным диапазоном от ±1g до ±250g. Большинство наших акселерометров настроены на жесткий максимальный/минимальный диапазон, однако некоторые из более сложных акселерометров имеют выбираемые диапазоны.
  • Интерфейс — это еще одна из наиболее важных характеристик. Акселерометры будут иметь аналоговый, широтно-импульсный (ШИМ) или цифровой интерфейс.
    • Акселерометры с аналоговым выходом создают напряжение, прямо пропорциональное измеренному ускорению. При 0g аналоговый выход обычно находится примерно в середине подаваемого напряжения (например, 1,65 В для датчика 3,3 В). Как правило, с этим интерфейсом проще всего работать, так как аналого-цифровые преобразователи (АЦП) реализованы в большинстве микроконтроллеров.
    • Акселерометры с ШИМ-интерфейсом будут генерировать прямоугольную волну с фиксированной частотой, но рабочий цикл импульса будет меняться в зависимости от измеряемого ускорения. Это довольно редко; у нас есть только один в нашем каталоге.
    • Цифровые акселерометры
    • обычно имеют последовательный интерфейс, будь то SPI или I²C. В зависимости от вашего опыта, их может быть труднее всего интегрировать с вашим микроконтроллером. Тем не менее, цифровые акселерометры популярны, потому что они обычно имеют больше функций и менее подвержены шуму, чем их аналоговые аналоги.
  • Количество измеренных осей — Это очень просто: сколько из трех возможных осей (x, y и z) может определить акселерометр? Трехосевые акселерометры обычно подходят; они наиболее распространены, и они действительно не дороже, чем эквивалентно чувствительные одно- или двухосевые акселерометры.
  • Энергопотребление — Если ваш проект работает от батареи, вы можете подумать, сколько энергии будет потреблять акселерометр.Требуемый ток потребления обычно находится в диапазоне сотен мкА. Некоторые датчики также имеют функцию сна для экономии энергии, когда акселерометр не нужен.
  • Дополнительные функции — Многие недавно разработанные акселерометры могут иметь несколько отличных функций, помимо простого получения данных об ускорении. Эти более новые акселерометры могут включать в себя такие функции, как выбираемые диапазоны измерения, контроль сна, обнаружение 0-g и определение касания.
См. нашу полную линейку акселерометров

Гироскопы

Гироскопы измеряют угловую скорость, насколько быстро что-то вращается вокруг оси.Если вы пытаетесь отслеживать ориентацию движущегося объекта, акселерометр может не дать вам достаточно информации, чтобы точно знать, как он ориентирован. В отличие от акселерометров, на гироскопы не действует гравитация, поэтому они отлично дополняют друг друга. Обычно вы видите угловую скорость, представленную в единицах оборотов в минуту (об/мин) или градусах в секунду (°/с). Три оси вращения обозначаются либо x, y и z, либо крен, тангаж и рыскание.

В прошлом гироскопы использовались для космической навигации, управления ракетами, подводного наведения и управления полетом.Теперь они начинают использоваться вместе с акселерометрами для таких приложений, как захват движения и навигация в автомобиле.

Многое из того, что учитывалось при выборе акселерометра, по-прежнему применимо к выбору идеального гироскопа:

  • Диапазон — Убедитесь, что максимальная угловая скорость, которую вы собираетесь измерять, не превышает максимальный диапазон гироскопа. Но также, чтобы получить наилучшую возможную чувствительность, убедитесь, что диапазон вашего гироскопа не намного больше, чем вы ожидаете.
  • Интерфейс — На самом деле в этом разделе не так много разнообразия, 95% гироскопов, которые у нас есть, имеют *аналоговый *выход. Есть несколько с цифровым интерфейсом — либо SPI, либо I 2 C.
  • Количество измеренных осей — По сравнению с акселерометрами гироскопы немного отстают. Лишь недавно на рынке стали появляться недорогие 3-осевые гироскопы. Большинство наших гироскопов являются либо 1-осевыми, либо 2-осевыми. При их выборе нужно обратить внимание на то, какую из трех осей будет измерять гироскоп; например, некоторые двухосевые гироскопы измеряют тангаж и крен, а другие измеряют тангаж и рыскание.
  • Power Usage — Если ваш проект работает от батареи, вы можете подумать, сколько энергии будет потреблять гироскоп. Требуемый ток потребления обычно находится в диапазоне сотен мкА. Некоторые датчики также имеют функцию сна для экономии энергии, когда гироскоп не нужен.
  • Бонусные функции — Мало что в этом разделе вас поразит. Многие гироскопы имеют температурный выход, что очень полезно при компенсации дрейфа.

IMU

Гироскопы и акселерометры великолепны, но сами по себе они не дают вам достаточно информации, чтобы можно было удобно вычислять такие вещи, как ориентация, положение и скорость.Для измерения этих и других переменных многие люди комбинируют два датчика, чтобы создать инерциальный измерительный блок (IMU), который обеспечивает от двух до шести степеней свободы (DOF). IMU широко используются в устройствах, для которых требуется знание их точного положения, например, в роботизированных манипуляторах, управляемых ракетах и ​​инструментах, используемых для изучения движения тела.

IMU

SparkFun действительно можно разделить на два класса: простые комбинированные платы IMU, которые просто устанавливают акселерометр и гироскоп на одну печатную плату, и более сложные устройства, которые взаимодействуют с микроконтроллером с датчиками для создания последовательного вывода.Если вы ознакомились с предыдущими разделами, вы должны знать, какие характеристики следует искать в IMU: количество осей (как для акселерометра, так и для гироскопа), диапазон измерения датчиков и интерфейс.


Глоссарий терминов

Диапазон: Диапазон значений, которые может измерять устройство, является важным фактором при принятии решения о том, что подходит для вашего проекта. Очевидно, что 24-граммовый акселерометр не поможет вам отслеживать движение тела, если только вы не планируете отправиться в космос из самой большой в мире рогатки.Точно так же, если ваш акселерометр показывает 1 g, вы не получите много полезных данных, скажем, о запуске ракеты. Диапазон акселерометра измеряется в перегрузках или кратно ускорению силы тяжести на Земле. Диапазон гироскопа, который измеряет угловое ускорение, выражается в градусах вращения в секунду.

Интерфейс: Метод, с помощью которого вы отправляете и получаете данные между контроллером и устройством, называется интерфейсом. Существует несколько стандартов, каждый из которых имеет свои преимущества и недостатки.Аналоговые сигналы легко читаются и могут быть измерены большинством микроконтроллеров с очень небольшим количеством кода. Последовательная связь в этом случае относится к UART и требует немного больше накладных расходов на обработку, но способна передавать больше информации, чем аналоговые сигналы. Последовательная связь или I2C распространены в ситуациях, когда необходимо считывать несколько осей в контроллер. I2C — это двухпроводной последовательный интерфейс, который позволяет нескольким устройствам совместно использовать шину и взаимодействовать друг с другом, это также очень распространенная возможность среди микроконтроллеров.

Оси: Это относится к количеству направлений, в которых может быть измерено ускорение. Акселерометры измеряют ускорение вдоль указанных осей, тогда как гироскопы измеряют ускорение вокруг осей.

Требования к питанию: Представляет собой количество энергии, которое устройство обычно потребляет во время работы. Ваша система должна быть в состоянии обеспечить как минимум столько тока, а затем еще немного, чтобы избежать неустойчивого поведения или условий пониженного напряжения.Многие устройства также имеют режимы пониженного энергопотребления или энергосбережения, в которых они потребляют значительно меньше энергии. Для вашего удобства мы также указали номинальное напряжение устройства.

Бонусные возможности: У каждого производителя устройств есть свои представления о том, какие «примочки» следует добавить к гироскопу или акселерометру. В этом столбце мы перечисляем те дополнительные функции, которые отличают каждое устройство от остальных.

Использование гироскопа для управления Unity

Дизайн взаимодействия

Протестировано на MACOS X 10.9,5

Оборудование

Ардуино Уно Модуль MPU-6050 3-х осевой гироскоп

Программное обеспечение

Обработка

Ардуино

Единство

Библиотеки для Arduino

Библиотеки для обработки

Коды/файлы

→ Эскиз Arduino

→ Обработка эскиза

→ Проект Unity3D

Принципы

Подключение MPU 6050 к Arduino

Установка библиотек

I2Cdevlib

После загрузки разархивируйте его.

Перейдите в разархивированную папку

Перетащите папку I2Cdev в папку вашей библиотеки Ardeuino (по умолчанию: ~/Documents/Arduino/libraries/)

МПУ 6050

Для корректного использования нам необходимо установить вторую библиотеку из той же разархивированной папки. На этот раз он называется: MPU6050. Перетащите его в папку библиотек Arduino.

Программное обеспечение Arduino: подключение MPU6050 к последовательному порту — первая связь с компьютером

Запустите программное обеспечение Arduino, чтобы проверить правильность установки библиотек.

Перейдите в Файл → Примеры → MPU6050 → Примеры → MPU6050_DMP6

После подключения платы Arduino к компьютеру с помощью кабеля USB нажмите кнопку загрузки.

Перейдите в Инструменты → Монитор последовательного порта

Введите любой ключ в поле последовательного монитора и нажмите кнопку Отправить…

Посмотрите это видео, чтобы проверить рабочий пример:

Демонстрация чайника

Следующим шагом является проверка хорошей связи между последовательным портом Arduino и другим приложением.Для этого есть готовый способ: демонстрация чайника. Демонстрация чайника объединяет 2 файла: файл для Arduino и файл для обработки. Их очень легко использовать для проверки того, как последовательный порт Arduino взаимодействует с другим приложением.

→ Скачать демонстрационные файлы чайника

Фильтрация значений с датчика

Для получения точных результатов в Unity нам необходимо отфильтровать значения, отправленные mpu6050. Подробные пояснения читайте в следующих сообщениях:

→ http://www.geekmomprojects.com/гироскопы-и-акселерометры-на-чипе/

→ http://www.geekmomprojects.com/mpu-6050-redux-dmp-data-fusion-vs-complementary-filter/

Ссылки

http://playground.arduino.cc/Main/MPU-6050

Unity3D + Arduino/Teensy + MPU-9150: magic wand/light saber

Unity3D + Arduino/Teensy + MPU-9150: magic wand/light saber

http://www.geeetech.com/wiki/index.php/MPU-6050_Triple_Axis_Accelerometer_%26_Gyro_Breakout

Gyroscopes, Accelerometers and the Complementary Filter

http://www.geekmomprojects.com/гироскопы-и-акселерометры-на-чипе/

MPU-6050 Redux: DMP Data Fusion vs. Complementary Filter

Унидуино

http://www.uniduino.com

МПУ6050

http://www.botched.co.uk/pic-tutorials/mpu6050-setup-data-aquisition/

http://mpuprojectblog.wordpress.com/category/mpu6050/page/2/

Arduino MPU6050 Обнаружение движения

Датчики отслеживания движения используются в таких приложениях, как робототехника, распознавание жестов, стабилизация транспортных средств, управление положением в дронах/квадрокоптерах, указательные устройства, игровые контроллеры и устройства для отслеживания фитнеса.Одним из популярных датчиков отслеживания движения является MPU6050. Это шестиосевой МЭМС-датчик движения, включающий в себя МЭМС-акселерометр и МЭМС-гироскоп. Датчик также имеет встроенный датчик температуры, измерение температуры которого можно использовать для калибровки акселерометра и гироскопа. Кроме того, MPU6050 можно подключить к внешнему магнитометру, используя встроенный канал I2C, который расширяет датчик до 9 степеней свободы. С внешним магнитометром, подключенным к MPU6050, контроллер или компьютер могут точно отслеживать точное движение.

Пример датчика движения MPU6050

Коммутационная плата MPU6050 оснащена стабилизатором напряжения 3,3 В, который позволяет легко взаимодействовать с компьютерами с напряжением питания 5 В и 3,3 В. Таким образом, мы можем легко связать MPU6050 с Arduino, Raspberry Pi, ESP32 и несколькими другими микроконтроллерами и платформами SBC. В этом проекте мы подключили трекер движения MPU6050 к Arduino и отобразили его показания акселерометра, гироскопа и температуры на OLED-дисплее SSD1306.

Необходимые компоненты

  1. Ардуино УНО x1
  2. Датчик MPU6050 x1
  3. SSD1306 OLED-модуль x1
  4. Соединительные провода/перемычки

Требуется программное обеспечение

  1. Arduino IDE

Как работает акселерометр MEMS
Акселерометры используются для определения линейного ускорения.Эти датчики могут обнаруживать линейное ускорение в одном, двух или трех измерениях. Акселерометр имеет контрольную массу, подвешенную на пружинах в системе отсчета. Пробная масса в одномерном акселерометре имеет одну степень свободы. Точно так же пробная масса в двумерном и трехмерном акселерометре имеет 2 степени свободы и 3 степени свободы в системе отсчета соответственно. Пробная масса действует как подвешенный шар, свободно движущийся внутри кубической рамы. При перемещении датчика вдоль заданной оси на подвешенную пробную массу действует сила в противоположном направлении.

Принцип работы акселерометра

Если ускорение, воспринимаемое пробной массой, эквивалентно ускорению свободного падения, т. е. 9,8 м/с, говорят, что оно равно 1g. Если трехмерный акселерометр воспринимает силу в 1 г в направлении Z, он воспринимает гравитационное ускорение.

Акселерометр

MEMS состоит из микромеханической структуры, построенной на кремниевой пластине. Пробная масса подвешена на поликремниевых пружинах, где она может свободно отклоняться в одном, двух или трех измерениях под действием внешней силы.Пробная масса отклоняется между неподвижными пластинами, которые действуют как электроды конденсатора. При отклонении вдоль оси расстояние между пробной массой и неподвижными пластинами изменяется пропорционально ускорению вдоль этой оси. Это вызывает пропорциональное изменение емкости неподвижных пластин. Разница в емкости определяется высокоточным датчиком, который выдает пропорциональное аналоговое напряжение.

Структура акселерометра MEMS

Как работает МЭМС-гироскоп
Гироскоп используется для обнаружения углового вращения.Он использует явление, называемое эффектом Кориолиса. Сила Кориолиса — это сила инерции, испытываемая объектом, движущимся во вращающейся системе перпендикулярно направлению движения и оси вращения.

Пример эффекта Кориолиса

Гироскоп состоит из двух пробных масс, находящихся в колебательном движении в противоположных направлениях. Когда к ним приложена угловая сила из-за вращения инерциальной системы отсчета, силы Кориолиса действуют на две массы в противоположных направлениях.Это вызывает отклонение масс в противоположных направлениях вдоль оси силы Кориолиса, вызывая изменение емкости между ними.

Принцип работы МЭМС-гироскопа

Гироскоп

MEMS состоит из пробной массы, которая разделена на четыре части. Неподвижная масса подвешивает каждую часть в центре. Массы непрерывно колеблются в горизонтальной плоскости.

Структура МЭМС-гироскопа

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

Когда осью вращения является ось X, пластины M1 и M3 перемещаются вверх и вниз, отклоняясь от горизонтальной плоскости. Это называется режимом вращения.

Режим вращения в МЭМС-гироскопе

Когда осью вращения является ось Y, пластины M2 и M4 перемещаются вверх и вниз, отклоняясь от горизонтальной плоскости. Это называется Pitch Mode.

Режим шага в МЭМС-гироскопе

Когда осью вращения является ось Y, пластины M1 и M3 перемещаются в противоположном направлении в горизонтальной плоскости, и в то же время пластины M2 и M4 также перемещаются в противоположном направлении в горизонтальной плоскости.Это называется режимом рыскания.

Режим рыскания в МЭМС-гироскопе

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

Датчик отслеживания движения MPU6050
MPU6050 — недорогой датчик отслеживания движения с 6 степенями свободы, встроенным 3-осевым акселерометром и 3-осевым гироскопом. Он также включает датчик температуры, который измеряет рабочую температуру кремниевого кристалла в диапазоне от -40°C до 85°C.Следует отметить, что встроенный датчик температуры в MPU6050 не считывает температуру окружающей среды; он считывает рабочую температуру микросхемы. Измерения температуры используются для калибровки акселерометра и гироскопа. Измерение температуры также можно использовать для обнаружения изменений температуры. MPU6050 имеет следующую схему контактов

.

Распиновка акселерометра MPU6050 Plus Gyro

MPU6050 имеет большое значение благодаря встроенному цифровому процессору движения (DMP).DMP датчика выполняет все сложные вычисления, выводя прямые значения ускорения и вращения на любой внешний контроллер/компьютер через интерфейс I2C. Датчик имеет два встроенных 16-разрядных аналого-цифровых преобразователя. Один 16-разрядный АЦП одновременно преобразует значения линейного ускорения по трем осям, определяемые встроенным акселерометром, который можно настроить на четыре программируемых шкалы — +/-2g, +/-4g, +/-8g и +/- 16г. Другой 16-разрядный АЦП одновременно преобразует значения углового ускорения по трем осям вращения (режим крена, режим тангажа и режим рыскания), определяемые встроенным гироскопом.Гироскоп можно настроить на четыре программируемые шкалы +/-250˚/с, +/-500˚/с, +/-1000˚/с и +/-2000˚/с.

MPU6050 взаимодействует с контроллером/компьютером по интерфейсу I2C. Он имеет два адреса I2C — 0x68 и 0x69, чтобы избежать конфликтов с другими устройствами I2C, использующими ту же шину. Адрес I2C MPU6050 можно контролировать с вывода ADO. Если контакт ADO не подключен, модуль имеет адрес I2C по умолчанию 0x68. Если контакт ADO подключен к 3,3 В, модуль имеет адрес I2C 0x69.

К MPU6050 можно подключить внешний магнитометр. Коммутационная плата имеет отдельную шину I2C на контактах XDA и XCL. На коммутационной плате также есть контакт прерывания для запуска аппаратного прерывания при обнаружении движения, ударе или падении.

Взаимодействие MPU6050 с Arduino
Соединить MPU6050 с Arduino очень просто. На коммутационной плате MPU6050 установлен стабилизатор LD3985 3,3 В. Таким образом, мы можем напрямую подключить модуль к любому 5V Arduino. Датчик может питаться от источника питания Arduino, а контакты I2C модуля должны быть подключены к порту I2C Arduino.Порты I2C на Arduino UNO показаны на изображении ниже.

портов I2C на Arduino UNO

Вывод прерывания MPU6050 может быть подключен к любому GPIO Arduino.

Соединения цепей
Этот проект имеет интерфейс MPU6050 с Arduino UNO и отображает показания температуры, акселерометра и гироскопа на OLED-дисплее SSD1306. Для взаимодействия с MPU6050 контакты VCC и GND MPU6050 подключаются к выходу 5V и контактам заземления Arduino; контакты SDA и SCL модуля подключены к порту I2C на Arduino, а контакт прерывания модуля подключен к контакту D2 Arduino.

SSD1306 взаимодействует с Arduino через физический SPI-порт Arduino. Для взаимодействия с OLED-дисплеем SSD1306 через физический порт SPI подключите контакты D0/SCK и D1/MOSI OLED-дисплея SSD1306 к контактам D13 и D11 Arduino соответственно. Подключите контакты DC, RESET и CS SSD1306 к контактам D9, D10 и D8 Arduino соответственно.

Принципиальная схема интерфейса MPU6050 с Arduino

Библиотеки Arduino для MPU6050
Для работы с MPU6050 доступно несколько библиотек Arduino.Библиотека Adafruit MPU6050 от Adafruit довольно популярна. В этом проекте мы используем библиотеку Arduino-MPU6050, предоставленную jarzebski из Github. Библиотека находится под лицензией GPL 3.0.

Эскиз Arduino

}]]>


Руководство по программированию
Скетч начинается с импорта библиотек Wire и Arduino-MPU6050 для связи I2C с датчиком MPU6050. Далее импортируются библиотеки для работы с SSD1306 OLED. Постоянный «период» определен для хранения временного интервала для считывания значений со встроенного датчика температуры, акселерометра и гироскопа по одному.Объявлены константы для разрешения экрана и назначения контактов OLED-дисплея. Создаются экземпляры объектов класса Adafruit_SSD1306 и MPU6050. Затем определяются растровое изображение и массив для хранения логотипа сайта.

В функции setup() скорость передачи данных для последовательной связи с Serial Monitor установлена ​​на 9600 бит/с. Датчик MPU6050 тестируется с использованием метода mpu.begin() и калибруется с помощью вызова метода mpu.calibrateGyro(). Масштаб сенсора задается вызовом метода mpu.setThreshold().Инициализируется OLED-экран, и на нем мигает логотип сайта.

В функции loop() показания встроенного датчика температуры, акселерометра и гироскопа снимаются с задержкой в ​​1 секунду и отображаются на OLED-экране. Температура извлекается путем вызова метода mpu.readTemperature(). Показания гироскопа извлекаются путем вызова методов mpu.readRawGyro() и mpu.readNormalizeGyro(). Нормализованные значения режимов крена, тангажа и рыскания извлекаются путем вызова normGyro.XAxis, normGyro.YAxis и normGyro.ZAxis соответственно. Значения ускорения извлекаются путем вызова методов mpu.readRawAccel() и mpu.readNormalizeAccel(). Нормализованные значения ускорения по осям X, Y и Z извлекаются путем вызова свойств norAccel.XAxis, normAccel.YAxis и normAccel.ZAxis соответственно.

 

Результаты


Рубрики: Arduino, Электронные проекты
С тегами: Arduino, Гироскопический датчик акселерометра Arduino, Arduino MPU6050, Датчик отслеживания движения Arduino MPU6050, Проекты Arduino, Акселерометр + гироскоп MPU6050, Датчик отслеживания движения MPU6050
 

Arduino GY-521 MPU-6050 Модуль объединяет 3-осевой гироскоп и 3-осевой

1.Время обработки заказа

Все заказы обрабатываются в течение 24 часов после их размещения. Обычно мы можем отправить заказ на следующий день. Заказы выходного дня отправляются в следующий понедельник. Вы получите электронное письмо с подтверждением доставки от нашей системы, когда информация о доставке будет загружена.

2. Бесплатная доставка ВСЕХ заказов

Как правило, мы отправляем заказы с бесплатной доставкой без требований к минимальной сумме заказа. Вы можете проверить, доступен ли способ бесплатной доставки в вашу страну, в зоне доставки ниже.
Если вы не нашли свою страну в зоне доставки, напишите по телефону  [email protected] , наши сотрудники отдела продаж свяжутся с вами как можно скорее.
Для дистрибьюторов, пожалуйста, свяжитесь с нами по адресу дистрибьютор@sunfounder.com для получения более подробной информации о доставке.

ПРИМЕЧАНИЕ: Все заказы будут отправлены с нашего склада в Китае.

3. Зона доставки

Азия

САР Гонконг, Япония, САР Макао, Малайзия, Филиппины, Россия, Сингапур, Южная Корея, Таиланд, Вьетнам и т. д.

Европа

Австрия, Бельгия, Чехия, Дания, Финляндия, Франция, Германия, Греция, Венгрия, Италия, Литва, Люксембург, Монако, Нидерланды, Норвегия, Польша, Португалия, Словакия, Словения, Испания, Швеция, Швейцария, Турция, Украина, США Королевство и др.

Океания

Австралия, Новая Зеландия

Северная Америка

Канада, Мексика, США

4. Как мне отследить мой заказ?

ЕСТЬ АККАУНТ SUNFOUNDER?

Полегче! Войдите в свою учетную запись через интернет-магазин, проверьте статус выполнения вашего недавнего заказа.Если заказ был выполнен, нажмите на информацию о заказе, и вы можете найти информацию об отслеживании здесь.

У МЕНЯ ПОКА НЕТ УЧЕТНОЙ ЗАПИСИ

Как только ваш заказ будет упакован и отправлен, вы получите электронное письмо с подтверждением доставки. После этого вы сможете отслеживать свой заказ по ссылке для отслеживания в электронном письме. Если вы еще не получили электронное письмо, свяжитесь с нами по телефону service @sunfounder.com , наши сотрудники отдела продаж свяжутся с вами как можно скорее.

5. Способ и сроки доставки

DHL (заказы на сумму более 300 долларов США)

Срок поставки: 3-7 рабочих дней
Вы можете отслеживать на http://www.dhl.com/ или https://www.17track.net/en

ИБП (заказы на сумму более 300 долларов США)

Срок доставки: 3-7 рабочих дней
Вы можете отслеживать на https://www.ups.com/track или https://www.17track.net/en

USPS

Срок доставки: 7-12 рабочих дней
Вы можете отслеживать на https://www.usps.com/ или https://www.17track.нетто/эн

ЗАРЕГИСТРИРОВАННАЯ АВИАПОЧТА

Срок доставки: 12-15 рабочих дней
Вы можете отслеживать на https://www.17track.net/en

 

* Время доставки. Это ориентировочные данные о доставке, предоставленные нашими партнерами по доставке, и они применяются с точки отправки, а не с точки продажи. Как только ваша посылка покидает наш склад, мы не можем контролировать любые задержки после этого момента.

6. Таможенные и импортные сборы

Например, товары, которые вы покупаете на нашем сайте, нельзя просто свободно доставлять из страны в страну.Когда товары ввозятся в другую страну или на таможенную территорию, взимается сбор, называемый таможенной пошлиной. Это взимается местным таможенным органом, куда ввозятся товары.

Если таможенная пошлина подлежит уплате на вашей территории, вы несете ответственность за ее уплату властям, поэтому SunFounder не участвует в этом процессе. Подлежит ли уплате таможенная пошлина и в каком размере зависит от множества разных вещей. Например, во многих странах существует «порог низкой стоимости», ниже которого они не взимают таможенную пошлину.

Если вы все же должны заплатить таможенную пошлину, сумма, подлежащая уплате, обычно рассчитывается на основе стоимости товаров и типа импортируемых товаров.

А ЕСЛИ Я НЕ ОПЛАЧУ ТАМОЖЕННУЮ ПОШЛИНУ?

Если по какой-либо причине Вы отказываетесь от таможенного сбора и посылка возвращается обратно к нам. Если вы все еще не уверены в том, будете ли вы облагаться таможенными сборами, мы рекомендуем связаться с местной таможней для получения дополнительной информации, прежде чем размещать заказ!

MPU6050 (GY-521 Breakout) + приложение Arduino Mega 2560 для акселерометра и гироскопа

Привет всем,
Сегодня я покажу вам, как мы можем использовать GY-521. Прорыв с Arduino Mega 2560, чтобы получить показания с датчика.Во-первых, я должен сказать, что я совершенно новичок в Arduino, и я имеют ограниченные знания в работе с регистрами и всякими глубокими вещами. Я пытаюсь выучить их, и да, это будет началом. Дж Итак, сначала позвольте мне показать вам, что я уже купил.

Первый GY-521 Отрыв для MPU-6050

Позвольте мне представить вам краткое введение об этом продукт.

Датчик InvenSense MPU-6050 содержит МЭМС акселерометр и MEMS-гироскоп в одном чипе. Это очень точно, так как содержит 16-битное аналогово-цифровое преобразование для каждого канала.Поэтому он захватывает каналы x, y и z одновременно. — Чип: МПУ-6050
— Питание: 3,5В (Но так как на отводе есть регулятор напряжения плата, вы можете использовать 5 В напрямую)
— Режим связи: стандартный протокол связи IIC
— Чип встроенный 16-битный АЦП, 16-битный вывод данных
— Диапазон гироскопов: +/- 250 500 1000 2000 град/сек
— Диапазон ускорения: +/- 2 г, +/- 4 г, +/- 8 г, +/- 16 г Техническое описание MPU-6050 можно найти здесь. Карту регистрации можно найти здесь.

Вот схема GY-521

Теперь нам нужно получить плату Arduino Mega 2560.

Всю информацию, связанную с этим продуктом, можно найти здесь.

Итак, у нас есть наши предметы, и следующая важная вещь — соединить этих двоих вместе. Обратите внимание на проводку отличается для Arduino UNO. Эта проводка предназначена для Arduino Mega 2560.

GY-521                                 Arduino Мега VCC                                       3,3 В или 5В GND                                     GND SCL                                        Контакт 21 (СКЛ) SDA                                       Контакт 20 (ПДД) INT                                        Контакт 2 (Прерывание 0) — для получения дополнительных контактов прерывания в Arduino нажмите здесь. Теперь для программа. Поскольку у нас есть много ресурсов по использованию Arduino, давайте попробуйте код от них (Хотя пришлось потратить несколько часов на работу с ними :П ). Сначала давайте попробуем найти, связано ли наше устройство с Arduino. Для этого мы можем используйте код сканера I2C от Krodal, чтобы узнать подключенные устройства I2C к Ардуино. Вы можете найти код здесь. Также следует это код. Скомпилируйте код и загрузите его в Arduino. Откройте последовательный монитор и перезагрузить Ардуино.

Он найдет ваш GY-521 по адресу 0x68 или 0x69. Если он не находит IMU в этом месте, может быть проблема с вашим проводка. Пожалуйста, проверьте еще раз.

Теперь мы можем используйте следующий код Кродала, чтобы получить необработанные выходные данные датчика. Кродаль эскиз можно найти здесь. Пожалуйста, прокрутите страницу до конца, и вы сможете найти код. Также Я буду публиковать это здесь.


Вот результат.

Теперь мы готов попробовать код от Джеффа Роуберга.Загрузите библиотеку I2C с github. Вот ссылка.

Теперь разархивируйте файл и найдите папку Arduino. Скопируйте библиотеки I2Cdev и MPU6050 в ваши библиотеки Arduino, расположенные в C:\Program Files (x86)\Arduino\libraries.


Теперь вы готов к использованию библиотек I2Cdev и MPU6050. Найдите пример кода в папке \Arduino\MPU6050\Examples\MPU6050_DMP6. и загрузить его в Ардуино. Теперь вы получите вывод из Serial монитор. Выход предоставляет вам разумные значения от датчика в отличие от сырые выходы.Здесь Джефф использовал встроенный процессор Digital Motion Processor™. (DMP™), способный обрабатывать сложные 9-осевые алгоритмы MotionFusion. Ты сможешь найти работу Джеффа здесь.

Теперь мы можем используйте демонстрацию обработки, предоставленную Джеффом, с примером MPU6050. Ты сможешь скачать Процессинг здесь. Вы тоже необходимо установить toxiclib для обработки. Вы можете найти это здесь.
Установить токсичная библиотека просто скопирует содержимое zip-файла в папку библиотеки в каталоге проектов обработки.Также создайте папку с именем MPUTeapot в папке проектов обработки и скопируйте MPUTeapot.pde файл в эту папку из расположения примера кода MPU6050. Теперь у вас есть чтобы внести следующие изменения в код MPU6050_DMF Джеффа.
  1. Прокомментируйте строку  : #define OUTPUT_READABLE_YAWPITCHROLL
  2. Раскомментируйте строку: #define OUTPUT_TEAPOT
  3. Теперь загрузите обновленный код MPU6050_DMP в Ардуино.
  4. Запуск файла MPUTeapot.pde в процессе обработки
  5. Вы увидите движущийся маленький самолет

Так что надеюсь, что это поможет кому-то.

Благодарю вас.

.

Добавить комментарий

Ваш адрес email не будет опубликован.