Tartalomjegyzék:

A gyorsulás mérése ADXL345 és Raspberry Pi használatával: 4 lépés
A gyorsulás mérése ADXL345 és Raspberry Pi használatával: 4 lépés

Videó: A gyorsulás mérése ADXL345 és Raspberry Pi használatával: 4 lépés

Videó: A gyorsulás mérése ADXL345 és Raspberry Pi használatával: 4 lépés
Videó: Raspberry Pi 4 B - Fluidd, Klipper ADXL345 X-Y rezonancia teszt (4. rész) [4K] 2024, Július
Anonim
Image
Image

Az ADXL345 egy kicsi, vékony, rendkívül alacsony teljesítményű, 3 tengelyes gyorsulásmérő, nagy felbontású (13 bites) méréssel, ± 16 g-ig. A digitális kimeneti adatok 16 bites kettes kiegészítésként vannak formázva, és az I2 C digitális interfészen keresztül érhetők el. Méri a gravitáció statikus gyorsulását dőlésérzékelő alkalmazásokban, valamint a mozgásból vagy ütésből eredő dinamikus gyorsulást. Nagy felbontása (3,9 mg/LSB) lehetővé teszi az 1,0 ° alatti dőlésváltozások mérését.

Ebben az oktatóanyagban bemutatjuk az ADXL345 érzékelő modulnak a málna pi -vel való összekapcsolását, és szemléltetjük a python nyelvű programozását is. A gyorsulás értékeinek leolvasásához az összes 3 tengelyen a málna pi-t használtuk I2C adapterrel. Ez az I2C adapter megkönnyíti és megbízhatóbbá teszi a kapcsolatot az érzékelőmodullal.

1. lépés: Szükséges hardver:

Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver

A célunk eléréséhez szükséges anyagok a következő hardverkomponenseket tartalmazzák:

1. ADXL345

2. Málna Pi

3. I2C kábel

4. I2C Shield málna pi

5. Ethernet kábel

2. lépés: Hardver csatlakoztatása:

Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása

A hardvercsatlakozási szakasz alapvetően elmagyarázza az érzékelő és a málna pi között szükséges vezetékeket. A megfelelő kapcsolatok biztosítása az alapvető szükséglet, amikor bármilyen rendszeren dolgozik a kívánt kimenet érdekében. Tehát a szükséges kapcsolatok a következők:

Az ADXL345 az I2C -n keresztül fog működni. Íme a példa kapcsolási rajz, amely bemutatja, hogyan kell bekötni az érzékelő egyes interfészeit.

A doboz készenlétben I2C interfészre van konfigurálva, ezért javasoljuk, hogy használja ezt a csatlakozást, ha egyébként agnosztikus.

Csak négy vezetékre van szüksége! Csak négy csatlakozóra van szükség Vcc, Gnd, SCL és SDA csapokra, és ezeket I2C kábel segítségével kell csatlakoztatni.

Ezeket az összefüggéseket a fenti képek mutatják be.

3. lépés: A gyorsulás mérésének kódja:

A gyorsulás mérésének kódja
A gyorsulás mérésének kódja

A málna pi használatának előnye az, hogy rugalmasságot biztosít annak a programozási nyelvnek, amelyen a táblát programozni szeretné, hogy az érzékelőt hozzá lehessen illeszteni. A tábla ezen előnyét kihasználva bemutatjuk a programozását a pythonban. Az ADXL345 python kódja letölthető github közösségünkből, ami a Control Everything Community.

A felhasználók kényelme érdekében itt is elmagyarázzuk a kódot:

A kódolás első lépéseként le kell töltenie az smbus könyvtárat python esetén, mert ez a könyvtár támogatja a kódban használt funkciókat. Tehát a könyvtár letöltéséhez látogasson el az alábbi linkre:

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

Innen is másolhatja az érzékelő működő python kódját:

import smbus

importálási idő

# I2C busz beszerzése = smbus. SMBus (1)

# ADXL345 cím, 0x53 (83)

# Válassza ki a sávszélesség -nyilvántartást, 0x2C (44)

# 0x0A (10) Normál mód, kimeneti adatsebesség = 100 Hz

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

# ADXL345 cím, 0x53 (83)

# Válassza ki a teljesítményszabályozó regisztert, 0x2D (45)

# 0x08 (08) Automatikus alvás letiltása

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

# ADXL345 cím, 0x53 (83)

# Válassza ki az adatformátum regisztert, 0x31 (49)

# 0x08 (08) Önteszt tiltva, 4 vezetékes interfész

# Teljes felbontás, tartomány = +/- 2g

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

time.sleep (0,5)

# ADXL345 cím, 0x53 (83)

# Adatok visszaolvasása 0x32 (50), 2 bájtból

# X-tengely LSB, X-tengely MSB

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

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

# Konvertálja az adatokat 10 bitesre

xAccl = ((adat1 és 0x03) * 256) + adat0

ha xAccl> 511:

xAccl -= 1024

# ADXL345 cím, 0x53 (83)

# Adatok visszaolvasása 0x34 (52), 2 bájtból

# Y-tengely LSB, Y-tengely MSB

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

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

# Konvertálja az adatokat 10 bitesre

yAccl = ((adat1 és 0x03) * 256) + adat0

ha yAccl> 511:

yAccl -= 1024

# ADXL345 cím, 0x53 (83)

# Adatok visszaolvasása 0x36 (54), 2 bájtból

# Z-tengely LSB, Z-tengely MSB

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

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

# Konvertálja az adatokat 10 bitesre

zAccl = ((adat1 és 0x03) * 256) + adat0

ha zAccl> 511:

zAccl -= 1024

# Adatok megjelenítése a képernyőn

print "Gyorsulás az X-tengelyben: %d" %xAccl

print "Gyorsulás Y tengelyen: %d" %yAccl

print "Gyorsulás Z-tengelyben: %d" %zAccl

Az alább említett kódrész tartalmazza a python -kódok helyes végrehajtásához szükséges könyvtárakat.

smbusimport idő importálása

A kód végrehajtható az alábbi parancs beírásával a parancssorba.

$> python ADXL345.py

Az érzékelő kimenete a fenti képen is látható a felhasználó számára.

4. lépés: Alkalmazások:

Alkalmazások
Alkalmazások

Az ADXL345 egy kicsi, vékony, rendkívül alacsony teljesítményű, 3 tengelyes gyorsulásmérő, amely kézibeszélőkben, orvosi műszerekben stb. Használható. Alkalmazása magában foglalja a játék- és mutatóeszközöket, az ipari műszereket, a személyi navigációs eszközöket és a merevlemez-meghajtó (HDD) védelmét is.

Ajánlott: