Mundarija:

BMA250 va Raspberry Pi yordamida tezlikni o'lchash: 4 qadam
BMA250 va Raspberry Pi yordamida tezlikni o'lchash: 4 qadam

Video: BMA250 va Raspberry Pi yordamida tezlikni o'lchash: 4 qadam

Video: BMA250 va Raspberry Pi yordamida tezlikni o'lchash: 4 qadam
Video: Raspberry Pi BMA250 Digital Triaxial Acceleration Sensor Python Tutorial 2024, Iyul
Anonim
Image
Image

BMA250-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13-bitli) ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2C raqamli interfeysi orqali kirish mumkin. Nishab olishda tortishish statik tezlanishini, shuningdek harakat yoki zarba natijasida dinamik tezlanishni o'lchaydi. Uning yuqori aniqligi (3,9 mg/LSB) moyillik o'zgarishlarini 1,0 ° dan past o'lchash imkonini beradi.

Ushbu qo'llanmada biz BMA250 va Raspberry Pi yordamida uchta perpendikulyar o'qning tezlanishini o'lchaymiz. Sensor python tilida dasturlashtirilgan.

1 -qadam: Uskuna kerak:

Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi

Maqsadga erishish uchun bizga kerak bo'lgan materiallar quyidagi apparat komponentlarini o'z ichiga oladi:

1. BMA250

2. Raspberry Pi

3. I2C kabeli

4. Raspberry Pi uchun I2C qalqoni

5. Ethernet kabeli

2 -qadam: Uskuna ulanishi:

Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi

Uskuna ulanish bo'limi, asosan, sensori va malina pi o'rtasida zarur bo'lgan simi ulanishlarini tushuntiradi. To'g'ri ulanishni ta'minlash har qanday tizimda kerakli chiqish uchun ishlashning asosiy zarurati hisoblanadi. Shunday qilib, kerakli ulanishlar quyidagilar:

BMA250 I2C ustida ishlaydi. Sensorning har bir interfeysini qanday ulash kerakligini ko'rsatadigan simlar sxemasi.

Qutidan tashqari, taxta I2C interfeysi uchun tuzilgan, shuning uchun agar siz agnostik bo'lsangiz, biz ushbu ulanishni ishlatishni maslahat beramiz. Sizga faqat to'rtta sim kerak!

Vcc, Gnd, SCL va SDA pinlari uchun faqat to'rtta ulanish kerak va ular I2C kabeli yordamida ulangan.

Bu ulanishlar yuqoridagi rasmlarda ko'rsatilgan.

3 -qadam: Tezlikni o'lchash uchun Python kodi:

Tezlikni o'lchash uchun Python kodi
Tezlikni o'lchash uchun Python kodi
Tezlikni o'lchash uchun Python kodi
Tezlikni o'lchash uchun Python kodi

Malinali pi -ni ishlatishning afzalligi shundaki, u sizga sensorni interfeysga ulash uchun taxtani dasturlashni xohlagan dasturlash tilining moslashuvchanligini ta'minlaydi. Ushbu taxtaning afzalliklaridan foydalanib, biz bu erda uning pitonda dasturlashini namoyish qilamiz. Python - sintaksisiga ega bo'lgan eng oson dasturlash tillaridan biri. BMA250 uchun python kodini bizning GitHub hamjamiyatidan yuklab olish mumkin, bu Dcube do'koni

Foydalanuvchilarning qulayligi uchun biz bu erda ham kodni tushuntiramiz:

Kodlashning birinchi bosqichi sifatida siz python holatida SMBus kutubxonasini yuklab olishingiz kerak, chunki bu kutubxona kodda ishlatiladigan funktsiyalarni qo'llab -quvvatlaydi. Shunday qilib, kutubxonani yuklab olish uchun quyidagi havolaga kirishingiz mumkin:

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

Ish kodini bu erdan nusxalashingiz mumkin:

smbus import qilish

import vaqti

# I2C avtobusini oling = smbus. SMBus (1)

# BMA250 manzili, 0x18 (24)

# Diapazon tanlash registrini tanlang, 0x0F (15)

# 0x03 (03) oralig'ini belgilang = +/- 2gbus.write_byte_data (0x18, 0x0F, 0x03)

# BMA250 manzili, 0x18 (24)# Tarmoqli o'tkazish registrini tanlang, 0x10 (16)

# 0x08 (08) tarmoqli kengligi = 7.81 Hzbus.write_byte_data (0x18, 0x10, 0x08)

vaqt uyqu (0,5)

# BMA250 manzili, 0x18 (24)

# Ma'lumotni 0x02 (02), 6 baytdan qaytarib o'qing

# X-Axis LSB, X-Axis MSB, Y-Axis LSB, Y-Axis MSB, Z-Axis LSB, Z-Axis MSB

ma'lumotlar = bus.read_i2c_block_data (0x18, 0x02, 6)

# Ma'lumotni 10 bitga aylantiring

xAccl = (ma'lumotlar [1] * 256 + (ma'lumotlar [0] va 0xC0)) / 64

agar xAccl> 511:

xAccl -= 1024

yAccl = (ma'lumotlar [3] * 256 + (ma'lumotlar [2] va 0xC0)) / 64

agar yAccl> 511 bo'lsa:

yAccl -= 1024

zAccl = (ma'lumotlar [5] * 256 + (ma'lumotlar [4] va 0xC0)) / 64

agar zAccl> 511:

zAccl -= 1024

# Ma'lumotlarni ekranga chiqarish

chop etish "X o'qida tezlashtirish: % d" % xAccl

chop etish "Y o'qida tezlashtirish: % d" % yAccl

chop etish "Z o'qida tezlashtirish: % d" % zAccl

Kod quyidagi buyruq yordamida bajariladi:

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

Sensor chiqishi foydalanuvchining ma'lumoti uchun yuqoridagi rasmda ko'rsatilgan.

4 -qadam: Ilovalar:

Ilovalar
Ilovalar

BMA250 kabi akselerometrlar asosan o'yinlarda va profilni almashtirishda ishlatiladi. Ushbu sensorli modul, shuningdek, mobil ilovalar uchun quvvatni boshqarishning ilg'or tizimida ham qo'llaniladi. BMA250-bu uch fazali raqamli tezlashtirish sensori bo'lib, u aqlli chipda harakatlanuvchi uzilishlar boshqaruvchisi bilan jihozlangan.

Tavsiya: