Оглавление:
- Шаг 1: Обзор BMG160:
- Шаг 2: Что вам нужно..
- Шаг 3: Подключение оборудования:
- Шаг 4: Код частицы для измерения с помощью 3-осевого гироскопа:
- Шаг 5: Приложения:
Видео: Сопряжение 3-осевого гироскопического датчика BMG160 с частицами: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
В современном мире более половины молодежи и детей увлекаются играми, и все, кто увлекается ими, увлеченные техническими аспектами игр, знают важность определения движения в этой области. Нас тоже поразило то же самое, и, просто чтобы показать это на досках, мы подумали о работе над датчиком гироскопа, который может измерять угловую скорость любого объекта. Итак, датчик, который мы взяли для решения этой задачи, - BMG160. BMG160 - это 16-битный цифровой трехосный гироскопический датчик, который может измерять угловую скорость в трех перпендикулярных измерениях комнаты.
В этом уроке мы собираемся продемонстрировать работу BMG160 с Particle Photon.
Для этого вам понадобится следующее оборудование:
1. BMG160
2. Фотон частицы
3. Кабель I2C
4. I2C-экран для частиц фотонов.
Шаг 1: Обзор BMG160:
Прежде всего, мы хотели бы познакомить вас с основными функциями сенсорного модуля BMG160 и протоколом связи, по которому он работает.
BMG160 - это, по сути, 16-битный цифровой трехосный гироскопический датчик, который может измерять угловые скорости. Он способен вычислять угловые скорости в трех перпендикулярных измерениях комнаты, по осям x, y и z, и выдавать соответствующие выходные сигналы. Он может связываться с платой raspberry pi, используя протокол связи I2C. Этот конкретный модуль разработан для удовлетворения требований как для потребительских приложений, так и для промышленных целей.
Протокол связи, по которому работает датчик, - I2C. I2C означает межинтегральную схему. Это протокол связи, в котором связь осуществляется через линии SDA (последовательные данные) и SCL (последовательные часы). Это позволяет одновременно подключать несколько устройств. Это один из самых простых и эффективных протоколов связи.
Шаг 2: Что вам нужно..
Материалы, которые нам нужны для достижения нашей цели, включают следующие компоненты оборудования:
1. BMG160
2. Частичный фотон
3. Кабель I2C
4. Экран I2C для фотонов частиц
Шаг 3: Подключение оборудования:
В разделе «Подключение оборудования» в основном объясняются проводные соединения, необходимые между датчиком и частицей. Обеспечение правильных соединений является основной необходимостью при работе с любой системой для достижения желаемого результата. Итак, необходимые подключения следующие:
BMG160 будет работать по I2C. Вот пример схемы подключения, демонстрирующий, как подключить каждый интерфейс датчика.
Изначально плата настроена для интерфейса I2C, поэтому мы рекомендуем использовать это подключение, если вы не сторонник этого.
Все, что вам нужно, это четыре провода! Требуются только четыре соединения, выводы Vcc, Gnd, SCL и SDA, которые подключаются с помощью кабеля I2C.
Эти соединения показаны на рисунках выше.
Шаг 4: Код частицы для измерения с помощью 3-осевого гироскопа:
А теперь давайте начнем с кода частицы.
При использовании сенсорного модуля с arduino мы включаем библиотеки application.h и spark_wiring_i2c.h. Библиотека application.h и spark_wiring_i2c.h содержит функции, которые облегчают обмен данными i2c между датчиком и частицей.
Полный код частицы приведен ниже для удобства пользователя:
#включают
#включают
// Адрес BMG160 I2C 0x68 (104)
#define Addr 0x68
int xGyro = 0, yGyro = 0, zGyro = 0;
установка void ()
{
// Устанавливаем переменную
Particle.variable («i2cdevice», «BMG160»);
Particle.variable ("xGyro", xGyro);
Particle.variable ("yGyro", yGyro);
Particle.variable ("zGyro", zGyro);
// Инициализируем связь I2C как МАСТЕР
Wire.begin ();
// Инициализировать последовательную связь
Serial.begin (9600);
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Выбираем регистр диапазона
Wire.write (0x0F);
// Настраиваем полную шкалу 2000 dps
Wire.write (0x80);
// Остановка передачи I2C
Wire.endTransmission ();
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Выбираем регистр пропускной способности
Wire.write (0x10);
// Устанавливаем полосу пропускания = 200 Гц
Wire.write (0x04);
// Остановка передачи I2C
Wire.endTransmission ();
задержка (300);
}
пустой цикл ()
{
данные типа int без знака [6];
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Выбираем регистр данных
Wire.write (0x02);
// Остановка передачи I2C
Wire.endTransmission ();
// Запрос 6 байтов данных
Wire.requestFrom (Адрес, 6);
// Чтение 6 байтов данных
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
если (Wire.available () == 6)
{
данные [0] = Wire.read ();
данные [1] = Wire.read ();
данные [2] = Wire.read ();
данные [3] = Wire.read ();
данные [4] = Wire.read ();
данные [5] = Wire.read ();
}
задержка (300);
// Конвертируем данные
xGyro = ((данные [1] * 256) + данные [0]);
если (xGyro> 32767)
{
xGyro - = 65536;
}
yGyro = ((данные [3] * 256) + данные [2]);
если (yGyro> 32767)
{
yGyro - = 65536;
}
zGyro = ((данные [5] * 256) + данные [4]);
если (zGyro> 32767)
{
zGyro - = 65536;
}
// Выводим данные в дашборд
Particle.publish («Ось вращения X:», String (xGyro));
Particle.publish («Ось вращения Y:», String (yGyro));
Particle.publish («Z-ось вращения:», String (zGyro));
задержка (1000);
}
Шаг 5: Приложения:
BMG160 имеет разнообразное применение в таких устройствах, как сотовые телефоны и устройства человеко-машинного интерфейса. Этот сенсорный модуль был разработан для удовлетворения требований для потребительских приложений, таких как стабилизация изображения (DSC и камера-телефон), игровые и указывающие устройства. Он также используется в системах, требующих распознавания жестов, и в системах внутренней навигации.
Рекомендуемые:
Сопряжение емкостного датчика отпечатков пальцев с Arduino UNO: 7 шагов
Сопряжение емкостного датчика отпечатков пальцев с Arduino UNO: Эй, как дела, ребята! Акарш здесь от CETech. Сегодня мы собираемся добавить защитный слой в наши проекты. Не волнуйтесь, мы не будем назначать для этого телохранителей. Это будет симпатичный сенсор отпечатков пальцев от DFRobot. Так что
Робот для объезда препятствий с помощью ультразвукового датчика (Proteus): 12 шагов
Робот для уклонения от препятствий, использующий ультразвуковой датчик (Proteus): Обычно мы сталкиваемся с роботом для уклонения от препятствий повсюду. Аппаратное моделирование этого робота является частью соревнований во многих колледжах и на многих мероприятиях. Но программное моделирование робота-препятствия встречается редко. Даже если мы сможем его где-то найти
Преобразование датчика Холла в Logitech 3D Extreme Pro: 9 шагов
Преобразование датчика Холла в Logitech 3D Extreme Pro: не работал руль направления на моем джойстике. Я пробовала разбирать горшки и чистить их, но это не помогло. Итак, я начал искать сменные горшки и наткнулся на несколько разных веб-сайтов несколько лет назад, которые ссылаются на
Система мониторинга качества воздуха на предмет загрязнения твердыми частицами: 4 шага
Система мониторинга качества воздуха на предмет загрязнения твердыми частицами: ВВЕДЕНИЕ: 1 В этом проекте я показываю, как построить детектор частиц с отображением данных, резервным копированием данных на SD-карту и IOT. Визуально неопиксельный кольцевой дисплей показывает качество воздуха. 2 Качество воздуха становится все более важной проблемой t
Методы определения уровня воды Arduino с помощью ультразвукового датчика и датчика воды Funduino: 4 шага
Методы определения уровня воды Arduino с помощью ультразвукового датчика и датчика воды Funduino: в этом проекте я покажу вам, как создать недорогой датчик воды, используя два метода: 1. Ультразвуковой датчик (HC-SR04) 2. Датчик воды Funduino