Sommario:

Misurazione dell'accelerazione utilizzando H3LIS331DL e Raspberry Pi: 4 passaggi
Misurazione dell'accelerazione utilizzando H3LIS331DL e Raspberry Pi: 4 passaggi

Video: Misurazione dell'accelerazione utilizzando H3LIS331DL e Raspberry Pi: 4 passaggi

Video: Misurazione dell'accelerazione utilizzando H3LIS331DL e Raspberry Pi: 4 passaggi
Video: Raspberry Pi Pico W LESSON 40: Measuring Acceleration with the MPU6050 Six Axis IMU 2024, Dicembre
Anonim
Image
Image

H3LIS331DL, è un accelerometro lineare a 3 assi a basso consumo e alte prestazioni appartenente alla famiglia “nano”, con interfaccia seriale digitale I²C. H3LIS331DL ha fondo scala selezionabile dall'utente di ±100g/±200g/±400g ed è in grado di misurare accelerazioni con velocità di trasmissione dati da 0,5 Hz a 1 kHz. L'H3LIS331DL è garantito per funzionare in un intervallo di temperatura esteso da -40 °C a +85 °C.

In questo tutorial dimostreremo l'interfacciamento di H3LIS331DL con Raspberry Pi, utilizzando python come linguaggio di programmazione.

Passaggio 1: hardware richiesto:

Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto

I materiali di cui abbiamo bisogno per raggiungere il nostro obiettivo includono i seguenti componenti hardware:

1. H3LIS331DL

2. Raspberry Pi

3. Cavo I2C

4. Scudo I2C per lampone pi

5. Cavo Ethernet

Passaggio 2: collegamento hardware:

Collegamento hardware
Collegamento hardware
Collegamento hardware
Collegamento hardware

La sezione relativa ai collegamenti hardware spiega sostanzialmente le connessioni di cablaggio necessarie tra il sensore e il Raspberry Pi. Garantire connessioni corrette è la necessità di base mentre si lavora su qualsiasi sistema per l'output desiderato. Quindi, i collegamenti necessari sono i seguenti:

L'H3LIS331DL funzionerà su I2C. Ecco lo schema elettrico di esempio, che mostra come cablare ciascuna interfaccia del sensore.

Di default, la scheda è configurata per un'interfaccia I2C, quindi consigliamo di utilizzare questo collegamento se sei altrimenti agnostico. Tutto ciò di cui hai bisogno sono quattro fili!

Sono necessarie solo quattro connessioni pin Vcc, Gnd, SCL e SDA e questi sono collegati con l'aiuto del cavo I2C.

Queste connessioni sono mostrate nelle immagini sopra.

Passaggio 3: codice Python per la misurazione dell'accelerazione:

Codice Python per la misurazione dell'accelerazione
Codice Python per la misurazione dell'accelerazione

a vantaggio dell'utilizzo di raspberry pi è quello di fornire la flessibilità del linguaggio di programmazione in cui si desidera programmare la scheda per interfacciare con essa il sensore. Sfruttando questo vantaggio di questa scheda, stiamo dimostrando qui la sua programmazione in python. Python è uno dei linguaggi di programmazione più semplici con la sintassi più semplice. Il codice Python per H3LIS331DL può essere scaricato dalla nostra comunità github che è DCUBE Store.

Oltre che per la facilità degli utenti, spieghiamo anche qui il codice:

Come primo passo della codifica è necessario scaricare la libreria SMBus in caso di python, perché questa libreria supporta le funzioni utilizzate nel codice. Quindi, per scaricare la libreria puoi visitare il seguente link:

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

Puoi copiare il codice funzionante anche da qui:

import smbus

tempo di importazione

# Ottieni busbus I2C = smbus. SMBus(1)

# indirizzo H3LIS331DL, 0x18(24)

# Seleziona il registro di controllo 1, 0x20(32)

# 0x27(39) Modalità di accensione, velocità di uscita dati = 50 Hz# X, Y, Z-Axis abilitato

bus.write_byte_data(0x18, 0x20, 0x27)

# Indirizzo H3LIS331DL, 0x18(24)# Seleziona registro di controllo 4, 0x23(35)

# 0x00(00) Aggiornamento continuo, Selezione fondo scala = +/-100g

bus.write_byte_data(0x18, 0x23, 0x00)

tempo.sonno(0.5)

# indirizzo H3LIS331DL, 0x18(24)

# Rilegge i dati da 0x28(40), 2 byte

# Asse X LSB, Asse X MSB

data0 = bus.read_byte_data(0x18, 0x28)

data1 = bus.read_byte_data(0x18, 0x29)

# Converti dataxAccl = data1 * 256 + data0

se xAccl > 32767:

xAccl -= 65536

# indirizzo H3LIS331DL, 0x18(24)

# Rilegge i dati da 0x2A(42), 2 byte

# Asse Y LSB, Asse Y MSB

data0 = bus.read_byte_data(0x18, 0x2A)

data1 = bus.read_byte_data(0x18, 0x2B)

# Converti i dati

yAccl = dati1 * 256 + dati0

se yAccl > 32767:

yAccl -= 65536

# indirizzo H3LIS331DL, 0x18(24)

# Rilegge i dati da 0x2C(44), 2 byte

# Asse Z LSB, Asse Z MSB

data0 = bus.read_byte_data(0x18, 0x2C)

data1 = bus.read_byte_data(0x18, 0x2D)

# Converti i dati

zAccl = dati1 * 256 + dati0

se zAccl > 32767:

zAccl -= 65536

# 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

Il codice viene eseguito utilizzando il seguente comando:

$> pitone H3LIS331DL.py gt; pitone H3LIS331DL.py

L'uscita del sensore è mostrata nell'immagine sopra per riferimento dell'utente.

Passaggio 4: applicazioni:

Applicazioni
Applicazioni

Gli accelerometri come H3LIS331DL trovano principalmente la sua applicazione nei giochi e nella commutazione del profilo del display. Questo modulo sensore è anche impiegato nel sistema avanzato di gestione dell'alimentazione per applicazioni mobili. H3LIS331DL è un sensore di accelerazione digitale triassiale incorporato con un controller di interruzione attivato dal movimento su chip intelligente.

Consigliato: