Inhaltsverzeichnis:

Raspberry Pi - ADXL345 3-Achsen-Beschleunigungsmesser Python Tutorial - Gunook
Raspberry Pi - ADXL345 3-Achsen-Beschleunigungsmesser Python Tutorial - Gunook

Video: Raspberry Pi - ADXL345 3-Achsen-Beschleunigungsmesser Python Tutorial - Gunook

Video: Raspberry Pi - ADXL345 3-Achsen-Beschleunigungsmesser Python Tutorial - Gunook
Video: How To Track Orientation with Arduino | ADXL345 Accelerometer Tutorial 2024, November
Anonim

Der ADXL345 ist ein kleiner, dünner 3-Achsen-Beschleunigungsmesser mit extrem geringem Stromverbrauch und hoher Auflösung (13 Bit) bei bis zu ±16 g. Digitale Ausgangsdaten werden als 16-Bit-Zweierkomplement formatiert und sind über die digitale I2 C-Schnittstelle zugänglich. Es misst die statische Gravitationsbeschleunigung bei Neigungserkennungsanwendungen sowie die dynamische Beschleunigung aufgrund von Bewegungen oder Stößen. Seine hohe Auflösung (3,9 mg/LSB) ermöglicht die Messung von Neigungsänderungen unter 1,0°. Hier ist es eine Demonstration mit Himbeer-Pi mit Python-Code.

Schritt 1: Was Sie brauchen.

Was du brauchst..!!
Was du brauchst..!!
Was du brauchst..!!
Was du brauchst..!!

1. Himbeer-Pi

2. ADXL345

3. I²C-Kabel

4. I²C-Shield für Raspberry Pi

5. Ethernet-Kabel

Schritt 2: Verbindung:

Verbindung
Verbindung
Verbindung
Verbindung
Verbindung
Verbindung
Verbindung
Verbindung

Nehmen Sie ein I2C-Schild für Himbeer-Pi und schieben Sie es vorsichtig über die gpio-Pins von Himbeer-Pi.

Verbinden Sie dann das eine Ende des I2C-Kabels mit dem ADXL345-Sensor und das andere Ende mit der I2C-Abschirmung.

Verbinden Sie auch das Ethernet-Kabel mit dem Pi oder verwenden Sie ein WiFi-Modul.

Die Anschlüsse sind im Bild oben dargestellt.

Schritt 3: Code:

Code
Code

Der Python-Code für ADXL345 kann von unserem GitHub-Repository heruntergeladen werden - Dcube Store

Hier der Link dazu:

github.com/DcubeTechVentures/ADXL345..

Wir haben die SMBus-Bibliothek für Python-Code verwendet, die Schritte zur Installation von SMBus auf Raspberry Pi sind hier beschrieben:

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

Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:

# Wird mit freier Lizenz verteilt.

# Verwenden Sie es nach Belieben, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.

# ADXL345

# Dieser Code wurde entwickelt, um mit dem ADXL345_I2CS I2C Mini-Modul zu arbeiten, das im Dcube Store erhältlich ist.

smbus importieren

Importzeit

# Holen Sie sich den I2C-Bus

bus = smbus. SMBus(1)

# ADXL345-Adresse, 0x53(83)

# Bandbreitenratenregister auswählen, 0x2C(44)# 0x0A(10) Normalmodus, Ausgangsdatenrate = 100 Hz

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

# ADXL345-Adresse, 0x53(83)

# Leistungssteuerregister auswählen, 0x2D(45)

# 0x08(08) Auto-Sleep deaktivieren

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

# ADXL345-Adresse, 0x53(83)

# Datenformatregister auswählen, 0x31(49)

# 0x08(08) Selbsttest deaktiviert, 4-Draht-Schnittstelle

# Volle Auflösung, Bereich = +/-2g

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

time.sleep(0.5)

# ADXL345-Adresse, 0x53(83)

# Daten von 0x32(50) zurücklesen, 2 Byte

# X-Achsen-LSB, X-Achsen-MSB

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

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

# Konvertieren Sie die Daten in 10-Bits

xAccl = ((Daten1 & 0x03) * 256) + Daten0

wenn xAccl > 511:

xAccl -= 1024

# ADXL345-Adresse, 0x53(83)

# Daten von 0x34(52), 2 Bytes zurücklesen

# Y-Achsen-LSB, Y-Achsen-MSB

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

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

# Konvertieren Sie die Daten in 10-Bits

yAccl = ((Daten1 & 0x03) * 256) + Daten0

wenn yAccl > 511:

yAccl -= 1024

# ADXL345-Adresse, 0x53(83)

# Daten von 0x36(54), 2 Bytes zurücklesen

# Z-Achse LSB, Z-Achse MSB

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

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

# Konvertieren Sie die Daten in 10-Bits

zAccl = ((Daten1 & 0x03) * 256) + Daten0

wenn zAccl > 511:

zAccl -= 1024

# Daten auf den Bildschirm ausgeben

print "Beschleunigung in X-Achse: %d" %xAccl

print "Beschleunigung in Y-Achse: %d" %yAccl

print "Beschleunigung in Z-Achse: %d" %zAccl

Schritt 4: Anwendungen:

ADXL345 ist ein kleiner, dünner 3-Achsen-Beschleunigungsmesser mit extrem geringem Stromverbrauch, der in Handsets, medizinischen Instrumenten usw. eingesetzt werden kann. Seine Anwendung umfasst auch Spiel- und Zeigegeräte, industrielle Instrumente, persönliche Navigationsgeräte und Festplattenschutz (HDD).

Empfohlen: