Съдържание:

Измерване на ускорението с помощта на BMA250 и Raspberry Pi: 4 стъпки
Измерване на ускорението с помощта на BMA250 и Raspberry Pi: 4 стъпки

Видео: Измерване на ускорението с помощта на BMA250 и Raspberry Pi: 4 стъпки

Видео: Измерване на ускорението с помощта на BMA250 и Raspberry Pi: 4 стъпки
Видео: Залил Дедов САМОГОН!! Mark2 1JZ-GTE раздает ДОЛГИ!! 2024, Ноември
Anonim
Image
Image

BMA250 е малък, тънък, 3-осен акселерометър с ултра ниска мощност с измерване с висока разделителна способност (13 бита) при до ± 16 g. Цифровите изходни данни са форматирани като 16-битови двойки, допълващи се и са достъпни чрез I2C цифров интерфейс. Той измерва статичното ускорение на гравитацията в приложенията за отчитане на наклона, както и динамичното ускорение в резултат на движение или удар. Неговата висока разделителна способност (3,9 mg/LSB) позволява измерване на промените в наклона под 1,0 °.

В този урок ще измерим ускорението във всичките три перпендикулярни оси, използвайки BMA250 и Raspberry Pi. Сензорът е програмиран на език на python.

Стъпка 1: Изисква се хардуер:

Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер

Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:

1. BMA250

2. Малина Пи

3. I2C кабел

4. I2C щит за Raspberry Pi

5. Ethernet кабел

Стъпка 2: Свързване на хардуера:

Хардуерно свързване
Хардуерно свързване
Хардуерно свързване
Хардуерно свързване

Разделът за свързване на хардуер основно обяснява необходимите кабелни връзки между сензора и малиновото пи. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:

BMA250 ще работи над I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.

Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици. Всичко, от което се нуждаете, са четири проводника!

Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.

Тези връзки са показани на снимките по -горе.

Стъпка 3: Python код за измерване на ускорението:

Python код за измерване на ускорението
Python код за измерване на ускорението
Python код за измерване на ускорението
Python код за измерване на ускорението

Предимството на използването на малинов pi е, че ви осигурява гъвкавостта на езика за програмиране, на който искате да програмирате платката, за да свържете интерфейса на сензора с нея. Използвайки това предимство на тази дъска, ние демонстрираме тук нейното програмиране в python. Python е един от най -лесните езици за програмиране с най -лесен синтаксис. Кодът на python за BMA250 може да бъде изтеглен от нашата общност на GitHub, която е Dcube Store

Освен за улеснение на потребителите, ние обясняваме кода и тук:

Като първа стъпка на кодиране трябва да изтеглите библиотеката SMBus в случай на python, тъй като тази библиотека поддържа функциите, използвани в кода. Така че, за да изтеглите библиотеката, можете да посетите следната връзка:

pypi.python.org/pypi/smbus-cffi/0.5.1

Можете също да копирате работния код от тук:

внос smbus

време за импортиране

# Вземете I2C шина = smbus. SMBus (1)

# BMA250 адрес, 0x18 (24)

# Изберете регистър за избор на диапазон, 0x0F (15)

# 0x03 (03) Задайте диапазон = +/- 2gbus.write_byte_data (0x18, 0x0F, 0x03)

# BMA250 адрес, 0x18 (24)# Изберете регистър на честотната лента, 0x10 (16)

# 0x08 (08) Пропускателна способност = 7,81 Hzbus.write_byte_data (0x18, 0x10, 0x08)

time.sleep (0.5)

# BMA250 адрес, 0x18 (24)

# Прочетете данните обратно от 0x02 (02), 6 байта

# X-ос LSB, X-ос ос MSB, Y-ос LSB, Y-ос ос MSB, Z-ос LSB, Z-ос ос MSB

данни = bus.read_i2c_block_data (0x18, 0x02, 6)

# Конвертирайте данните в 10 бита

xAccl = (данни [1] * 256 + (данни [0] & 0xC0)) / 64

ако xAccl> 511:

xAccl -= 1024

yAccl = (данни [3] * 256 + (данни [2] & 0xC0)) / 64

ако yAccl> 511:

yAccl -= 1024

zAccl = (данни [5] * 256 + (данни [4] & 0xC0)) / 64

ако zAccl> 511:

zAccl -= 1024

# Извеждане на данни на екрана

отпечатайте "Ускорение по ос X: % d" % xAccl

отпечатайте "Ускорение по оста Y: % d" % yAccl

отпечатайте "Ускорение по ос Z: % d" % zAccl

Кодът се изпълнява със следната команда:

$> python BMA250.py gt; python BMA250.py

Изходът на сензора е показан на горната снимка за справка на потребителя.

Стъпка 4: Приложения:

Приложения
Приложения

Акселерометрите като BMA250 намират своето приложение най -вече в игрите и превключването на профилите на дисплея. Този сензорен модул се използва и в усъвършенстваната система за управление на захранването за мобилни приложения. BMA250 е триаксиален цифров сензор за ускорение, който е интегриран с интелигентен контролер за прекъсвания, задействан от движение на чипа.

Препоръчано: