Tartalomjegyzék:

Gyorsulásmérés BMA250 és részecskefoton használatával: 4 lépés
Gyorsulásmérés BMA250 és részecskefoton használatával: 4 lépés

Videó: Gyorsulásmérés BMA250 és részecskefoton használatával: 4 lépés

Videó: Gyorsulásmérés BMA250 és részecskefoton használatával: 4 lépés
Videó: Elektrondiffrakció 2024, Július
Anonim
Image
Image

A BMA250 egy kicsi, vékony, rendkívül alacsony teljesítményű, 3 tengelyes gyorsulásmérő nagy felbontású (13 bites) méréssel, ± 16 g-ig. A digitális kimeneti adatok 16 bites kettes kiegészítésként vannak formázva, és az I2C digitális interfészen keresztül érhetők el. Méri a gravitáció statikus gyorsulását dőlésérzékelő alkalmazásokban, valamint a mozgásból vagy ütésből eredő dinamikus gyorsulást. Nagy felbontása (3,9 mg/LSB) lehetővé teszi az 1,0 ° alatti dőlésváltozások mérését.

Ebben az oktatóanyagban a BMA250 és a részecskefoton segítségével mérjük a gyorsulást mindhárom merőleges tengelyen.

1. lépés: Szükséges hardver:

Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver

A célunk eléréséhez szükséges anyagok a következő hardverkomponenseket tartalmazzák:

1. BMA250

2. Foton részecske

3. I2C kábel

4. I2C pajzs részecske fotonhoz

2. lépés: Hardver csatlakoztatása:

Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása

A hardvercsatlakozási szakasz alapvetően elmagyarázza az érzékelő és a részecskefoton között szükséges vezetékeket. A megfelelő kapcsolatok biztosítása az alapvető szükséglet, amikor bármilyen rendszeren dolgozik a kívánt kimenet érdekében. Tehát a szükséges kapcsolatok a következők:

A BMA250 az I2C -n keresztül fog működni. Íme a példa kapcsolási rajz, amely bemutatja, hogyan kell bekötni az érzékelő egyes interfészeit.

A doboz készenlétben I2C interfészre van konfigurálva, ezért javasoljuk, hogy használja ezt a csatlakozást, ha egyébként agnosztikus. Csak négy vezetékre van szüksége!

Csak négy csatlakozóra van szükség Vcc, Gnd, SCL és SDA csapokra, és ezeket I2C kábel segítségével kell csatlakoztatni.

Ezeket az összefüggéseket a fenti képek mutatják be.

3. lépés: A gyorsulás mérésére szolgáló kód:

A gyorsulás mérésének kódja
A gyorsulás mérésének kódja

Kezdjük most a részecske kóddal.

Miközben az érzékelő modult használja az arduino -val, az application.h és a spark_wiring_i2c.h könyvtárat is tartalmazza. Az "application.h" és a spark_wiring_i2c.h könyvtár azokat a funkciókat tartalmazza, amelyek megkönnyítik az i2c kommunikációt az érzékelő és a részecske között.

A teljes szemcsekódot az alábbiakban adjuk meg a felhasználó kényelme érdekében:

#befoglalni

#befoglalni

// A BMA250 I2C címe 0x18 (24)

#define Addr 0x18

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

üres beállítás ()

{

// Változó beállítása

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

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

// Inicializálja az I2C kommunikációt MASTER -ként

Wire.begin ();

// Inicializálja a soros kommunikációt, állítsa be az átviteli sebességet = 9600

Sorozat.kezdet (9600);

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Válassza ki a tartományválasztó regisztert

Wire.write (0x0F);

// Tartomány beállítása +/- 2g

Wire.write (0x03);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Válassza ki a sávszélesség -nyilvántartást

Wire.write (0x10);

// Sávszélesség beállítása 7,81 Hz

Wire.write (0x08);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

késleltetés (300);}

üres hurok ()

{

előjel nélküli int adatok [0];

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Adatregiszterek kiválasztása (0x02 - 0x07)

Wire.write (0x02);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

// 6 bájt kérése

Wire.requestFrom (Addr, 6);

// Olvassa el a hat bájtot

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

ha (Wire.available () == 6)

{

adatok [0] = Wire.read ();

adatok [1] = Wire.read ();

adatok [2] = Wire.read ();

adatok [3] = Wire.read ();

adatok [4] = Wire.read ();

adatok [5] = Wire.read ();

}

késleltetés (300);

// Az adatok konvertálása 10 bitre

xAccl = ((adatok [1] * 256) + (adatok [0] és 0xC0)) / 64;

ha (xAccl> 511)

{

xAccl -= 1024;

}

yAccl = ((adatok [3] * 256) + (adatok [2] és 0xC0)) / 64;

ha (yAccl> 511)

{

yAccl -= 1024;

}

zAccl = ((adatok [5] * 256) + (adatok [4] és 0xC0)) / 64;

ha (zAccl> 511)

{

zAccl -= 1024;

}

// Adatok kimenete a műszerfalra

Particle.publish ("Acceleration in X-Axis:", String (xAccl));

késleltetés (1000);

Particle.publish ("Gyorsulás az Y tengelyen:", String (yAccl));

késleltetés (1000);

Particle.publish ("Gyorsulás Z-tengelyben:", String (zAccl));

késleltetés (1000);

}

A Particle.variable () függvény létrehozza a változókat az érzékelő kimenetének tárolására, a Particle.publish () függvény pedig megjeleníti a kimenetet a webhely műszerfalán.

Az érzékelő kimenete a fenti képen látható.

4. lépés: Alkalmazások:

Alkalmazások
Alkalmazások

Az olyan gyorsulásmérők, mint a BMA250, leginkább a játékokban és a megjelenítési profilváltásban találhatók. Ez az érzékelő modul a mobil alkalmazások fejlett energiagazdálkodási rendszerében is használatos. A BMA250 egy háromtengelyes digitális gyorsulásérzékelő, amely intelligens chipen belüli mozgásvezérelt megszakításvezérlővel van felszerelve.

Ajánlott: