- Komponenter krävs
- ADXL335 Accelerometer
- Kretsschema
- Hur stegmätare fungerar?
- Programmering av Arduino Step Counter
- Testar Arduino stegräknare
Fitnessband blir mycket populära nuförtiden, vilket inte bara räknar fotspåren utan också spårar dina förbrända kalorier, visar hjärtslag, showtime och många fler. Och dessa IoT-enheter synkroniseras med molnet så att du enkelt kan få historien om din fysiska aktivitet på en smartphone. Vi har också byggt ett IoT-baserat patientövervakningssystem där kritiska data har skickats till ThingSpeak för att övervakas var som helst.
Stegräknare är de enheter som bara används för att räkna fotsteg. Så i den här handledningen ska vi bygga en enkel och billig DIY-stegräknare med Arduino och accelerometer. Denna stegräknare räknar antalet steg och visar dem på en 16x2 LCD-modul. Denna stegräknare kan integreras med denna Arduino Smart Watch.
Komponenter krävs
- Arduino Nano
- ADXL 335 Accelerometer
- 16 * 2 LCD
- LCD I2C-modul
- Batteri
ADXL335 Accelerometer
ADXL335 är en komplett 3-axlig analog accelerometer och fungerar på principen om kapacitiv avkänning. Det är en liten, tunn, lågeffektsmodul med en polysilikon-ytbearbetad sensor och signalkonditioneringskretsar. ADXL335 accelerometer kan mäta både statisk och dynamisk acceleration. Här i detta Arduino-stegmätarprojekt kommer ADXL335-accelerometern att fungera som en stegräknare.
En accelerometer är en anordning som kan omvandla acceleration i vilken riktning som helst till sin respektive variabla spänning. Detta åstadkoms genom att använda kondensatorer (se bild), när Accel rör sig, kondensatorn som finns inuti den, kommer också att genomgå förändringar (se bild) baserat på rörelsen, eftersom kapacitansen varieras kan en variabel spänning också erhållas.
Nedan visas bilderna för Accelerometer framifrån och baksidan tillsammans med stiftbeskrivningen-
Stift Beskrivning av accelerometer:
- Vcc-5 volt matning ska anslutas vid denna stift.
- X-OUT- Denna stift ger en analog utgång i x-riktning
- Y-UT - Denna stift ger en analog utgång i y-riktning
- Z-OUT- Denna stift ger en analog utgång i z-riktning
- GND-mark
- ST- Denna stift används för att ställa in känslighet för sensorn
Vi bygger många projekt med Accelerometer ADXL335 inklusive geststyrd robot, jordbävningsdetektorlarm, bordtennisspel etc.
Kretsschema
Kretsschema för Arduino Accelerometer Step Counter ges nedan.
I den här kretsen gränsar vi till Arduino Nano med ADXL335 Accelerometer. X-, Y- och Z-stiften på accelerometern är anslutna med analoga stift (A1, A2 och A3) från Arduino Nano. För att gränssnitt 16x2 LCD-moduler med Arduino använder vi I2C-modulen. SCL- och SDA-stift på I2C-modulen är anslutna till A5- och A4-stiften på Arduino Nano. Kompletta anslutningar ges i nedanstående tabell:
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 |
Vi byggde först denna stegräknare med hjälp av Arduino- installationen på en bräda
Och efter framgångsrik testning replikerade vi den på Perfboard genom att lödda alla komponenter på Perfboard som visas nedan:
Hur stegmätare fungerar?
En stegräknare beräknar det totala antalet steg som en person har tagit med de tre rörelsekomponenterna som är framåt, vertikalt och sida. Stegmätarsystemet använder en accelerometer för att få dessa värden. Accelerometer uppdaterar kontinuerligt max- och minimivärdena för 3-axlig acceleration efter varje definierat nej. av prover. Medelvärdet för dessa 3-axlar (Max + Min) / 2 kallas den dynamiska tröskelnivån och detta tröskelvärde används för att avgöra om steget tas eller inte.
Under körning kan stegräknaren vara i vilken riktning som helst, så stegräknaren beräknar stegen med hjälp av axeln vars accelerationsförändring är störst.
Låt mig nu ge dig en snabb genomgång av arbetet med denna Arduino stegräknare:
- För det första startar stegräknaren kalibreringen så snart den får ström.
- Sedan i tomrumsfunktionen hämtar den kontinuerligt data från X-, Y- och Z-axeln.
- Därefter beräknar den den totala accelerationsvektorn från startpunkten.
- Accelerationsvektorn är kvadratroten (x ^ 2 + y ^ 2 + z ^ 2) för X-, Y- och Z-axelvärdena.
- Sedan jämförs de genomsnittliga accelerationsvärdena med tröskelvärdena för att räkna stegnumret.
- Om accelerationsvektorn passerar tröskelvärdet ökar det stegräkningen; annars kasserar den ogiltiga vibrationer.
Programmering av Arduino Step Counter
Den kompletta Arduino Step Counter-koden ges i slutet av detta dokument. Här förklarar vi några viktiga utdrag av den här koden.
Som vanligt startar du koden med alla nödvändiga bibliotek. ADXL335 accelerometer kräver inget bibliotek eftersom det ger en analog utgång.
#omfatta
Därefter definierar du Arduino Pins, där accelerometern är ansluten.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Definiera tröskelvärdet för accelerometern. Detta tröskelvärde kommer att jämföras med accelerationsvektorn för att beräkna antalet steg.
flottörtröskel = 6;
Inuti tomrumsinställningen kalibrerar funktionen systemet när det får ström.
kalibrera();
Inuti tomrumsfunktionen läser den X-, Y- och Z-axelvärdena för 100 sampel.
för (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); fördröjning (1); yaccl = float (analogRead (ypin) - 346); fördröjning (1); zaccl = float (analogRead (zpin) - 416); fördröjning (1);
Efter att ha fått 3-axelvärdena, beräkna den totala accelerationsvektorn genom att ta kvadratroten av X-, Y- och Z-axelvärdena.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Beräkna sedan medelvärdet av de maximala och minimala accelerationsvektorvärdena.
totave = (totvect + totvect) / 2;
Jämför nu den genomsnittliga accelerationen med tröskeln. Om genomsnittet är högre än tröskelvärdet, öka stegräkningen och höja flaggan.
if (totave> tröskel && flagga == 0) {steg = steg + 1; flagga = 1; }
Om genomsnittet är högre än tröskeln men flaggan höjs, gör ingenting.
annars om (totave> tröskel && flagga == 1) {// Räknas inte}
Om det totala genomsnittet är mindre än tröskeln och flaggan höjs, lägg sedan ner flaggan.
if (totave <tröskel && flagga == 1) {flagga = 0; }
Skriv ut antalet steg på seriell bildskärm och LCD.
Serial.println (steg); lcd.print ("Steps:"); lcd.print (steg);
Testar Arduino stegräknare
När din hårdvara och kod är redo, anslut Arduino till den bärbara datorn och ladda upp koden. Ta nu stegmätarinställningen i dina händer och börja gå steg för steg, den ska visa antalet steg på LCD. Ibland ökar antalet steg när stegräknare vibrerar mycket snabbt eller mycket långsamt.
Den kompletta arbetsvideo och kod för ADXL335 stegräknare Arduino ges nedan.