0
КОРЗИНА
0 ТОВАРА
 BMI160 6DOF (гироскоп, акселерометр) для Arduino ардуино
 BMI160 6DOF (гироскоп, акселерометр) для Arduino ардуино
 BMI160 6DOF (гироскоп, акселерометр) для Arduino ардуино
 BMI160 6DOF (гироскоп, акселерометр) для Arduino ардуино

BMI160 6DOF (гироскоп, акселерометр)

Модуль Bosch BMI160: трёхосевой акселерометр (до ±16 g) и гироскоп (до ±2000 °/с) на одной плате. I2C или SPI, стабилизатор 3,3 В на плате — питается от 5 В Arduino. Гребёнки в комплекте. Подробнее...
Модификация
В наличии: 14 шт. Артикул: # 1341
470 ₽
Возможен безналичный расчёт для юридических лиц при оформлении заказа
Сообщить о поставке на e-mail:
{{ status }}
  • В наличии и готов к отправке!
  • Доставка товаров по России, Белоруссии, Казахстану
  • Возможен безналичный расчёт для юридических лиц при оформлении заказа
Количество:
Перейти в корзину и оформить заказ.
MAX
Telegram
Обсудить вопросы приобретения, не технические!
*Доступно общение только текстовыми сообщениями, звонки и аудио сообщения не обслуживаются
Офлайн
Описание товара
Подробное описание товара

Общие сведения

BMI160 — датчик движения от Bosch: трёхосевой акселерометр и трёхосевой гироскоп в одной микросхеме (6DOF). Акселерометр показывает, как плата наклонена и с каким ускорением её трясут, гироскоп — как быстро она поворачивается. Из этих данных собирают балансирующих роботов, стабилизаторы, шагомеры и пульты, которые управляют наклоном руки.

Плата фиолетовая, все 12 выводов подписаны с обратной стороны. Стабилизатор на 3,3 В уже стоит на плате, поэтому её питают от 5 В Arduino через вывод VIN. Две гребёнки в комплекте, их нужно припаять.

Характеристики

  • Микросхема: Bosch BMI160;
  • Акселерометр: ±2, ±4, ±8 или ±16 g, 16 бит;
  • Гироскоп: ±125, ±250, ±500, ±1000 или ±2000 °/с, 16 бит;
  • Интерфейс: I2C (адрес 0x68 или 0x69) или SPI;
  • Питание платы: 5 В на VIN или 3,3 В на 3V3.

Цифры взяты из даташита Bosch на BMI160.

Выводы

  • VIN, 3V3, GND — питание: 5 В на VIN или 3,3 В на 3V3, одно из двух;
  • SCL и SDA — шина I2C (в режиме SPI — тактовый сигнал и данные);
  • SAO — выбирает адрес на шине I2C: 0x68 или 0x69;
  • CS — выбор микросхемы для SPI, при работе по I2C его не подключают;
  • INT1 и INT2 — выходы прерываний, например «готовы новые данные» или «обнаружен удар»;
  • OCS, SCX, SDX — дополнительный интерфейс для внешнего магнитометра, для обычной работы не нужны.

Подключение к Arduino по I2C

BMI160Arduino Uno
VIN5V
GNDGND
SCLA5
SDAA4

Скетч обходится без сторонних библиотек. Он сам ищет датчик по адресам 0x68 и 0x69, включает акселерометр и гироскоп и пять раз в секунду выводит ускорение в g и скорость поворота в градусах в секунду. Регистры и коэффициенты взяты из даташита: после включения акселерометр стоит на диапазоне ±2 g (16384 единицы на 1 g), гироскоп — на ±2000 °/с (16,4 единицы на 1 °/с).

#include <Wire.h>

uint8_t addr = 0;                         // адрес найдём сами: 0x68 или 0x69

uint8_t readReg(uint8_t reg) {
  Wire.beginTransmission(addr);
  Wire.write(reg);
  Wire.endTransmission(false);
  Wire.requestFrom(addr, (uint8_t)1);
  return Wire.read();
}

void writeReg(uint8_t reg, uint8_t val) {
  Wire.beginTransmission(addr);
  Wire.write(reg);
  Wire.write(val);
  Wire.endTransmission();
}

void setup() {
  Serial.begin(9600);
  Wire.begin();
  for (uint8_t a = 0x68; a <= 0x69 && addr == 0; a++) {
    addr = a;
    if (readReg(0x00) != 0xD1) addr = 0;  // в регистре 0x00 у BMI160 всегда 0xD1
  }
  if (addr == 0) { Serial.println("BMI160 не найден"); while (true); }
  Serial.print("BMI160 найден, адрес 0x");
  Serial.println(addr, HEX);
  writeReg(0x7E, 0x11); delay(10);        // акселерометр — в рабочий режим
  writeReg(0x7E, 0x15); delay(100);       // гироскоп — в рабочий режим, ему нужно до 55 мс
}

void loop() {
  Wire.beginTransmission(addr);
  Wire.write(0x0C);                       // с 0x0C идут гироскоп X, Y, Z, затем акселерометр X, Y, Z
  Wire.endTransmission(false);
  Wire.requestFrom(addr, (uint8_t)12);
  int16_t v[6];
  for (int i = 0; i < 6; i++) {
    uint8_t lo = Wire.read();
    uint8_t hi = Wire.read();
    v[i] = (int16_t)((hi << 8) | lo);
  }
  Serial.print("g: ");
  for (int i = 3; i < 6; i++) { Serial.print(v[i] / 16384.0, 2); Serial.print(' '); }
  Serial.print("  град/с: ");
  for (int i = 0; i < 3; i++) { Serial.print(v[i] / 16.4, 1); Serial.print(' '); }
  Serial.println();
  delay(200);
}

Положите плату ровно и откройте монитор порта на скорости 9600: по оси Z акселерометр покажет около 1 g (это сила тяжести), по X и Y — около нуля.

Если что-то не так

  • «BMI160 не найден» — проверьте, не перепутаны ли SDA и SCL и припаяны ли гребёнки. Без пайки контакт в отверстиях то есть, то нет.
  • Гироскоп в покое показывает не ноль — это смещение нуля. Перед работой посчитайте среднее за пару секунд неподвижности и вычитайте его.
  • Угол, посчитанный только по гироскопу, со временем уплывает, а только по акселерометру — дрожит. Для устойчивого угла их объединяют фильтром, например комплементарным или Madgwick.

Комплектация

  • 1× плата BMI160;
  • 2× гребёнка (на 7 и 5 выводов).
Товары
Первой необходимости и другие вещи, которые могут пригодиться!
В наличии
563₽
В наличии
2941₽
Скоро в продаже
380₽
Скоро в продаже
MPU-9250 9DOF (гироскоп, акселерометр, компас): 3-осевой Гироскоп, 3-осевой Акселерометр и 3-осевой Компас (Магнетометр) Подробнее
1690₽
В наличии
21₽
В наличии
83₽
В наличии
80₽
В наличии осталось 2 шт.
Датчик расхода воды Sea YF-G1: Расходомер для измерения объёма и скорости проходящей жидкости от 2 до 100 л/мин Подробнее
1680₽
В наличии осталось 1 шт.
3690₽
В наличии
TDS/EC-метр для воды с щупом (Trema-модуль Flash-I2C): Солемер и кондуктометр для определения минерализации и электропроводности воды Подробнее
1469₽
Скоро в продаже
Барометр BMP180 (Trema-модуль): Датчик атмосферного давления и температуры окружающей среды Подробнее
353₽
В наличии
Датчик касания Roborace: Сенсор для определения препятствия путём физического контакта машинки Roborace с преградой Подробнее
390₽
Скоро в продаже
284₽
В наличии
Датчик Холла (Trema-модуль): Реагирует на магнитные поля Подробнее
130₽
Или перейти в корзину и оформить заказ.
Гарантии и возврат Используя сайт Вы соглашаетесь с условями Библиотеки
Есть вопрос?