Sommario:
- Passaggio 1: hardware richiesto:
- Passaggio 2: collegamento hardware:
- Passaggio 3: codice per il monitoraggio del movimento:
- Passaggio 4: applicazioni:
Video: Tracciamento del movimento con MPU-6000 e Arduino Nano: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
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 arduino nano. Per leggere i valori di accelerazione e angolo di rotazione, abbiamo utilizzato arduino nano con un adattatore I2c. Questo adattatore I2C rende la connessione al modulo sensore facile e affidabile.
Passaggio 1: hardware richiesto:
I materiali di cui abbiamo bisogno per raggiungere il nostro obiettivo includono i seguenti componenti hardware:
1. MPU-6000
2. Arduino Nano
3. Cavo I2C
4. Scudo I2C per arduino nano
Passaggio 2: collegamento hardware:
La sezione di collegamento hardware spiega fondamentalmente le connessioni di cablaggio richieste tra il sensore e l'arduino nano. 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:
Iniziamo ora con il codice arduino.
Durante l'utilizzo del modulo sensore con arduino, includiamo la libreria Wire.h. La libreria "Wire" contiene le funzioni che facilitano la comunicazione i2c tra il sensore e la scheda arduino.
L'intero codice arduino è riportato di seguito per comodità dell'utente:
#includere
// L'indirizzo I2C dell'MPU-6000 è 0x68(104)
#define Indirizzo 0x68
configurazione nulla()
{
// Inizializza la comunicazione I2C come Master
Wire.begin();
// Inizializza la comunicazione seriale, imposta baud rate = 9600
Serial.begin(9600);
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona il registro di configurazione del giroscopio
Wire.write(0x1B);
// Intervallo fondo scala = 2000 dps
Wire.write(0x18);
// Interrompe la trasmissione I2C
Wire.endTransmission();
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona il registro di configurazione dell'accelerometro
Wire.write(0x1C);
// Intervallo fondo scala = +/-16g
Wire.write(0x18);
// Interrompe la trasmissione I2C
Wire.endTransmission();
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona il registro di gestione dell'alimentazione
Wire.write(0x6B);
// PLL con riferimento xGyro
Wire.write(0x01);
// Interrompe la trasmissione I2C
Wire.endTransmission();
ritardo(300);
}
ciclo vuoto()
{
dati int non firmati[6];
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona registro dati
Wire.write(0x3B);
// Interrompe la trasmissione I2C
Wire.endTransmission();
// Richiedi 6 byte di dati
Wire.requestFrom(Addr, 6);
// Legge 6 byte di dati
if(Filo.disponibile() == 6)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
data[4] = Wire.read();
data[5] = Wire.read();
}
// Converti i dati
int xAccl = dati[0] * 256 + dati[1];
int yAccl = dati[2] * 256 + dati[3];
int zAccl = dati[4] * 256 + dati[5];
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona registro dati
Wire.write(0x43);
// Interrompe la trasmissione I2C
Wire.endTransmission();
// Richiedi 6 byte di dati
Wire.requestFrom(Addr, 6);
// Legge 6 byte di dati
if(Filo.disponibile() == 6)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
data[4] = Wire.read();
data[5] = Wire.read();
}
// Converti i dati
int xGyro = data[0] * 256 + data[1];
int yGyro = dati[2] * 256 + dati[3];
int zGyro = dati[4] * 256 + dati[5];
// Invia i dati al monitor seriale
Serial.print("Accelerazione nell'asse X: ");
Serial.println(xAccl);
Serial.print("Accelerazione nell'asse Y: ");
Serial.println(yAccl);
Serial.print("Accelerazione nell'asse Z: ");
Serial.println(zAccl);
Serial.print("Asse X di rotazione: ");
Serial.println(xGyro);
Serial.print("Asse Y di rotazione: ");
Serial.println(yGyro);
Serial.print("Asse Z di rotazione: ");
Serial.println(zGyro);
ritardo (500);
}
Nella libreria wire Wire.write() e Wire.read() viene utilizzato per scrivere i comandi e leggere l'output del sensore.
Serial.print() e Serial.println() vengono utilizzati per visualizzare l'output del sensore sul monitor seriale dell'IDE Arduino.
L'uscita del sensore è mostrata nell'immagine sopra.
Passaggio 4: 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:
Sistema di tracciamento del movimento della testa per VR: 8 passaggi
Sistema di tracciamento del movimento della testa per la realtà virtuale: mi chiamo Sam KODO, in questo tutorial ti insegnerò passo dopo passo come utilizzare i sensori Arduino IMU per costruire un sistema di tracciamento della testa per la realtà virtuale. In questo progetto avrai bisogno di: - Un display LCD HDMI :https://www.amazon.com/Elecrow-Capacitive-interfac…- Un
Motore in movimento con tracciamento oculare: 8 passaggi
Motore in movimento con tracciamento oculare: attualmente, i sensori di tracciamento oculare sono più comuni in varie aree, ma commercialmente sono più conosciuti per i giochi interattivi. Questo tutorial non ha la pretesa di elaborare i sensori poiché è molto complesso e a causa del suo uso sempre più comune il
Dispositivo di sicurezza per donne con tracciamento GPS e avvisi con Arduino: 6 passaggi
Dispositivo di sicurezza per donne con tracciamento GPS e avvisi tramite Arduino: con tutta la tecnologia a nostra disposizione negli ultimi tempi, non è difficile costruire un dispositivo di sicurezza per le donne che non solo generi un allarme di emergenza, ma invii anche un messaggio ai tuoi amici, familiari , o persona interessata. Qui costruiremo una band
Sistema di tracciamento bici con allarme uomo morto con Sigfox: 7 passaggi (con immagini)
Sistema di tracciamento bici con allarme uomo morto con Sigfox: sistema di sicurezza per ciclisti con funzioni di tracciamento e invio di avvisi. In caso di incidente viene inviato un allarme con posizione GPS. La sicurezza per i ciclisti è un must, con incidenti in bici da strada o mountain bike accadono e il prima possibile l'emergenza per
Presa controllata dal movimento - Da una luce di rilevamento del movimento: 6 passaggi
Presa controllata dal movimento - Da una luce di rilevamento del movimento: Immagina di essere un dolcetto o scherzetto che va nella casa più spaventosa del quartiere. Dopo aver superato tutti i ghoul, i fantasmi e i cimiteri, arrivi finalmente all'ultimo percorso. Puoi vedere le caramelle in una ciotola davanti a te! Ma poi improvvisamente un gho