Kazalo:

Merjenje pospeška z uporabo BMA250 in fotona delcev: 4 koraki
Merjenje pospeška z uporabo BMA250 in fotona delcev: 4 koraki

Video: Merjenje pospeška z uporabo BMA250 in fotona delcev: 4 koraki

Video: Merjenje pospeška z uporabo BMA250 in fotona delcev: 4 koraki
Video: Физик раскрывает секреты путешествий во времени НЛО: Нимиц и Тик-Так 2024, Julij
Anonim
Image
Image

BMA250 je majhen, tanek, 3-osni merilnik pospeška z izjemno nizko močjo z visoko ločljivostjo (13-bitnimi) meritvami do ± 16 g. Digitalni izhodni podatki so oblikovani kot 16-bitni dvojčki, ki se dopolnjujejo, in so dostopni prek digitalnega vmesnika I2C. Meri statični pospešek gravitacije v aplikacijah za zaznavanje nagiba, pa tudi dinamični pospešek, ki je posledica gibanja ali udarca. Njegova visoka ločljivost (3,9 mg/LSB) omogoča merjenje naklonskih sprememb pod 1,0 °.

V tej vadnici bomo merili pospešek v vseh treh pravokotnih oseh z uporabo BMA250 in fotona delcev.

1. korak: Potrebna strojna oprema:

Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema

Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:

1. BMA250

2. Foton delcev

3. Kabel I2C

4. I2C ščit za fotone delcev

2. korak: Priključitev strojne opreme:

Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme

Oddelek za priključitev strojne opreme v bistvu razlaga potrebne povezave ožičenja med senzorjem in fotonom delcev. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:

BMA250 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.

Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični. Vse kar potrebujete so štiri žice!

Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.

Te povezave so prikazane na zgornjih slikah.

3. korak: Koda za merjenje pospeška:

Koda za merjenje pospeška
Koda za merjenje pospeška

Začnimo s kodo delcev zdaj.

Med uporabo senzorskega modula z arduinom vključujemo knjižnico application.h in spark_wiring_i2c.h. Knjižnica "application.h" in spark_wiring_i2c.h vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in delcem.

Za udobje uporabnika je spodaj navedena celotna koda delcev:

#vključi

#vključi

// Naslov BMA250 I2C je 0x18 (24)

#define Addr 0x18

int xAccl = 0, yAccl = 0, zAccl = 0;

void setup ()

{

// Nastavi spremenljivko

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

Delci.variable ("xAccl", xAccl);

Delci.variable ("yAccl", yAccl);

Delci.variable ("zAccl", zAccl);

// Inicializirajte komunikacijo I2C kot MASTER

Wire.begin ();

// Inicializirajte serijsko komunikacijo, nastavite hitrost prenosa = 9600

Serial.begin (9600);

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite register za izbiro območja

Wire.write (0x0F);

// Nastavljeno območje +/- 2g

Wire.write (0x03);

// Ustavi prenos I2C

Wire.endTransmission ();

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite register pasovne širine

Wire.write (0x10);

// Nastavi pasovno širino 7,81 Hz

Wire.write (0x08);

// Ustavi prenos I2C

Wire.endTransmission ();

zamuda (300);}

void loop ()

{

podpisani int podatki [0];

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izbira podatkovnih registrov (0x02 - 0x07)

Wire.write (0x02);

// Ustavi prenos I2C

Wire.endTransmission ();

// Zahtevaj 6 bajtov

Wire.requestFrom (Addr, 6);

// Preberite šest bajtov

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

če (Wire.available () == 6)

{

podatki [0] = Wire.read ();

podatki [1] = Wire.read ();

podatki [2] = Wire.read ();

podatki [3] = Wire.read ();

podatki [4] = Wire.read ();

podatki [5] = Wire.read ();

}

zamuda (300);

// Pretvorimo podatke v 10 bitov

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

če (xAccl> 511)

{

xAccl -= 1024;

}

yAccl = ((podatki [3] * 256) + (podatki [2] & 0xC0)) / 64;

če (yAccl> 511)

{

yAccl -= 1024;

}

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

če (zAccl> 511)

{

zAccl -= 1024;

}

// Izhod podatkov na nadzorno ploščo

Particle.publish ("Pospešek v osi X:", niz (xAccl));

zamuda (1000);

Particle.publish ("Pospešek v osi Y:", niz (yAccl));

zamuda (1000);

Particle.publish ("Pospešek v osi Z:", niz (zAccl));

zamuda (1000);

}

Funkcija Particle.variable () ustvari spremenljivke za shranjevanje izhoda senzorja, funkcija Particle.publish () pa prikaže izpis na nadzorni plošči spletnega mesta.

Izhod senzorja je za vašo referenco prikazan na zgornji sliki.

4. korak: Aplikacije:

Aplikacije
Aplikacije

Merilniki pospeška, kot je BMA250, večinoma najdejo svojo uporabo v igrah in preklapljanju profilov zaslona. Ta senzorski modul se uporablja tudi v naprednem sistemu za upravljanje porabe energije za mobilne aplikacije. BMA250 je triosni digitalni senzor pospeška, ki je integriran z inteligentnim krmilnikom prekinitev, ki sproži gibanje na čipu.

Priporočena: