- Szükséges alkatrészek
- ADXL335 gyorsulásmérő
- Kördiagramm
- Hogyan működik a lépésszámláló?
- Az Arduino Step Counter programozása
- Az Arduino lépésszámláló tesztelése
A fitnesz zenekarok manapság nagyon népszerűek, amelyek nemcsak a lépéseket számolják, hanem nyomon követik az elégetett kalóriákat, megjelenítik a pulzusszámot, a műsoridőt és még sok minden mást. Ezeket az IoT-eszközöket pedig szinkronizálják a felhővel, így könnyedén megszerezheti fizikai tevékenységének minden előzményét egy okostelefonon. Kiépítettünk egy IoT-alapú betegmegfigyelő rendszert is, ahol a kritikus adatokat elküldtük a ThingSpeak-nak, hogy bárhonnan figyelemmel kísérhessük őket.
A lépésszámlálók azok az eszközök, amelyek csak a lépések számlálására szolgálnak. Tehát ebben az oktatóanyagban egy egyszerű és olcsó DIY lépésszámlálót fogunk építeni Arduino és gyorsulásmérő segítségével. Ez a lépésszámláló megszámolja a lépések számát, és megjeleníti azokat egy 16x2 LCD-modulon. Ez a lépésszámláló integrálható ezzel az Arduino intelligens órával.
Szükséges alkatrészek
- Arduino Nano
- ADXL 335 gyorsulásmérő
- 16 * 2 LCD
- LCD I2C modul
- Akkumulátor
ADXL335 gyorsulásmérő
Az ADXL335 egy komplett 3 tengelyes analóg gyorsulásmérő, amely a kapacitív érzékelés elvén működik. Ez egy kicsi, vékony, kis teljesítményű modul, több szilícium felületű, mikro-megmunkált érzékelővel és jelkezelő áramkörrel. Az ADXL335 gyorsulásmérő képes a statikus és a dinamikus gyorsulás mérésére is. Ebben az Arduino lépésszámláló projektben az ADXL335 gyorsulásmérő lépésszámláló szenzorként fog működni.
A gyorsulásmérő olyan eszköz, amely bármilyen irányú gyorsulást képes átalakítani a saját változó feszültségére. Ez kondenzátorok használatával valósul meg (lásd kép), mivel az Accel mozog, a benne lévő kondenzátor a mozgás alapján szintén változáson megy keresztül (referencia kép), mivel a kapacitás változó, változó feszültséget is lehet kapni.
Az alábbiakban a gyorsulásmérő képei láthatók elöl és hátul, valamint a tű leírása
Tű a gyorsulásmérő leírása:
- A Vcc-5 voltos tápnak ehhez a csaphoz kell csatlakoznia.
- X-OUT - Ez a tű analóg kimenetet ad x irányban
- Y-OUT - Ez a csap analóg kimenetet ad y irányban
- Z-OUT - Ez a tű analóg kimenetet ad z irányban
- GND - föld
- ST- Ez a tű az érzékelő érzékenységének beállítására szolgál
Számos projektet építünk az ADXL335 gyorsulásmérővel, beleértve a kézmozdulatokkal vezérelt robotot, a földrengésérzékelő riasztót, a pingpong játékot stb.
Kördiagramm
Az Arduino gyorsulásmérő lépésszámlálójának kapcsolási rajza az alábbiakban látható.
Ebben az áramkörben kapcsolódunk az Arduino Nano-hoz az ADXL335 gyorsulásmérővel. A gyorsulásmérő X, Y és Z csapjai összekapcsolódnak az Arduino Nano analóg csapjaival (A1, A2 és A3). A 16x2 LCD-modulok és az Arduino összekapcsolásához az I2C modult használjuk. Az I2C modul SCL és SDA csatlakozói az Arduino Nano A5 és A4 csatlakozóihoz vannak csatlakoztatva. A teljes csatlakozásokat az alábbi táblázat tartalmazza:
Arduino Nano | ADXL335 |
3.3V | VCC |
GND | GND |
A1 | x |
A2 | Y |
A3 | Z |
Arduino Nano | LCD I2C modul |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
Ezt a lépésszámlálót először Arduino beállítással, kenyérlapra építettük
Sikeres tesztelés után megismételtük a Perfboardon, az összes alkatrész forrasztásával a Perfboardon, az alábbiak szerint:
Hogyan működik a lépésszámláló?
A lépésszámláló kiszámítja a személy által megtett lépések teljes számát a mozgás három összetevőjének felhasználásával, amelyek előre, függőlegesen és oldalra vonatkoznak. A lépésszámláló rendszer gyorsulásmérőt használ ezen értékek megszerzéséhez. A gyorsulásmérő minden meghatározott nem után folyamatosan frissíti a 3 tengelyes gyorsulás maximális és minimális értékét. minták. Ezen 3 tengely (Max + Min) / 2 átlagos értékét dinamikus küszöbszintnek nevezzük, és ezt a küszöbértéket használjuk annak eldöntésére, hogy megtesszük-e a lépést vagy sem.
Futás közben a lépésszámláló bármilyen tájolású lehet, így a lépésszámláló a tengely segítségével számítja ki a lépéseket, amelynek gyorsulásváltozása a legnagyobb.
Most hadd adjak egy gyors áttekintést ennek az Arduino lépésszámlálónak a működéséről:
- Először a lépésszámláló elindítja a kalibrálást, amint bekapcsol.
- Ezután a void loop funkcióban folyamatosan megkapja az adatokat az X, Y és Z tengelyről.
- Ezt követően kiszámítja a teljes gyorsulási vektort a kiindulási ponttól.
- A gyorsulási vektor az X, Y és Z tengely értékének négyzetgyöke (x ^ 2 + y ^ 2 + z ^ 2).
- Ezután összehasonlítja az átlagos gyorsulási értékeket a küszöbértékekkel a lépésszám számolásához.
- Ha a gyorsulási vektor átlépi a küszöbértéket, akkor növeli a lépésszámot; különben elveti az érvénytelen rezgéseket.
Az Arduino Step Counter programozása
A teljes Arduino Step Counter kód a dokumentum végén található. Itt elmagyarázzuk a kód néhány fontos részletét.
Szokás szerint indítsa el a kódot az összes szükséges könyvtár beillesztésével. Az ADXL335 gyorsulásmérő nem igényel könyvtárat, mivel analóg kimenetet ad.
#include
Ezután határozza meg az Arduino Pins-t, ahova a gyorsulásmérő csatlakozik.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Határozza meg a gyorsulásmérő küszöbértékét. Ezt a küszöbértéket összehasonlítjuk a gyorsulási vektorral a lépések számának kiszámításához.
úszó küszöb = 6;
Az üresség beállításain belül a funkció kalibrálja a rendszert, amikor az áramellátást biztosít.
kalibrálás ();
A void loop függvényben 100 minta X, Y és Z tengelyének értékeit olvassa fel.
mert (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); késés (1); yaccl = úszó (analógRead (ypin) - 346); késés (1); zaccl = úszó (analógRead (zpin) - 416); késés (1);
Miután megkapta a 3 tengelyes értékeket, az X, Y és Z tengely értékének négyzetgyökével vegye ki a teljes gyorsulási vektort.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Ezután számítsa ki a maximális és a minimális gyorsulásvektor értékének átlagát.
totave = (totvect + totvect) / 2;
Most hasonlítsa össze az átlagos gyorsulást a küszöbértékkel. Ha az átlag meghaladja a küszöbértéket, akkor növelje a lépésszámot és emelje fel a zászlót.
if (totave> küszöb && flag == 0) {lépések = lépések + 1; zászló = 1; }
Ha az átlag meghaladja a küszöbértéket, de a zászló fel van emelve, akkor ne tegyen semmit.
else if (totave> küszöb && flag == 1) {// ne számoljon}
Ha az összes átlag kevesebb, mint küszöbérték, és a zászló fel van emelve, akkor tegye le a zászlót.
if (totave <küszöb && flag == 1) {flag = 0; }
Nyomtassa ki a lépések számát soros monitoron és LCD-n.
Soros.println (lépések); lcd.print ("Lépések:"); lcd.print (lépések);
Az Arduino lépésszámláló tesztelése
Miután elkészült a hardver és a kód, csatlakoztassa az Arduino-t a laptophoz, és töltse fel a kódot. Most vegye a kezébe a lépésszámláló beállításait, és kezdje el lépésről lépésre, annak meg kell jelenítenie a lépések számát az LCD-n. Néha növeli a lépések számát, amikor a lépésszámláló nagyon gyorsan vagy nagyon lassan rezeg.
Az ADXL335 Arduino lépésszámláló teljes munkavideóját és kódját az alábbiakban adjuk meg.