Sommario:

Misurazione dell'accelerazione con BMA250 e Raspberry Pi: 4 passaggi
Misurazione dell'accelerazione con BMA250 e Raspberry Pi: 4 passaggi

Video: Misurazione dell'accelerazione con BMA250 e Raspberry Pi: 4 passaggi

Video: Misurazione dell'accelerazione con BMA250 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

BMA250 è 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 I2C. 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°.

In questo tutorial misureremo l'accelerazione in tutti e tre gli assi perpendicolari utilizzando BMA250 e Raspberry Pi. Il sensore è stato programmato in linguaggio Python.

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. BMA250

2. Raspberry Pi

3. Cavo I2C

4. Scudo I2C per Raspberry 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:

Il BMA250 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
Codice Python per la misurazione dell'accelerazione
Codice Python per la misurazione dell'accelerazione

Il vantaggio dell'utilizzo di raspberry pi è che fornisce la flessibilità del linguaggio di programmazione in cui si desidera programmare la scheda per interfacciare il sensore con essa. 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 BMA250 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, devi 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 BMA250, 0x18(24)

# Seleziona il registro di selezione dell'intervallo, 0x0F(15)

# 0x03(03) Imposta intervallo = +/-2gbus.write_byte_data(0x18, 0x0F, 0x03)

# Indirizzo BMA250, 0x18(24)# Seleziona registro larghezza di banda, 0x10(16)

# 0x08(08) Larghezza di banda = 7,81 Hzbus.write_byte_data(0x18, 0x10, 0x08)

tempo.sonno(0.5)

# indirizzo BMA250, 0x18(24)

# Rilegge i dati da 0x02(02), 6 byte

# Asse X LSB, Asse X MSB, Asse Y LSB, Asse Y MSB, Asse Z LSB, Asse Z MSB

dati = bus.read_i2c_block_data(0x18, 0x02, 6)

# Converti i dati a 10 bit

xAccl = (data[1] * 256 + (data[0] & 0xC0)) / 64

se xAccl > 511:

xAccl -= 1024

yAccl = (dati[3] * 256 + (dati[2] e 0xC0)) / 64

se yAccl > 511:

yAccl -= 1024

zAccl = (data[5] * 256 + (data[4] & 0xC0)) / 64

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

Il codice viene eseguito utilizzando il seguente comando:

$> pitone BMA250.py gt; pitone BMA250.py

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

Passaggio 4: applicazioni:

Applicazioni
Applicazioni

Gli accelerometri come BMA250 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. BMA250 è un sensore di accelerazione digitale triassiale incorporato con un controller di interruzione attivato dal movimento intelligente su chip.

Consigliato: