Мазмуну:

BMA250 жана Raspberry Pi колдонуу менен ылдамдатуу өлчөөсү: 4 кадам
BMA250 жана Raspberry Pi колдонуу менен ылдамдатуу өлчөөсү: 4 кадам

Video: BMA250 жана Raspberry Pi колдонуу менен ылдамдатуу өлчөөсү: 4 кадам

Video: BMA250 жана Raspberry Pi колдонуу менен ылдамдатуу өлчөөсү: 4 кадам
Video: Particle Photon BMA250 Digital Triaxial Acceleration Sensor Tutorial 2024, Июль
Anonim
Image
Image

BMA250-кичине, ичке, ультра кубаттуу, 3 октук акселерометр, ± 16 г чейин жогорку чечилиште (13-бит) өлчөө. Санариптик чыгуучу маалыматтар 16 биттик эки катары толукталган жана I2C санариптик интерфейси аркылуу жеткиликтүү. Бул эңкейүүнү сезүүчү колдонмолордо тартылуу күчүнүн статикалык ылдамдатуусун, ошондой эле кыймылдан же шоктон келип чыккан динамикалык ылдамданууну өлчөйт. Анын жогорку токтому (3,9 мг/LSB) жантайыштын өзгөрүүсүн 1,0 ° дан аз өлчөөгө мүмкүндүк берет.

Бул окуу куралында биз BMA250 жана Raspberry Pi менен үч перпендикуляр огунда ылдамданууну өлчөйбүз. Сенсор питон тилинде программаланган.

1 -кадам: Аппараттык камсыздоо талап кылынат:

Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат

Максатыбызга жетүү үчүн бизге керектүү материалдар төмөнкү аппараттык компоненттерди камтыйт:

1. BMA250

2. Raspberry Pi

3. I2C кабели

4. Raspberry Pi үчүн I2C Shield

5. Ethernet кабели

2 -кадам: Аппараттык туташуу:

Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу

Аппараттык туташуу бөлүмү негизинен сенсор менен малина пи ортосунда талап кылынган зым байланыштарын түшүндүрөт. Туура туташууларды камсыздоо каалаган өндүрүш үчүн кандайдыр бир системада иштеп жатканда негизги зарылчылык болуп саналат. Ошентип, керектүү байланыштар төмөнкүлөр:

BMA250 I2C үстүндө иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.

Кутудан тышкары, такта I2C интерфейси үчүн конфигурацияланган, андыктан эгер сиз агностиксиз болсоңуз, анда бул байланышты колдонууну сунуштайбыз. Сизге болгону төрт зым керек!

Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.

Бул байланыштар жогорудагы сүрөттөрдө көрсөтүлгөн.

3 -кадам: Ылдамданууну өлчөө үчүн Python коду:

Ылдамданууну өлчөө үчүн Python коду
Ылдамданууну өлчөө үчүн Python коду
Ылдамданууну өлчөө үчүн Python коду
Ылдамданууну өлчөө үчүн Python коду

Малина пи колдонуунун артыкчылыгы, башкача айтканда, сенсорго интерфейс үчүн тактаны программалоону каалаган программалоо тилинин ийкемдүүлүгүн камсыздайт. Бул тактанын артыкчылыгынан пайдаланып, биз бул жерде анын питондогу программалоосун көрсөтүп жатабыз. Python - эң оңой синтаксиси бар эң оңой программалоо тилдеринин бири. BMA250 үчүн питон кодун биздин GitHub жамаатынан жүктөп алса болот, бул Dcube Store

Колдонуучулардын ыңгайлуулугу үчүн, биз бул жерде кодду түшүндүрүп жатабыз:

Коддоонун биринчи кадамы катары, питон болгон учурда SMBus китепканасын жүктөп алуу керек, анткени бул китепкана коддо колдонулган функцияларды колдойт. Ошентип, китепкананы жүктөө үчүн төмөнкү шилтемеге кире аласыз:

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

Жумуш кодун бул жерден көчүрүп алсаңыз болот:

smbus импорттоо

импорттоо убактысы

# Get I2C busbus = 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)

убакыт.уйку (0.5)

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

# 0x02 (02), 6 байт маалыматтарын кайра окуу

# X-Axis LSB, X-Axis MSB, Y-Axis LSB, Y-Axis MSB, Z-Axis LSB, Z-Axis 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

# Экранга маалыматтарды чыгаруу

басып чыгаруу "Акселерде ылдамдануу: % d" % xAccl

басып чыгаруу "Y огунда ылдамдануу: % d" % yAccl

басып чыгаруу "Z-огунда ылдамдануу: % d" % zAccl

Код төмөнкү буйруктун жардамы менен аткарылат:

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

Сенсордун чыгышы колдонуучунун маалымдамасы үчүн жогорудагы сүрөттө көрсөтүлгөн.

4 -кадам: Тиркемелер:

Колдонмолор
Колдонмолор

BMA250 сыяктуу акселерометрлер негизинен оюндарды колдонууда табышат жана профилдин которулушун көрсөтүшөт. Бул сенсор модулу мобилдик тиркемелер үчүн заманбап кубатты башкаруу тутумунда да колдонулат. BMA250-интеллектуалдык чиптин кыймылга келтирүүчү үзгүлтүк контроллери менен коштолгон үч фазалуу санарип ылдамдатуу сенсору.

Сунушталууда: