Sommario:

Raspberry Pi - Tutorial Python per accelerometro a 3 assi ADXL345: 4 passaggi
Raspberry Pi - Tutorial Python per accelerometro a 3 assi ADXL345: 4 passaggi

Video: Raspberry Pi - Tutorial Python per accelerometro a 3 assi ADXL345: 4 passaggi

Video: Raspberry Pi - Tutorial Python per accelerometro a 3 assi ADXL345: 4 passaggi
Video: Provok3d ADXL Nozzle Board for Perfect Input Shaping! 2024, Luglio
Anonim

L'ADXL345 è un accelerometro a 3 assi piccolo, sottile, a bassissima potenza con misurazione ad alta risoluzione (13 bit) fino a ±16 g. I dati di uscita digitale sono formattati come complemento a due a 16 bit ed è accessibile tramite l'interfaccia digitale I2 C. Misura l'accelerazione statica di gravità nelle applicazioni di rilevamento dell'inclinazione, nonché l'accelerazione dinamica risultante dal movimento o da urti. La sua alta risoluzione (3,9 mg/LSB) consente di misurare variazioni di inclinazione inferiori a 1,0°. Ecco la dimostrazione con raspberry pi usando il codice python.

Passaggio 1: ciò di cui hai bisogno.

Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!

1. Lampone Pi

2. ADXL345

3. Cavo I²C

4. Scudo I²C per Raspberry Pi

5. Cavo Ethernet

Passaggio 2: connessione:

Connessione
Connessione
Connessione
Connessione
Connessione
Connessione
Connessione
Connessione

Prendi uno scudo I2C per lampone pi e spingilo delicatamente sui pin gpio di lampone pi.

Quindi collegare un'estremità del cavo I2C al sensore ADXL345 e l'altra estremità allo schermo I2C.

Collega anche il cavo Ethernet al pi oppure puoi utilizzare un modulo WiFi.

I collegamenti sono mostrati nell'immagine sopra.

Passaggio 3: codice:

Codice
Codice

Il codice Python per ADXL345 può essere scaricato dal nostro repository GitHub - Dcube Store

Ecco il link per lo stesso:

github.com/DcubeTechVentures/ADXL345..

Abbiamo utilizzato la libreria SMBus per il codice Python, i passaggi per installare SMBus su raspberry pi sono descritti qui:

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

Puoi anche copiare il codice da qui, è fornito come segue:

# Distribuito con una licenza libera.

# Usalo come preferisci, a scopo di lucro o gratuito, a condizione che si adatti alle licenze delle opere associate.

# ADXL345

# Questo codice è progettato per funzionare con il Mini Modulo I2C ADXL345_I2CS disponibile in Dcube Store.

import smbus

tempo di importazione

# Ottieni l'autobus I2C

bus = smbus. SMBus(1)

# Indirizzo ADXL345, 0x53(83)

# Seleziona il registro della velocità della larghezza di banda, 0x2C(44)# 0x0A(10) Modalità normale, Velocità dati in uscita = 100 Hz

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

# Indirizzo ADXL345, 0x53(83)

# Seleziona il registro di controllo della potenza, 0x2D(45)

# 0x08(08) Disattivazione della sospensione automatica

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

# Indirizzo ADXL345, 0x53(83)

# Seleziona registro formato dati, 0x31(49)

# 0x08(08) Autotest disabilitato, interfaccia a 4 fili

# Risoluzione completa, intervallo = +/-2 g

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

tempo.sonno(0.5)

# Indirizzo ADXL345, 0x53(83)

# Rilegge i dati da 0x32(50), 2 byte

# Asse X LSB, Asse X MSB

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

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

# Converti i dati in 10 bit

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

se xAccl > 511:

xAccl -= 1024

# Indirizzo ADXL345, 0x53(83)

# Rilegge i dati da 0x34(52), 2 byte

# Asse Y LSB, Asse Y MSB

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

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

# Converti i dati in 10 bit

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

se yAccl > 511:

yAccl -= 1024

# Indirizzo ADXL345, 0x53(83)

# Rilegge i dati da 0x36(54), 2 byte

# Asse Z LSB, Asse Z MSB

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

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

# Converti i dati in 10 bit

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

se zAccl > 511:

zAccl -= 1024

# Invia i dati allo schermo

print "Accelerazione nell'asse X: %d" %xAccl

print "Accelerazione nell'asse Y: %d" %yAccl

print "Accelerazione nell'asse Z: %d" %zAccl

Passaggio 4: applicazioni:

ADXL345 è un piccolo, sottile, accelerometro a 3 assi a potenza ultrabassa che può essere impiegato in telefoni cellulari, strumentazione medica ecc. La sua applicazione include anche dispositivi di puntamento e di gioco, strumentazione industriale, dispositivi di navigazione personale e protezione dell'unità disco rigido (HDD).

Consigliato: