
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47


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:



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:


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:

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:

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:
Mozgáskövetés MPU-6000 és részecskefoton használatával: 4 lépés

Mozgáskövetés MPU-6000 és részecskefoton használatával: Az MPU-6000 egy 6 tengelyes mozgáskövető érzékelő, amelybe 3 tengelyes gyorsulásmérő és 3 tengelyes giroszkóp van beépítve. Ez az érzékelő képes hatékonyan követni az objektum pontos helyzetét és elhelyezkedését a 3 dimenziós síkban. Alkalmazható
Gyorsulás mérése H3LIS331DL és részecskefoton használatával: 4 lépés

Gyorsulás mérése H3LIS331DL és részecskefoton segítségével: A H3LIS331DL egy kis teljesítményű, nagyteljesítményű, 3 tengelyes lineáris gyorsulásmérő, amely a „nano” családba tartozik, digitális I²C soros interfésszel. A H3LIS331DL felhasználó által választható teljes skála ± 100 g/± 200 g/± 400 g, és képes gyorsulások mérésére
Nedvességérzékelő részecskefoton használatával: 6 lépés

Nedvességérzékelő részecskefoton használatával: Bevezetés Ebben az oktatóanyagban egy nedvességérzékelőt fogunk építeni egy részecskefoton és annak ágyazott vagy külső WiFi antennája segítségével. A WiFi erőssége a levegőben és a talajban lévő nedvesség mennyiségétől függ. Ezt az elvet használjuk
Gyorsulásmérés BMA250 és Arduino Nano használatával: 4 lépés

Gyorsulásmérés BMA250 és Arduino Nano használatával: 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, akár ± 16 g-ig. A digitális kimeneti adatok 16 bites kettős kiegészítésként vannak formázva, és az I2C digitális interfészen keresztül érhetők el. Méri a statikus
Gyorsulásmérés BMA250 és Raspberry Pi használatával: 4 lépés

Gyorsulásmérés BMA250 és Raspberry Pi használatával: A BMA250 egy kicsi, vékony, ultralow 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 statikus