Съдържание:
- Стъпка 1: Изисква се хардуер:
- Стъпка 2: Свързване на хардуера:
- Стъпка 3: Python код за измерване на ускорението:
- Стъпка 4: Приложения:
Видео: Измерване на ускорението с помощта на BMA250 и Raspberry Pi: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
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 код за измерване на ускорението:
Предимството на използването на малинов 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 е триаксиален цифров сензор за ускорение, който е интегриран с интелигентен контролер за прекъсвания, задействан от движение на чипа.
Препоръчано:
Измерване на ускорението с помощта на ADXL345 и частичен фотон: 4 стъпки
Измерване на ускорението с помощта на ADXL345 и частичен фотон: ADXL345 е малък, тънък, 3-осен акселерометър с ултра ниска мощност с измерване с висока разделителна способност (13 бита) до ± 16 g. Цифровите изходни данни са форматирани като 16-битови двойки, допълващи се и са достъпни чрез I2 C цифров интерфейс. Измерва
Измерване на ускорението с помощта на ADXL345 и Raspberry Pi: 4 стъпки
Измерване на ускорението с помощта на ADXL345 и Raspberry Pi: ADXL345 е малък, тънък, 3-осен акселерометър с ултра ниска мощност с измерване с висока разделителна способност (13 бита) до ± 16 g. Цифровите изходни данни са форматирани като 16-битови двойки, допълващи се и са достъпни чрез I2 C цифров интерфейс. Измерва
Измерване на ускорението с помощта на H3LIS331DL и Raspberry Pi: 4 стъпки
Измерване на ускорението с помощта на H3LIS331DL и Raspberry Pi: H3LIS331DL, е нискомощен високоефективен 3-осен линеен акселерометър, принадлежащ към семейството „нано“, с цифров I²C сериен интерфейс. H3LIS331DL има избираеми от потребителя пълни скали от ± 100g/± 200g/± 400g и е в състояние да измерва ускорения w
Измерване на ускорението с помощта на BMA250 и Arduino Nano: 4 стъпки
Измерване на ускорението с помощта на BMA250 и Arduino Nano: BMA250 е малък, тънък, 3-осен акселерометър с ултра ниска мощност с измерване с висока разделителна способност (13 бита) до ± 16 g. Цифровите изходни данни са форматирани като 16-битови двойки, допълващи се и са достъпни чрез I2C цифров интерфейс. Измерва статичното
Измерване на ускорението с помощта на BMA250 и фотон на частици: 4 стъпки
Измерване на ускорението с помощта на BMA250 и частичен фотон: BMA250 е малък, тънък, 3-осен акселерометър с ултра ниска мощност с измерване с висока разделителна способност (13 бита) до ± 16 g. Цифровите изходни данни са форматирани като 16-битови двойки, допълващи се и са достъпни чрез I2C цифров интерфейс. Измерва статичното