Sisukord:

Kiirenduse mõõtmine ADXL345 ja Raspberry Pi abil: 4 sammu
Kiirenduse mõõtmine ADXL345 ja Raspberry Pi abil: 4 sammu

Video: Kiirenduse mõõtmine ADXL345 ja Raspberry Pi abil: 4 sammu

Video: Kiirenduse mõõtmine ADXL345 ja Raspberry Pi abil: 4 sammu
Video: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, November
Anonim
Image
Image

ADXL345 on väike, õhuke, üliväikese võimsusega 3-teljeline kiirendusmõõtur, millel on kõrge eraldusvõimega (13-bitine) mõõtmine kuni ± 16 g. Digitaalsed väljundandmed on vormindatud 16-bitiste kaheosaliste täienditena ja neile on juurdepääs digitaalse liidese I2 C kaudu. Mõõdab staatilist raskuskiirendust kaldetundlikes rakendustes, samuti liikumisest või põrutusest tulenevat dünaamilist kiirendust. Selle kõrge eraldusvõime (3,9 mg/LSB) võimaldab mõõta kalde muutusi alla 1,0 °.

Selles õpetuses on näidatud ADXL345 andurimooduli liidestamist vaarika pi -ga ja illustreeritud on ka selle programmeerimine python -keelt kasutades. Kiirenduse väärtuste lugemiseks kõigil 3-teljel oleme kasutanud vaarika pi koos I2C adapteriga. See I2C adapter muudab ühenduse andurimooduliga lihtsaks ja usaldusväärsemaks.

Samm: vajalik riistvara:

Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara

Eesmärgi saavutamiseks vajalikud materjalid sisaldavad järgmisi riistvarakomponente:

1. ADXL345

2. Vaarika Pi

3. I2C kaabel

4. I2C Shield vaarika pi jaoks

5. Etherneti kaabel

2. samm: riistvara ühendamine:

Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine

Riistvara ühendamise jaotis selgitab põhimõtteliselt anduri ja vaarika pi vahel vajalikke juhtmestiku ühendusi. Soovitud väljundi mis tahes süsteemiga töötamisel on põhivajadus õigete ühenduste tagamine. Seega on vajalikud ühendused järgmised:

ADXL345 töötab üle I2C. Siin on näide ühendusskeemist, mis näitab, kuidas anduri iga liidest ühendada.

Valmis plaat on konfigureeritud I2C liidese jaoks, seega soovitame seda ühendamist kasutada, kui olete muidu agnostik.

Kõik, mida vajate, on neli juhtmest! Vaja on ainult nelja ühendust Vcc, Gnd, SCL ja SDA ning need ühendatakse I2C kaabli abil.

Neid seoseid on näidatud ülaltoodud piltidel.

3. samm: kiirenduse mõõtmise kood:

Kiirenduse mõõtmise kood
Kiirenduse mõõtmise kood

Vaarika pi kasutamise eeliseks on see, et saate paindlikult programmeerimiskeelt, milles soovite plaati programmeerida, et andurit sellega liidestada. Kasutades selle plaadi eeliseid, demonstreerime siin selle programmeerimist pythonis. ADXL345 püütoni koodi saab alla laadida meie githubi kogukonnast, mis on Control Everything Community.

Lisaks kasutajate mugavusele selgitame koodi ka siin:

Kodeerimise esimese sammuna peate pythoni korral alla laadima smbus -raamatukogu, kuna see teek toetab koodis kasutatavaid funktsioone. Niisiis, teegi allalaadimiseks võite külastada järgmist linki:

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

Siit saate kopeerida ka selle anduri töötava püütoni koodi:

import smbus

impordi aeg

# Hankige I2C siinus = smbus. SMBus (1)

# ADXL345 aadress, 0x53 (83)

# Valige ribalaiuse kiirusregister, 0x2C (44)

# 0x0A (10) Tavaline režiim, väljundandmesagedus = 100 Hz

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

# ADXL345 aadress, 0x53 (83)

# Valige toitejuhtimisregister, 0x2D (45)

# 0x08 (08) Automaatne unerežiimi keelamine

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

# ADXL345 aadress, 0x53 (83)

# Valige andmevorminguregister, 0x31 (49)

# 0x08 (08) Enesetesti on keelatud, 4-juhtmeline liides

# Täisresolutsioon, vahemik = +/- 2g

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

aeg. uni (0,5)

# ADXL345 aadress, 0x53 (83)

# Lugege andmeid tagasi 0x32 (50), 2 baiti

# X-telg LSB, X-telg MSB

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

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

# Teisendage andmed 10-bitisteks

xAccl = ((andmed1 & 0x03) * 256) + andmed0

kui xAccl> 511:

xAccl -= 1024

# ADXL345 aadress, 0x53 (83)

# Lugege andmeid tagasi 0x34 (52), 2 baiti

# Y-telg LSB, Y-telg MSB

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

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

# Teisendage andmed 10-bitisteks

yAccl = ((andmed1 & 0x03) * 256) + andmed0

kui yAccl> 511:

yAccl -= 1024

# ADXL345 aadress, 0x53 (83)

# Lugege andmeid tagasi 0x36 (54), 2 baiti

# Z-telg LSB, Z-telg MSB

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

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

# Teisendage andmed 10-bitisteks

zAccl = ((andmed1 & 0x03) * 256) + andmed0

kui zAccl> 511:

zAccl -= 1024

# Väljastage andmed ekraanile

print "Kiirendus X-teljel: %d" %xAccl

print "Kiirendus Y-teljel: %d" %yAccl

print "Z-telje kiirendus: %d" %zAccl

Allpool mainitud koodi osa sisaldab teeke, mida on vaja püütoni koodide õigeks täitmiseks.

impordi importimise aeg

Koodi saab käivitada, sisestades käsureale allpool nimetatud käsu.

$> python ADXL345.py

Anduri väljund on kasutaja jaoks viidatud ka ülaltoodud pildile.

4. samm: rakendused:

Rakendused
Rakendused

ADXL345 on väike, õhuke, üliväikese võimsusega 3-teljeline kiirendusmõõtur, mida saab kasutada mobiiltelefonides, meditsiiniseadmetes jne. Selle rakendus hõlmab ka mängu- ja osutusseadmeid, tööstusseadmeid, isiklikke navigeerimisseadmeid ja kõvaketta kaitset.

Soovitan: