Innholdsfortegnelse:

Akselerasjonsmåling ved bruk av BMA250 og Raspberry Pi: 4 trinn
Akselerasjonsmåling ved bruk av BMA250 og Raspberry Pi: 4 trinn

Video: Akselerasjonsmåling ved bruk av BMA250 og Raspberry Pi: 4 trinn

Video: Akselerasjonsmåling ved bruk av BMA250 og Raspberry Pi: 4 trinn
Video: 25 фактов о Mars Pathfinder с марсоходом Sojourner 1997 года (субтитры) 2024, Juli
Anonim
Image
Image

BMA250 er et lite, tynt, ultralavt, 3-akset akselerometer med høy oppløsning (13-bit) måling på opptil ± 16 g. Digitale utdata er formatert som 16-biters tokomplement og er tilgjengelig via I2C digitalt grensesnitt. Den måler den statiske gravitasjonsakselerasjonen i tilt-sensing-applikasjoner, samt dynamisk akselerasjon som følge av bevegelse eller sjokk. Den høye oppløsningen (3,9 mg/LSB) muliggjør måling av hellingsendringer mindre enn 1,0 °.

I denne opplæringen skal vi måle akselerasjonen i alle de tre vinkelrette aksene ved hjelp av BMA250 og Raspberry Pi. Sensoren er programmert på pythonspråk.

Trinn 1: Nødvendig maskinvare:

Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves

Materialene vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:

1. BMA250

2. Bringebær Pi

3. I2C -kabel

4. I2C Shield for Raspberry Pi

5. Ethernet -kabel

Trinn 2: Maskinvaretilkobling:

Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling

Maskinvaretilkoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og bringebær -pi. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:

BMA250 vil fungere over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.

Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker. Alt du trenger er fire ledninger!

Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.

Disse sammenhengene er vist på bildene ovenfor.

Trinn 3: Python -kode for akselerasjonsmåling:

Python -kode for måling av akselerasjon
Python -kode for måling av akselerasjon
Python -kode for måling av akselerasjon
Python -kode for måling av akselerasjon

Fordelen med å bruke bringebær pi er at det gir deg fleksibiliteten til programmeringsspråket der du vil programmere brettet for å koble sensoren til det. Ved å utnytte denne fordelen med dette brettet, demonstrerer vi her programmeringen i python. Python er et av de enkleste programmeringsspråkene med den enkleste syntaksen. Python -koden for BMA250 kan lastes ned fra vårt GitHub -fellesskap som er Dcube Store

I tillegg til brukernes brukervennlighet, forklarer vi koden også her:

Som det første trinnet i kodingen må du laste ned SMBus -biblioteket i tilfelle python fordi dette biblioteket støtter funksjonene som brukes i koden. Så for å laste ned biblioteket kan du besøke følgende lenke:

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

Du kan også kopiere arbeidskoden herfra:

importer smbus

importtid

# Få I2C -bussbuss = smbus. SMBus (1)

# BMA250 -adresse, 0x18 (24)

# Velg register for registervalg, 0x0F (15)

# 0x03 (03) Angi område = +/- 2gbus.write_byte_data (0x18, 0x0F, 0x03)

# BMA250 -adresse, 0x18 (24)# Velg båndbredderegister, 0x10 (16)

# 0x08 (08) Båndbredde = 7,81 Hzbus.write_byte_data (0x18, 0x10, 0x08)

time.sleep (0,5)

# BMA250 -adresse, 0x18 (24)

# Les data tilbake fra 0x02 (02), 6 byte

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

data = bus.read_i2c_block_data (0x18, 0x02, 6)

# Konverter dataene til 10 bits

xAccl = (data [1] * 256 + (data [0] og 0xC0)) / 64

hvis xAccl> 511:

xAccl -= 1024

yAccl = (data [3] * 256 + (data [2] og 0xC0)) / 64

hvis yAccl> 511:

yAccl -= 1024

zAccl = (data [5] * 256 + (data [4] og 0xC0)) / 64

hvis zAccl> 511:

zAccl -= 1024

# Utdata til skjermen

print "Akselerasjon i X-aksen: % d" % xAccl

print "Akselerasjon i Y-aksen: % d" % yAccl

print "Akselerasjon i Z-aksen: % d" % zAccl

Koden kjøres med følgende kommando:

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

Sensorens utgang er vist på bildet ovenfor for referanse til brukeren.

Trinn 4: Søknader:

Applikasjoner
Applikasjoner

Akselerometre som BMA250 finner stort sett sin anvendelse i spillene og bytte profilvisning. Denne sensormodulen brukes også i det avanserte strømstyringssystemet for mobile applikasjoner. BMA250 er en triaksial digital akselerasjonssensor som er integrert med en intelligent bevegelsesutløst avbryterkontroller på brikken.

Anbefalt: