Sisällysluettelo:

Kiihtyvyyden mittaus käyttäen ADXL345 ja Raspberry Pi: 4 vaihetta
Kiihtyvyyden mittaus käyttäen ADXL345 ja Raspberry Pi: 4 vaihetta

Video: Kiihtyvyyden mittaus käyttäen ADXL345 ja Raspberry Pi: 4 vaihetta

Video: Kiihtyvyyden mittaus käyttäen ADXL345 ja Raspberry Pi: 4 vaihetta
Video: PENJELASAN SENSOR AKSELEROMETER 2024, Marraskuu
Anonim
Image
Image

ADXL345 on pieni, ohut, erittäin pienitehoinen, 3-akselinen kiihtyvyysanturi, jonka tarkkuus (13-bittinen) mitataan jopa ± 16 g. Digitaalinen lähtötieto on muotoiltu 16-bittiseksi kaksoiskappaleeksi, ja se on saatavana digitaalisen I2 C-liitännän kautta. Se mittaa staattisen painovoiman kiihtyvyyden kallistusanturisovelluksissa sekä liikkeen tai iskun aiheuttaman dynaamisen kiihtyvyyden. Sen suuri resoluutio (3,9 mg/LSB) mahdollistaa kaltevuuden muutosten mittaamisen alle 1,0 °.

Tässä opetusohjelmassa esitetään ADXL345 -anturimoduulin liitäntä vadelmapi: n kanssa ja sen ohjelmointi python -kielellä on myös kuvattu. Kaikkien 3-akselisten kiihtyvyysarvojen lukemiseen olemme käyttäneet vadelma pi: tä I2C-sovittimen kanssa. Tämä I2C-sovitin tekee liitännän anturimoduuliin helppoa ja luotettavaa.

Vaihe 1: Tarvittava laitteisto:

Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto

Tavoitteemme saavuttamiseen tarvittavat materiaalit sisältävät seuraavat laitteistokomponentit:

1. ADXL345

2. Vadelma Pi

3. I2C -kaapeli

4. I2C Shield vadelmalle pi

5. Ethernet -kaapeli

Vaihe 2: Laitteiston kytkentä:

Laitteiston kytkentä
Laitteiston kytkentä
Laitteiston kytkentä
Laitteiston kytkentä

Laitteiston liitäntäosa selittää periaatteessa anturin ja vadelmapi: n väliset tarvittavat johdotusliitännät. Oikeiden liitosten varmistaminen on perustarve, kun työskentelet minkä tahansa järjestelmän kanssa halutun lähdön saavuttamiseksi. Tarvittavat liitännät ovat siis seuraavat:

ADXL345 toimii I2C: n kautta. Tässä on esimerkki kytkentäkaaviosta, joka osoittaa, miten anturin jokainen liitäntä kytketään.

Valmis levy on konfiguroitu I2C-rajapintaa varten, joten suosittelemme käyttämään tätä kytkentää, jos olet muuten agnostikko.

Tarvitset vain neljä johtoa! Tarvitaan vain neljä liitäntää Vcc, Gnd, SCL ja SDA, ja ne on kytketty I2C -kaapelin avulla.

Nämä yhteydet on esitetty yllä olevissa kuvissa.

Vaihe 3: Kiihtyvyyden mittauskoodi:

Kiihtyvyyden mittauskoodi
Kiihtyvyyden mittauskoodi

Raspberry pi: n käytön etuna on, että se tarjoaa joustavuuden ohjelmointikielelle, jolla haluat ohjelmoida levyn, jotta liitäntä anturiin sen kanssa. Hyödynnämme tämän levyn etua ja esittelemme sen ohjelmointia pythonissa. ADXL345: n python -koodin voi ladata github -yhteisöltämme, joka on Control Everything Community.

Käyttäjien helpottamiseksi selitämme koodin myös täällä:

Koodauksen ensimmäisenä vaiheena sinun on ladattava smbus -kirjasto python -tapauksessa, koska tämä kirjasto tukee koodissa käytettyjä toimintoja. Joten voit ladata kirjaston seuraavasta linkistä:

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

Voit myös kopioida tämän anturin toimivan python -koodin täältä:

tuoda smbus

tuonnin aika

# Hanki I2C -väylä = smbus. SMBus (1)

# ADXL345 -osoite, 0x53 (83)

# Valitse kaistanleveysrekisteri, 0x2C (44)

# 0x0A (10) Normaalitila, Lähdön datanopeus = 100 Hz

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

# ADXL345 -osoite, 0x53 (83)

# Valitse virranhallintarekisteri, 0x2D (45)

# 0x08 (08) Automaattinen lepotila pois käytöstä

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

# ADXL345 -osoite, 0x53 (83)

# Valitse tietomuotorekisteri, 0x31 (49)

# 0x08 (08) Itsetesti pois käytöstä, 4-johtiminen liitäntä

# Täysi resoluutio, alue = +/- 2g

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

aika. unta (0,5)

# ADXL345 -osoite, 0x53 (83)

# Lue tiedot takaisin 0x32 (50), 2 tavua

# X-akseli LSB, X-akseli MSB

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

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

# Muunna tiedot 10-bittisiksi

xAccl = ((data1 & 0x03) * 256) + data0

jos xAccl> 511:

xAccl -= 1024

# ADXL345 -osoite, 0x53 (83)

# Lue tiedot takaisin 0x34 (52), 2 tavua

# Y-akseli LSB, Y-akseli MSB

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

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

# Muunna tiedot 10-bittisiksi

yAccl = ((data1 & 0x03) * 256) + data0

jos yAccl> 511:

yAccl -= 1024

# ADXL345 -osoite, 0x53 (83)

# Lue tiedot takaisin 0x36 (54), 2 tavua

# Z-akseli LSB, Z-akseli MSB

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

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

# Muunna tiedot 10-bittisiksi

zAccl = ((data1 & 0x03) * 256) + data0

jos zAccl> 511:

zAccl -= 1024

# Tulosta tiedot näytölle

tulosta "Kiihtyvyys X-akselilla: %d" %xAccl

tulosta "Kiihtyvyys Y-akselilla: %d" %yAccl

tulosta "Kiihtyvyys Z-akselilla: %d" %zAccl

Alla mainittu koodin osa sisältää kirjastot, joita tarvitaan python -koodien oikeaan suorittamiseen.

tuoda smbusimport -aikaa

Koodi voidaan suorittaa kirjoittamalla alla mainittu komento komentokehotteeseen.

$> python ADXL345.py

Anturin lähtö näkyy myös yllä olevassa kuvassa käyttäjän viitteenä.

Vaihe 4: Sovellukset:

Sovellukset
Sovellukset

ADXL345 on pieni, ohut, erittäin pienitehoinen, 3-akselinen kiihtyvyysmittari, jota voidaan käyttää luureissa, lääketieteellisissä laitteissa jne. Sen sovellus sisältää myös peli- ja osoitinlaitteet, teollisuuslaitteet, henkilökohtaiset navigointilaitteet ja kiintolevyaseman (HDD).

Suositeltava: