- Komponenter kreves
- ADXL335 Akselerometer
- Kretsdiagram
- Hvordan skritteller fungerer?
- Programmering av Arduino Step Counter
- Testing av Arduino skritteller
Treningsbånd blir veldig populære i vår tid, som ikke bare teller fotsporene, men også sporer kaloriene dine, viser hjerterytme, showtime og mange flere. Og disse IoT-enhetene er synkronisert med skyen, slik at du enkelt kan få historien om din fysiske aktivitet på en smarttelefon. Vi har også bygget et IoT-basert pasientovervåkingssystem der kritiske data er sendt til ThingSpeak for å bli overvåket hvor som helst.
Skritteller er enhetene som bare brukes til å telle skritt. Så i denne opplæringen skal vi bygge en enkel og billig DIY skritteller ved hjelp av Arduino og akselerometer. Denne skrittelleren teller antall skritt og viser dem på en 16x2 LCD-modul. Denne skrittelleren kan integreres med denne Arduino Smart Watch.
Komponenter kreves
- Arduino Nano
- ADXL 335 Akselerometer
- 16 * 2 LCD
- LCD I2C-modul
- Batteri
ADXL335 Akselerometer
ADXL335 er et komplett 3-akset analogt akselerometer, og fungerer på prinsippet om kapasitiv sensing. Det er en liten, tynn modul med lav effekt med en overflatemikro-bearbeidet sensor av polysilisium og signalkondisjoneringskretser. ADXL335 akselerometer kan måle både statisk og dynamisk akselerasjon. Her i dette Arduino skrittellerprosjektet vil ADXL335 akselerometer fungere som en skritteller sensor.
Et akselerometer er en enhet som kan konvertere akselerasjon i hvilken som helst retning til sin respektive variable spenning. Dette oppnås ved å bruke kondensatorer (se bilde), når akselen beveger seg, kondensatoren som er tilstede i den, også vil gjennomgå endringer (se bilde) basert på bevegelsen, siden kapasitansen er variert, kan en variabel spenning også oppnås.
Nedenfor er bildene for akselerometer fra forsiden og baksiden sammen med pinbeskrivelsen-
Pin Beskrivelse av akselerometer:
- Vcc- 5 volt forsyning skal kobles til ved denne pinnen.
- X-OUT- Denne pinnen gir en analog utgang i x-retning
- Y-UT - Denne pinnen gir en analog utgang i y-retning
- Z-OUT- Denne pinnen gir en analog utgang i z-retning
- GND- bakken
- ST- Denne pinnen brukes til å stille følsomheten til sensoren
Vi bygger mange prosjekter ved hjelp av akselerometer ADXL335, inkludert geststyrt robot, jordskjelvdetektoralarm, bordtennis spill, etc.
Kretsdiagram
Kretsdiagram for Arduino Accelerometer Step Counter er gitt nedenfor.
I denne kretsen grensesnitt vi med Arduino Nano med ADXL335 akselerometer. X-, Y- og Z-pinnene på akselerometeret er koblet til analoge pinner (A1, A2 og A3) fra Arduino Nano. For å grensesnitt 16x2 LCD-moduler med Arduino bruker vi I2C-modulen. SCL & SDA-pinner på I2C-modulen er koblet til henholdsvis A5- og A4-pinner på Arduino Nano. Komplette tilkoblinger er gitt i tabellen nedenfor:
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 bygde først denne skrittelleren ved hjelp av Arduino- oppsett på et brødbrett
Og etter vellykket testing replikerte vi den på Perfboard ved å lodde hele komponenten på Perfboard som vist nedenfor:
Hvordan skritteller fungerer?
En skritteller beregner det totale antallet trinn som en person tar ved hjelp av de tre bevegelseskomponentene som er fremover, vertikale og sideveis. Skrittelleranlegget bruker et akselerometer for å få disse verdiene. Akselerometer oppdaterer kontinuerlig maksimums- og minimumsverdiene for 3-aksen akselerasjon etter hvert definert nei. av prøver. Gjennomsnittsverdien til disse 3-aksene (Max + Min) / 2 kalles det dynamiske terskelnivået, og denne terskelverdien brukes til å bestemme om trinnet blir tatt eller ikke.
Under kjøring kan skrittelleren være i hvilken som helst retning, så skrittelleren beregner trinnene ved hjelp av aksen hvis akselerasjonsendring er størst.
La meg nå gi deg en rask gjennomgang av arbeidet med denne Arduino-skrittelleren:
- For det første starter skrittelleren kalibreringen så snart den får strøm.
- Så i tomrumsløyfefunksjonen får den kontinuerlig dataene fra X-, Y- og Z-aksen.
- Deretter beregner den den totale akselerasjonsvektoren fra startpunktet.
- Akselerasjonsvektor er kvadratroten (x ^ 2 + y ^ 2 + z ^ 2) av X-, Y- og Z-akseverdiene.
- Deretter sammenlignes den gjennomsnittlige akselerasjonsverdiene med terskelverdiene for å telle trinnnummeret.
- Hvis akselerasjonsvektoren krysser terskelverdien, øker den trinntellingen; Ellers forkaster den ugyldige vibrasjoner.
Programmering av Arduino Step Counter
Den komplette Arduino Step Counter Code er gitt på slutten av dette dokumentet. Her forklarer vi noen viktige utdrag av denne koden.
Start som vanlig koden med å inkludere alle nødvendige biblioteker. ADXL335 akselerometer krever ikke noe bibliotek, da det gir en analog utgang.
#inkludere
Deretter definerer du Arduino Pins, hvor akselerometeret er koblet til.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Definer terskelverdien for akselerometeret. Denne terskelverdien vil bli sammenlignet med akselerasjonsvektoren for å beregne antall trinn.
flytterskel = 6;
Inne i tomrumsoppsettet kalibrerer funksjonen systemet når det får strøm.
kalibrer ();
Inne i tomrumsløyfefunksjonen vil den lese X-, Y- og Z-akseverdiene for 100 prøver.
for (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); forsinkelse (1); yaccl = float (analogRead (ypin) - 346); forsinkelse (1); zaccl = float (analogRead (zpin) - 416); forsinkelse (1);
Etter å ha fått 3-akse verdiene, beregne den totale akselerasjonsvektoren ved å ta kvadratroten av X-, Y- og Z-akseverdiene.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Beregn deretter gjennomsnittet av maksimale og minimale akselerasjonsvektorverdier.
totave = (totvect + totvect) / 2;
Sammenlign nå gjennomsnittlig akselerasjon med terskelen. Hvis gjennomsnittet er større enn terskelen, øker du trinntellingen og hever flagget.
hvis (totave> terskel && flagg == 0) {trinn = trinn + 1; flagg = 1; }
Hvis gjennomsnittet er større enn terskelen, men flagget heves, så gjør ingenting.
annet hvis (totave> terskel && flagg == 1) {// Ikke tell}
Hvis det totale gjennomsnittet er mindre enn terskelen og flagget heves, legg flagget ned.
hvis (totave <terskel && flagg == 1) {flagg = 0; }
Skriv ut antall trinn på seriell skjerm og LCD.
Serial.println (trinn); lcd.print ("Steps:"); lcd.print (trinn);
Testing av Arduino skritteller
Når maskinvaren og koden er klar, kobler du Arduino til den bærbare datamaskinen og laster opp koden. Ta nå skrittelleroppsettet i hendene og begynn å gå trinn for trinn, det skal vise antall trinn på LCD-skjermen. Noen ganger øker det antall trinn når skritteller vibrerer veldig raskt eller veldig sakte.
Den komplette arbeidsvideoen og koden for ADXL335 skritteller Arduino er gitt nedenfor.