Përmbajtje:

Matja e përshpejtimit duke përdorur ADXL345 dhe Raspberry Pi: 4 hapa
Matja e përshpejtimit duke përdorur ADXL345 dhe Raspberry Pi: 4 hapa

Video: Matja e përshpejtimit duke përdorur ADXL345 dhe Raspberry Pi: 4 hapa

Video: Matja e përshpejtimit duke përdorur ADXL345 dhe Raspberry Pi: 4 hapa
Video: Matematikë 5 - Ushtrime përforcuese për matjen e këndeve 2024, Nëntor
Anonim
Image
Image

ADXL345 është një akselerometër i vogël, i hollë, me fuqi ultra të ulët, me 3 boshte me matje me rezolucion të lartë (13-bit) deri në ± 16 g. Të dhënat dalëse dixhitale janë të formatuara si plotësuese 16-bitësh dy dhe janë të arritshme përmes ndërfaqes dixhitale I2 C. Mat mat nxitimin statik të gravitetit në aplikimet e ndjeshmërisë së pjerrësisë, si dhe nxitimin dinamik që rezulton nga lëvizja ose goditja. Rezolucioni i tij i lartë (3.9 mg/LSB) mundëson matjen e ndryshimeve të prirjes më pak se 1.0 °.

Në këtë tutorial demonstrohet ndërfaqja e modulit të sensorit ADXL345 me pi mjedër dhe programimi i tij duke përdorur gjuhën python është ilustruar gjithashtu. Për të lexuar vlerat e nxitimit në të gjithë boshtin 3, ne kemi përdorur mjedër pi me një përshtatës I2C. Ky përshtatës I2C e bën lidhjen me modulin e sensorit të lehtë dhe më të besueshëm.

Hapi 1: Kërkohet harduer:

Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer

Materialet që na duhen për të arritur qëllimin tonë përfshijnë përbërësit e mëposhtëm të harduerit:

1. ADXL345

2. Raspberry Pi

3. Kabllo I2C

4. Mburoja I2C për pi mjedër

5. Kabllo Ethernet

Hapi 2: Bashkimi i harduerit:

Lidhja e harduerit
Lidhja e harduerit
Lidhja e harduerit
Lidhja e harduerit

Seksioni i lidhjes së harduerit në thelb shpjegon lidhjet e telave të kërkuara midis sensorit dhe mjedrës pi. Sigurimi i lidhjeve të sakta është nevoja themelore gjatë punës në çdo sistem për daljen e dëshiruar. Pra, lidhjet e nevojshme janë si më poshtë:

ADXL345 do të funksionojë mbi I2C. Këtu është shembulli i diagramit të instalimeve elektrike, duke demonstruar se si të lidhni secilën ndërfaqe të sensorit.

Jashtë kutisë, bordi është i konfiguruar për një ndërfaqe I2C, si i tillë ne rekomandojmë përdorimin e këtij bashkimi nëse përndryshe jeni agnostik.

Gjithçka që ju nevojitet janë katër tela! Vetëm katër lidhje kërkohen kunjat Vcc, Gnd, SCL dhe SDA dhe këto janë të lidhura me ndihmën e kabllit I2C.

Këto lidhje demonstrohen në fotot e mësipërme.

Hapi 3: Kodi për Matjen e Përshpejtimit:

Kodi për Matjen e Përshpejtimit
Kodi për Matjen e Përshpejtimit

Avantazhi i përdorimit të mjedrës pi është, që ju siguron fleksibilitetin e gjuhës programuese në të cilën dëshironi të programoni bordin në mënyrë që të ndërlidhni sensorin me të. Duke shfrytëzuar këtë avantazh të këtij bordi, ne po demonstrojmë këtu programimin e tij në piton. Kodi python për ADXL345 mund të shkarkohet nga komuniteti ynë github që është Control Everything Community.

Si dhe për lehtësinë e përdoruesve, ne po shpjegojmë kodin edhe këtu:

Si hapi i parë i kodimit ju duhet të shkarkoni bibliotekën smbus në rast të python, sepse kjo bibliotekë mbështet funksionet e përdorura në kod. Pra, për të shkarkuar bibliotekën mund të vizitoni lidhjen e mëposhtme:

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

Ju gjithashtu mund të kopjoni kodin python të punës për këtë sensor nga këtu:

import smbus

koha e importit

# Merr autobus I2C = smbus. SMBus (1)

Adresa # ADXL345, 0x53 (83)

# Zgjidh regjistrin e shkallës së brezit, 0x2C (44)

# 0x0A (10) Mënyra normale, Shkalla e të dhënave të daljes = 100 Hz

bus.write_byte_data (0x53, 0x2C, 0x0A)

Adresa # ADXL345, 0x53 (83)

# Zgjidhni regjistrin e kontrollit të energjisë, 0x2D (45)

# 0x08 (08) Çaktivizo gjumin automatik

bus.write_byte_data (0x53, 0x2D, 0x08)

Adresa # ADXL345, 0x53 (83)

# Zgjidh regjistrin e formatit të të dhënave, 0x31 (49)

# 0x08 (08) Vetë-testimi i çaktivizuar, ndërfaqe me 4 tela

# Rezolucion i plotë, Gama = +/- 2g

bus.write_byte_data (0x53, 0x31, 0x08)

koha. gjumi (0.5)

Adresa # ADXL345, 0x53 (83)

# Lexoni të dhënat mbrapa nga 0x32 (50), 2 bajt

# X-Boshti LSB, X-Boshti MSB

data0 = bus.read_byte_data (0x53, 0x32)

data1 = bus.read_byte_data (0x53, 0x33)

# Ktheni të dhënat në 10-bit

xAccl = ((të dhëna1 & 0x03) * 256) + të dhëna0

nëse xAccl> 511:

xAccl -= 1024

Adresa # ADXL345, 0x53 (83)

# Lexoni të dhënat mbrapa nga 0x34 (52), 2 bajt

# Y-Boshti LSB, Y-Boshti MSB

data0 = bus.read_byte_data (0x53, 0x34)

data1 = bus.read_byte_data (0x53, 0x35)

# Ktheni të dhënat në 10-bit

yAccl = ((të dhënat1 & 0x03) * 256) + të dhëna0

nëse yAccl> 511:

yAccl -= 1024

Adresa # ADXL345, 0x53 (83)

# Lexoni të dhënat mbrapa nga 0x36 (54), 2 bajt

# Z-Boshti LSB, Z-Boshti MSB

data0 = bus.read_byte_data (0x53, 0x36)

data1 = bus.read_byte_data (0x53, 0x37)

# Ktheni të dhënat në 10-bit

zAccl = ((të dhëna1 & 0x03) * 256) + të dhëna0

nëse zAccl> 511:

zAccl -= 1024

# Dalja e të dhënave në ekran

print "Përshpejtimi në boshtin X: %d" %xAccl

print "Përshpejtimi në Boshtin Y: %d" %yAccl

print "Përshpejtimi në Boshtin Z: %d" %zAccl

Pjesa e kodit të përmendur më poshtë përfshin bibliotekat e kërkuara për ekzekutimin e saktë të kodeve python.

importo kohë smbusimport

Kodi mund të ekzekutohet duke shtypur komandën e përmendur më poshtë në komandën e shpejtë.

$> python ADXL345.py

Dalja e sensorit tregohet gjithashtu në figurën e mësipërme për referencë të përdoruesit.

Hapi 4: Aplikimet:

Aplikimet
Aplikimet

ADXL345 është një akselerometër i vogël, i hollë, me ultra të ulët, me 3 boshte i cili mund të përdoret në Celularë, instrumente mjekësorë etj. Aplikimi i tij përfshin gjithashtu pajisje për lojëra dhe tregues, instrumente industriale, pajisje të navigimit personal dhe mbrojtje nga hard disku (HDD).

Recommended: