Sommario:

Interfacciamento del sensore giroscopio a 3 assi BMG160 con particelle: 5 passaggi
Interfacciamento del sensore giroscopio a 3 assi BMG160 con particelle: 5 passaggi

Video: Interfacciamento del sensore giroscopio a 3 assi BMG160 con particelle: 5 passaggi

Video: Interfacciamento del sensore giroscopio a 3 assi BMG160 con particelle: 5 passaggi
Video: Arduino controllo giroscopio a 3 assi 2024, Dicembre
Anonim
Image
Image

Nel mondo di oggi, più della metà dei giovani e dei bambini è appassionato di giochi e tutti coloro che ne sono appassionati, affascinati dagli aspetti tecnici del gioco, conoscono l'importanza del rilevamento del movimento in questo campo. Anche noi siamo rimasti stupiti dalla stessa cosa e proprio per portarla sulle tavole abbiamo pensato di lavorare su un sensore giroscopico in grado di misurare la velocità angolare di qualsiasi oggetto. Quindi, il sensore che abbiamo adottato per affrontare il compito è BMG160. BMG160 è un sensore giroscopio digitale triassiale a 16 bit in grado di misurare la velocità angolare in tre dimensioni della stanza perpendicolari.

In questo tutorial, dimostreremo il funzionamento di BMG160 con Particle Photon.

L'hardware di cui avrai bisogno per questo scopo è il seguente:

1. BMG160

2. Fotone particellare

3. Cavo I2C

4. Scudo I2C per fotoni di particelle

Passaggio 1: Panoramica BMG160:

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

Prima di tutto vorremmo familiarizzare con le caratteristiche di base del modulo sensore che è BMG160 e il protocollo di comunicazione su cui funziona.

BMG160 è fondamentalmente un sensore giroscopio digitale triassiale a 16 bit in grado di misurare le velocità angolari. È in grado di calcolare le velocità angolari in tre dimensioni della stanza perpendicolari, gli assi x, y e z, e fornire i corrispondenti segnali di uscita. Può comunicare con la scheda Raspberry Pi utilizzando il protocollo di comunicazione I2C. Questo particolare modulo è progettato per soddisfare i requisiti per le applicazioni consumer e per scopi industriali.

Il protocollo di comunicazione su cui funziona il sensore è I2C. I2C sta per il circuito inter-integrato. È un protocollo di comunicazione in cui la comunicazione avviene tramite le linee SDA (dati seriali) e SCL (orologio seriale). Consente di collegare più dispositivi contemporaneamente. È uno dei protocolli di comunicazione più semplici ed efficienti.

Passaggio 2: cosa ti serve.

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

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

1. BMG160

2. Fotone particellare

3. Cavo I2C

4. Scudo I2C per fotoni di particelle

Passaggio 3: collegamento hardware:

Collegamento hardware
Collegamento hardware
Collegamento hardware
Collegamento hardware

La sezione di collegamento hardware spiega fondamentalmente i collegamenti di cablaggio richiesti tra il sensore e la particella. 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 BMG160 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.

Fase 4: Codice delle particelle di misurazione del giroscopio a 3 assi:

Codice delle particelle di misurazione del giroscopio a 3 assi
Codice delle particelle di misurazione del giroscopio a 3 assi
Codice delle particelle di misurazione del giroscopio a 3 assi
Codice delle particelle di misurazione del giroscopio a 3 assi

Iniziamo ora con il codice particellare.

Durante l'utilizzo del modulo sensore con arduino, includiamo la libreria application.h e spark_wiring_i2c.h. La libreria "application.h" e spark_wiring_i2c.h contiene le funzioni che facilitano la comunicazione i2c tra il sensore e la particella.

L'intero codice particella è riportato di seguito per comodità dell'utente:

#includere

#includere

// L'indirizzo I2C BMG160 è 0x68(104)

#define Indirizzo 0x68

int x Giroscopio = 0, y Giroscopio = 0, z Giroscopio = 0;

configurazione nulla()

{

// Imposta variabile

Particle.variable("i2cdevice", "BMG160");

Particle.variable("xGyro", xGyro);

Particle.variable("yGyro", yGyro);

Particle.variable("zGyro", zGyro);

// Inizializza la comunicazione I2C come MASTER

Wire.begin();

// Inizializza la comunicazione seriale

Serial.begin(9600);

// Avvia la trasmissione I2C

Wire.beginTransmission(Addr);

// Seleziona il registro dell'intervallo

Wire.write(0x0F);

// Configura 2000 dps a fondo scala

Wire.write(0x80);

// Interrompi trasmissione I2C

Wire.endTransmission();

// Avvia la trasmissione I2C

Wire.beginTransmission(Addr);

// Seleziona il registro della larghezza di banda

Wire.write(0x10);

// Imposta larghezza di banda = 200 Hz

Wire.write(0x04);

// Interrompi 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(0x02);

// Interrompi trasmissione I2C

Wire.endTransmission();

// Richiedi 6 byte di dati

Wire.requestFrom(Addr, 6);

// Legge 6 byte di dati

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

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();

}

ritardo(300);

// Converti i dati

xGyro = ((data[1] * 256) + data[0]);

if (xGyro > 32767)

{

xGyro -= 65536;

}

yGyro = ((data[3] * 256) + data[2]);

if (yGyro > 32767)

{

yGyro -= 65536;

}

zGyro = ((data[5] * 256) + data[4]);

if (zGyro > 32767)

{

zGyro -= 65536;

}

// Invia i dati alla dashboard

Particle.publish("Asse X di rotazione:", String(xGyro));

Particle.publish("Asse Y di rotazione:", String(yGyro));

Particle.publish("Asse Z di rotazione:", String(zGyro));

ritardo(1000);

}

Passaggio 5: applicazioni:

Applicazioni
Applicazioni

BMG160 ha un numero vario di applicazioni in dispositivi come telefoni cellulari, dispositivi di interfaccia uomo-macchina. Questo modulo sensore è stato progettato per soddisfare i requisiti di applicazioni consumer come stabilizzazione dell'immagine (DSC e fotocamera-telefono), giochi e dispositivi di puntamento. Viene anche impiegato nei sistemi che richiedono il riconoscimento dei gesti e nei sistemi utilizzati nella navigazione indoor.

Consigliato: