Taula de continguts:

Interfície del sensor de giroscopi de 3 eixos BMG160 amb partícules: 5 passos
Interfície del sensor de giroscopi de 3 eixos BMG160 amb partícules: 5 passos

Vídeo: Interfície del sensor de giroscopi de 3 eixos BMG160 amb partícules: 5 passos

Vídeo: Interfície del sensor de giroscopi de 3 eixos BMG160 amb partícules: 5 passos
Vídeo: Распаковка комплекта разработки датчика RSL10 2024, Desembre
Anonim
Image
Image

Al món actual, més de la meitat de la joventut i dels nens els agrada el joc i tots aquells que ho fan, fascinats pels aspectes tècnics del joc, saben la importància de la detecció de moviment en aquest domini. També ens va sorprendre el mateix i, només per portar-lo a les plaques, vam pensar a treballar en un sensor de giroscopi que pogués mesurar la velocitat angular de qualsevol objecte. Per tant, el sensor que hem pres per fer front a la tasca és BMG160. BMG160 és un sensor de giroscopi digital de 16 bits, triaxial, que pot mesurar la velocitat angular en tres dimensions de l’habitació perpendiculars.

En aquest tutorial, demostrarem el funcionament de BMG160 amb Particle Photon.

El maquinari que necessiteu per a aquest propòsit és el següent:

1. BMG160

2. Fotó de partícules

3. Cable I2C

4. Escut I2C per a fotons de partícules

Pas 1: Visió general de BMG160:

Què necessites..!!
Què necessites..!!

En primer lloc, ens agradaria familiaritzar-vos amb les funcions bàsiques del mòdul de sensor que és BMG160 i el protocol de comunicació amb el qual funciona.

BMG160 és bàsicament un sensor de giroscopi digital de 16 bits, triaxial, que pot mesurar la velocitat angular. És capaç de calcular velocitats angulars en tres dimensions perpendiculars de l'habitació, l'eix x, y i z, i proporcionar els senyals de sortida corresponents. Pot comunicar-se amb la placa raspberry pi mitjançant el protocol de comunicació I2C. Aquest mòdul en particular està dissenyat per satisfer els requisits tant per a aplicacions de consum com per a finalitats industrials.

El protocol de comunicació en què funciona el sensor és I2C. I2C significa el circuit inter-integrat. És un protocol de comunicació en què la comunicació té lloc a través de línies SDA (dades de sèrie) i SCL (rellotge de sèrie). Permet connectar diversos dispositius alhora. És un dels protocols de comunicació més senzills i eficients.

Pas 2: el que necessiteu..

Què necessites..!!
Què necessites..!!
Què necessites..!!
Què necessites..!!
Què necessites..!!
Què necessites..!!

Els materials que necessitem per assolir el nostre objectiu inclouen els components de maquinari següents:

1. BMG160

2. Fotó de partícules

3. Cable I2C

4. Escut I2C per a fotons de partícules

Pas 3: connexió de maquinari:

Connexió de maquinari
Connexió de maquinari
Connexió de maquinari
Connexió de maquinari

La secció de connexió de maquinari explica bàsicament les connexions de cablejat necessàries entre el sensor i la partícula. Garantir connexions correctes és la necessitat bàsica mentre es treballa en qualsevol sistema per a la sortida desitjada. Per tant, les connexions necessàries són les següents:

El BMG160 funcionarà sobre I2C. Aquí teniu un exemple de diagrama de cablejat, que demostra com connectar cada interfície del sensor.

Fora de la caixa, el tauler està configurat per a una interfície I2C, per tant, us recomanem que utilitzeu aquesta connexió si no sou agnòstic.

Tot el que necessiteu són quatre cables. Només es necessiten quatre connexions pins Vcc, Gnd, SCL i SDA i es connecten amb l'ajut del cable I2C.

Aquestes connexions es mostren a les imatges anteriors.

Pas 4: Codi de partícules de mesura de giroscopi de 3 eixos:

Codi de partícules de mesura de giroscopi de 3 eixos
Codi de partícules de mesura de giroscopi de 3 eixos
Codi de partícules de mesura de giroscopi de 3 eixos
Codi de partícules de mesura de giroscopi de 3 eixos

Comencem ara pel codi de partícules.

Mentre s’utilitza el mòdul de sensor amb l’arduino, incloem la biblioteca application.h i spark_wiring_i2c.h. La biblioteca "application.h" i spark_wiring_i2c.h conté les funcions que faciliten la comunicació i2c entre el sensor i la partícula.

A continuació es proporciona tot el codi de partícules per a la comoditat de l'usuari:

#incloure

#incloure

// L'adreça BMG160 I2C és 0x68 (104)

#define Addr 0x68

int xGyro = 0, yGyro = 0, zGyro = 0;

configuració nul·la ()

{

// Estableix la variable

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

Particle.variable ("xGyro", xGyro);

Particle.variable ("yGyro", yGyro);

Particle.variable ("zGyro", zGyro);

// Inicialitzar la comunicació I2C com a MASTER

Wire.begin ();

// Inicialitzar la comunicació en sèrie

Serial.begin (9600);

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr);

// Seleccioneu Registre d’interval

Wire.write (0x0F);

// Configureu a escala completa 2000 dps

Wire.write (0x80);

// Atura la transmissió I2C

Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr);

// Seleccioneu registre d'amplada de banda

Wire.write (0x10);

// Estableix l’amplada de banda = 200 Hz

Wire.write (0x04);

// Atura la transmissió I2C

Wire.endTransmission ();

retard (300);

}

bucle buit ()

{

dades int sense signar [6];

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr);

// Selecciona el registre de dades

Wire.write (0x02);

// Atura la transmissió I2C

Wire.endTransmission ();

// Sol·liciteu 6 bytes de dades

Wire.requestFrom (Addr, 6);

// Llegiu 6 bytes de dades

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

if (Wire.available () == 6)

{

dades [0] = Wire.read ();

dades [1] = Wire.read ();

dades [2] = Wire.read ();

dades [3] = Wire.read ();

dades [4] = Wire.read ();

dades [5] = Wire.read ();

}

retard (300);

// Converteix les dades

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

if (xGyro> 32767)

{

xGyro - = 65536;

}

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

if (yGyro> 32767)

{

yGyro - = 65536;

}

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

if (zGyro> 32767)

{

zGyro - = 65536;

}

// Data de sortida al tauler

Particle.publish ("Eix X de rotació:", String (xGyro));

Particle.publish ("Eix Y de rotació:", String (yGyro));

Particle.publish ("Eix Z de rotació:", String (zGyro));

retard (1000);

}

Pas 5: aplicacions:

Aplicacions
Aplicacions

BMG160 té un nombre variat d’aplicacions en dispositius com ara telèfons mòbils i dispositius d’interfície humana-màquina. Aquest mòdul de sensor ha estat dissenyat per satisfer els requisits per a aplicacions de consum, com ara estabilització d’imatge (DSC i telèfon amb càmera), dispositius de jocs i puntes. També s’utilitza en sistemes que requereixen reconeixement de gestos i en els sistemes utilitzats en la navegació interior.

Recomanat: