- Szükséges alkatrészek
- MPU6050 szenzor modul - rövid bemutatás
- Attiny85 lépésszámláló áramkör rajza
- PCB gyártása az Attiny85 lépésszámlálóhoz
- PCB rendelése a PCBWay-ről
- Az ATtiny85 lépésszámláló NYÁK összeállítása
- ATtiny85 lépésszámláló kód magyarázata
- Vigyük sétálni az Arduino Step Counter-t
Ebben az oktatóanyagban egy egyszerű és olcsó lépésszámlálót fogunk építeni az ATtiny85 IC, az MPU6050 gyorsulásmérő és giroszkóp, valamint az OLED kijelző modul segítségével. Ezt az egyszerű Arduino alapú lépésszámlálót egy 3 V-os érmeelem hajtja, így könnyen hordozható, ha sétálni vagy kocogni megy. Ehhez nagyon kevés összetevő szükséges a felépítéséhez, és a kód is viszonylag egyszerű. A projektben szereplő program az MPU6050 segítségével méri a gyorsulás nagyságát a 3 tengely mentén (X, Y és Z). Ezután kiszámítja a gyorsulás nagyságának különbségét az előző és az aktuális érték között. Ha a különbség nagyobb, mint egy bizonyos küszöb (6-nál nagyobb és 10-nél nagyobb futás esetén), akkor ennek megfelelően növeli a lépésszámot. Ezután az összes megtett lépés megjelenik az OLED kijelzőn.
Ahhoz, hogy ezt a hordozható lépésszámlálót egy NYÁK-ra építsük, gyártottuk a NYÁK-alaplapjainkat a PCBWay-ből, és ugyanezt összeállítjuk és teszteljük ebben a projektben. Ha további funkciókat szeretne hozzáadni, hozzáadhat egy Heartbeat monitort is ehhez a beállításhoz, és korábban már építettünk egy Arduino gyorsulásmérő lépésszámlálót is az ADXL335 segítségével, ellenőrizze őket, ha érdekli.
Szükséges alkatrészek
Ennek a lépésszámlálónak az Arduino használatával történő elkészítéséhez a következő összetevőkre lesz szüksége.
- Attiny85 IC
- MPU6050
- OLED kijelző modul
- 2 × nyomógomb
- 5 × 10KΩ ellenállások (SMD)
MPU6050 szenzor modul - rövid bemutatás
Az MPU6050 mikromechanikus rendszerek (MEMS) technológián alapul. Ez az érzékelő 3 tengelyes gyorsulásmérővel, 3 tengelyes giroszkóppal és beépített hőmérséklet-érzékelővel rendelkezik. Használható olyan paraméterek mérésére, mint a gyorsulás, a sebesség, a tájolás, az elmozdulás stb. Korábban összekötöttük az MPU6050-et az Arduino és a Raspberry pi készülékkel, és néhány olyan projektet is létrehoztunk, például - Önkiegyensúlyozó robot, Arduino Digital Protractor és Arduino Inclinometer.
Az MPU6050 modul kicsi, alacsony energiafogyasztással, nagy ismétlődéssel, nagy ütésállósággal és alacsony felhasználói ponttal rendelkezik. Az MPU6050 I2C busszal és kiegészítő I2C busz interfésszel rendelkezik, és könnyen interferálhat más érzékelőkkel, például magnetométerekkel és mikrokontrollerekkel.
Attiny85 lépésszámláló áramkör rajza
Az MPU6050 lépésszámláló vázlata az alábbiakban látható:
A fenti képen az MPU6050 és az OLED kijelző és az Attiny85 IC összekapcsolásának kapcsolási rajza látható. Az MPU6050, az OLED Display és az Arduino közötti interfészt az I2C Protocol segítségével kell megvalósítani. Ezért az ATtiny85 SCLPin (PB2) csatlakozik az MPU6050, illetve az OLED kijelző SCLPinjéhez. Hasonlóképpen, az ATtiny85 SDAPin (PB0) csatlakozik az MPU6050 és az OLED kijelző SDAPinjéhez. Két nyomógomb is csatlakozik az ATtiny85 IC PB3 és PB4 tűjéhez. Ezekkel a gombokkal használható a szöveg görgetése vagy a megjelenített szöveg megváltoztatása.
Megjegyzés: Az ATtiny85 IC programozása közvetlenül az USB-n keresztül, a Digispark Bootloader segítségével kövesse az ATtiny85 IC programozását USB-n és a Digispark Boot-loader segítségével.
PCB gyártása az Attiny85 lépésszámlálóhoz
A vázlat elkészült, és folytathatjuk a NYÁK kirakását. Tervezheti a NYÁK-t tetszőleges PCB szoftver használatával. Az EasyEDA-t használtuk a PCB gyártásához ehhez a projekthez.
Az alábbiakban bemutatjuk a Step Counter PCB felső és alsó rétegének 3D-s nézetét:
A fenti áramkör NYÁK-elrendezése Gerber néven is letölthető az alábbi linkről:
- Gerber fájl az ATtiny85 Step Counterhez
PCB rendelése a PCBWay-ről
A terv befejezése után folytathatja a NYÁK megrendelését:
1. lépés: Lépjen be a https://www.pcbway.com/ oldalra, és regisztráljon, ha most először jár. Ezután a NYÁK prototípus lapon adja meg a NYÁK méreteit, a rétegek számát és a szükséges NYÁK számát.
2. lépés: Folytassa a "Quote Now" gombra kattintva. Egy olyan oldalra kerül, ahol megadhat néhány további paramétert, például a tábla típusát, a rétegeket, a NYÁK anyagát, a vastagságot és a többit. Ezek nagy része alapértelmezés szerint van kiválasztva, ha bármilyen konkrét paramétert választ, akkor kiválaszthatja itt bent.
3. lépés: Az utolsó lépés a Gerber fájl feltöltése és a fizetés folytatása. Annak érdekében, hogy a folyamat zökkenőmentes legyen, a PCBWAY a fizetés folytatása előtt ellenőrzi, hogy Gerber fájlja érvényes-e. Így biztos lehet abban, hogy a NYÁK gyártásbarát és elkötelezetten eljut hozzád.
Az ATtiny85 lépésszámláló NYÁK összeállítása
Néhány nap múlva rendes csomagolásban kaptuk meg a NYÁK-kat, és a NYÁK minősége jó volt, mint mindig. A tábla felső és alsó rétege az alábbiakban látható:
Miután megbizonyosodott arról, hogy a nyomok és a lábnyomok helyesek-e. Folytattam a NYÁK összeállítását. A teljesen forrasztott tábla a következőképpen néz ki:
ATtiny85 lépésszámláló kód magyarázata
A teljes Arduino lépésszámláló kód a dokumentum végén található. Itt elmagyarázzuk a kód néhány fontos részét.
A kód a TinyWireM.h & TinyOzOLED.h könyvtárakat használja. A TinyWireM könyvtár letölthető az Arduino IDE könyvtárkezelőjéből, és onnan telepíthető. Ehhez nyissa meg az Arduino IDE-t, és lépjen a Sketch <Könyvtár belefoglalása <Könyvtárak kezelése oldalra . Most keresse meg a TinyWireM.h fájlt, és telepítse az Adafruit TinyWireM könyvtárát.
Míg a TinyOzOLED.h könyvtár letölthető a megadott linkekről.
Miután telepítette a könyvtárakat az Arduino IDE-be, indítsa el a kódot a szükséges könyvtárak fájljainak beillesztésével.
#include "TinyWireM.h" #include "TinyOzOLED.h"
A könyvtárak felvétele után határozza meg az Accelerometer leolvasásának tárolására szolgáló változókat.
intaccelX, accelY, accelZ;
A setup () cikluson belül inicializálja a vezetékkönyvtárat, és az energiagazdálkodási regiszteren keresztül állítsa alaphelyzetbe az érzékelőt, és az OL2 kijelző I2C kommunikációját is. Ezután a következő sorokban állítsa be a kijelző tájolását, és adja meg a gyorsulásmérő és a giroszkóp értékeinek regisztercímét.
TinyWireM.begin (); OzOled.init (); OzOled.clearDisplay (); OzOled.setNormalDisplay (); OzOled.sendCommand (0xA1); OzOled.sendCommand (0xC8); TinyWireM.beginTransmission (mpu); TinyWireM.write (0x6B); TinyWireM.write (0b00000000); TinyWireM.write (0x1B);
A getAccel () függvényben kezdje a gyorsulásmérő adatainak beolvasásával. Az egyes tengelyek adatait két bájtban (felső és alsó) vagy regiszterekben tároljuk. Mindegyik elolvasása érdekében kezdje az első regiszterrel, és a requiestFrom () függvény használatával kérjük, hogy olvassa el az X, Y és Z tengely mind a 6 regiszterét. Ezután leolvassuk az egyes regiszterek adatait, és mivel a kimenetek kettő komplementerei, megfelelő módon kombináljuk őket, hogy megkapjuk a teljes gyorsulásmérő értékeit.
voidgetAccel () {TinyWireM.beginTransmission (mpu); TinyWireM.write (0x3B); TinyWireM.endTransmission (); TinyWireM.requestFrom (mpu, 6); accelX = TinyWireM.read () << 8-TinyWireM.read (); accelY = TinyWireM.read () << 8-TinyWireM.read (); accelZ = TinyWireM.read () << 8-TinyWireM.read (); }
Most a hurokfunkció belsejében először olvassa el az X, Y és Z tengely értékeit, és 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. Ezután számítsa ki az aktuális vektor és az előző vektor közötti különbséget, és ha a különbség nagyobb, mint 6, akkor növelje a lépésszámot.
getAccel (); vektor = sqrt ((accelX * accelX) + (accelY * accelY) + (accelZ * accelZ)); totalvector = vector - vector előző; if (teljesvektor> 6) {Lépések ++; } OzOled.printString ("Lépések", 0, 4); OzOled.printNumber (0., 8., 4. lépés); vectorprevious = vektor; késés (600);
Vigyük sétálni az Arduino Step Counter-t
Miután befejezte a NYÁK összeállítását, csatlakoztassa az ATtiny85-et a programozó táblához, és töltse fel a kódot. Most vegye a kezébe a lépésszámláló beállítását és kezdje el lépésről lépésre járni, annak meg kell jelenítenie az OLED lépéseinek számát. Néha növeli a lépések számát, amikor a beállítás nagyon gyorsan vagy nagyon lassan rezeg.
Így készítheti el saját lépésszámlálóját az ATtiny85 és MPU6050 használatával. A projekt teljes működése megtalálható az alább linkelt videóban is. Remélem, hogy tetszett a projekt, és érdekesnek találta a saját építését. Ha bármilyen kérdése van, kérjük, hagyja őket az alábbi megjegyzés részben.