Sommario:

Rilevamento del movimento utilizzando MPU-6000 e Raspberry Pi: 4 passaggi
Rilevamento del movimento utilizzando MPU-6000 e Raspberry Pi: 4 passaggi

Video: Rilevamento del movimento utilizzando MPU-6000 e Raspberry Pi: 4 passaggi

Video: Rilevamento del movimento utilizzando MPU-6000 e Raspberry Pi: 4 passaggi
Video: Raspberry Pi MPU-6000 6-Axis Motion Tracking Sensor Java Tutorial 2024, Dicembre
Anonim
Image
Image

MPU-6000 è un sensore di rilevamento del movimento a 6 assi con accelerometro a 3 assi e giroscopio a 3 assi incorporati. Questo sensore è in grado di tracciare in modo efficiente la posizione esatta e la posizione di un oggetto nel piano tridimensionale. Può essere impiegato nei sistemi che richiedono l'analisi della posizione con la massima precisione.

In questo tutorial è stata illustrata l'interfacciamento del modulo sensore MPU-6000 con raspberry pi. Per leggere i valori di accelerazione e angolo di rotazione, abbiamo utilizzato raspberry pi con un adattatore I2c. Questo adattatore I2C rende la connessione al modulo sensore facile e affidabile.

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. MPU-6000

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'MPU-6000 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 per il monitoraggio del movimento:

Codice per il monitoraggio del movimento
Codice per il monitoraggio del movimento

Il vantaggio di utilizzare raspberry pi è che ti offre la flessibilità del linguaggio di programmazione in cui desideri 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 MPU-6000 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 MPU-6000, 0x68(104)

# Seleziona il registro di configurazione del giroscopio, 0x1B(27)

# 0x18(24) Intervallo fondo scala = 2000 dps

bus.write_byte_data(0x68, 0x1B, 0x18)

# Indirizzo MPU-6000, 0x68(104)

# Seleziona il registro di configurazione dell'accelerometro, 0x1C(28)

# 0x18(24) Intervallo fondo scala = +/-16g

bus.write_byte_data(0x68, 0x1C, 0x18)

# Indirizzo MPU-6000, 0x68(104)

# Seleziona il registro di gestione dell'alimentazione1, 0x6B(107)

# 0x01(01) PLL con riferimento xGyro

bus.write_byte_data(0x68, 0x6B, 0x01)

tempo.sonno(0.8)

# Indirizzo MPU-6000, 0x68(104)

# Rilegge i dati da 0x3B(59), 6 byte

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

dati = bus.read_i2c_block_data(0x68, 0x3B, 6)

# Converti i dati

xAccl = dati[0] * 256 + dati[1]

se xAccl > 32767:

xAccl -= 65536

yAccl = dati[2] * 256 + dati[3]

se yAccl > 32767:

yAccl -= 65536

zAccl = dati[4] * 256 + dati[5]

se zAccl > 32767:

zAccl -= 65536

# Indirizzo MPU-6000, 0x68(104)

# Rilegge i dati da 0x43(67), 6 byte

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

dati = bus.read_i2c_block_data(0x68, 0x43, 6)

# Converti i dati

xGyro = dati[0] * 256 + dati[1]

se xGyro > 32767:

xGyro -= 65536

yGyro = dati[2] * 256 + dati[3]

se yGyro > 32767:

yGyro -= 65536

zGyro = dati[4] * 256 + dati[5]

se zGyro > 32767:

zGyro -= 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

print "Asse X di rotazione: %d" %xGyro

print "Asse Y di rotazione: %d" %yGyro

print "Asse Z di rotazione: %d" %zGyro

Il codice viene eseguito utilizzando il seguente comando:

$> python MPU-6000.py gt; python MPU-6000.py

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

Passaggio 4: applicazioni:

Applicazioni
Applicazioni

MPU-6000 è un sensore di rilevamento del movimento, che trova la sua applicazione nell'interfaccia di movimento di smartphone e tablet. Negli smartphone questi sensori possono essere impiegati in applicazioni come comandi gestuali per applicazioni e controllo del telefono, giochi avanzati, realtà aumentata, acquisizione e visualizzazione di foto panoramiche e navigazione pedonale e veicolare. La tecnologia MotionTracking può convertire telefoni cellulari e tablet in potenti dispositivi intelligenti 3D che possono essere utilizzati in applicazioni che vanno dal monitoraggio della salute e del fitness ai servizi basati sulla posizione.

Consigliato: