- Komponenter, der kræves
- ADXL335 accelerometer
- Kredsløbsdiagram
- Hvordan skridttæller fungerer?
- Programmering af Arduino Step Counter
- Test af Arduino skridttæller
Træningsbånd bliver meget populære i dag, som ikke kun tæller fodsporene, men også sporer dine forbrændte kalorier, viser hjerterytme, showtime og mange flere. Og disse IoT-enheder synkroniseres med skyen, så du nemt kan få historien om din fysiske aktivitet på en smartphone. Vi har også bygget et IoT-baseret patientovervågningssystem, hvor de kritiske data er sendt til ThingSpeak for at blive overvåget hvor som helst.
Skridttællere er de enheder, der kun bruges til at tælle fodspor. Så i denne vejledning skal vi bygge en nem og billig DIY skridttæller ved hjælp af Arduino og accelerometer. Denne skridttæller tæller antallet af fodspor og viser dem på et 16x2 LCD-modul. Denne skridttæller kan integreres med dette Arduino Smart Watch.
Komponenter, der kræves
- Arduino Nano
- ADXL 335 accelerometer
- 16 * 2 LCD
- LCD I2C-modul
- Batteri
ADXL335 accelerometer
ADXL335 er et komplet 3-akset analogt accelerometer, og det fungerer på princippet om kapacitiv sensing. Det er et lille, tyndt modul med lav effekt med en overflademikro-bearbejdet sensor af polysilicium og signalkonditioneringskredsløb. ADXL335 accelerometer kan måle både den statiske og dynamiske acceleration. Her i dette Arduino skridttællerprojekt fungerer ADXL335 accelerometeret som en skridttællersensor.
Et accelerometer er en enhed, der kan konvertere acceleration i enhver retning til sin respektive variable spænding. Dette opnås ved hjælp af kondensatorer (se billede), når accelerationen bevæger sig, kondensatoren til stede inde i den, vil også gennemgå ændringer (se billede) baseret på bevægelsen, da kapacitansen er varieret, kan en variabel spænding også opnås.
Nedenfor er billederne til accelerometer fra forsiden og bagsiden sammen med stiften beskrivelse-
Stift Beskrivelse af accelerometer:
- Vcc-5 volt forsyning skal tilsluttes ved denne pin.
- X-OUT- Denne pin giver en analog udgang i x-retning
- Y-OUT- Denne pin giver en analog udgang i y-retning
- Z-OUT- Denne pin giver en analog udgang i z-retning
- GND- Jord
- ST- Denne ben bruges til at indstille følsomheden for sensoren
Vi bygger mange projekter ved hjælp af Accelerometer ADXL335, herunder gestusstyret robot, jordskælvdetektoralarm, bordtennis spil osv.
Kredsløbsdiagram
Circuit Diagram for Arduino Accelerometer Step Counter er angivet nedenfor.
I dette kredsløb grænseflade til Arduino Nano med ADXL335 Accelerometer. X-, Y- og Z-benene på accelerometeret er forbundet med analoge ben (A1, A2 og A3) fra Arduino Nano. For at interface 16x2 LCD-moduler med Arduino bruger vi I2C-modulet. SCL & SDA-stifter på I2C-modulet er tilsluttet henholdsvis A5- og A4-stifter på Arduino Nano. Komplette forbindelser er angivet i nedenstående tabel:
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 byggede først denne skridttæller ved hjælp af Arduino- opsætning på et brødbræt
Og efter vellykket test replikerede vi det på Perfboard ved at lodde hele komponenten på Perfboard som vist nedenfor:
Hvordan skridttæller fungerer?
En skridttæller beregner det samlede antal trin taget af en person ved hjælp af de tre bevægelseskomponenter, der er fremad, lodret og side. Skridttællersystemet bruger et accelerometer for at få disse værdier. Accelerometer opdaterer løbende maksimums- og minimumsværdierne for 3-akset acceleration efter hvert defineret nej. af prøver. Den gennemsnitlige værdi af disse 3-akse (Max + Min) / 2 kaldes det dynamiske tærskelniveau, og denne tærskelværdi bruges til at afgøre, om trinnet tages eller ej.
Under kørsel kan skridttælleren være i enhver retning, så skridttælleren beregner trinene ved hjælp af aksen, hvis accelerationsændring er den største.
Lad mig nu give dig en hurtig gennemgang af arbejdet med denne Arduino skridttæller:
- For det første starter skridttælleren kalibreringen, så snart den får strøm.
- Derefter får den i tomrumsfunktionens løbende data fra X-, Y- og Z-aksen.
- Derefter beregner den den samlede accelerationsvektor fra startpunktet.
- Accelerationsvektor er kvadratroden (x ^ 2 + y ^ 2 + z ^ 2) af værdierne X, Y og Z-aksen.
- Derefter sammenlignes de gennemsnitlige accelerationsværdier med tærskelværdierne for at tælle trinnummeret.
- Hvis accelerationsvektoren krydser tærskelværdien, forøger den trinantalet; Ellers kasserer den ugyldige vibrationer.
Programmering af Arduino Step Counter
Den komplette Arduino Step Counter Code findes i slutningen af dette dokument. Her forklarer vi nogle vigtige uddrag af denne kode.
Som sædvanligt skal du starte koden med at inkludere alle de nødvendige biblioteker. ADXL335 accelerometer kræver ikke noget bibliotek, da det giver en analog udgang.
#omfatte
Derefter defineres Arduino Pins, hvor accelerometeret er tilsluttet.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Definer tærskelværdien for accelerometeret. Denne tærskelværdi sammenlignes med accelerationsvektoren for at beregne antallet af trin.
flyde tærskel = 6;
Inde i tomrumsopsætningen kalibrerer funktionen systemet, når det får strøm.
kalibrer ();
Inde i tomrumsfunktionen læser den X-, Y- og Z-akse-værdierne 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);
Når du har fået 3-akse-værdierne, skal du beregne den samlede accelerationsvektor ved at tage kvadratroden af X-, Y- og Z-akseværdierne.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Beregn derefter gennemsnittet af de maksimale og minimale accelerationsvektorværdier.
totave = (totvect + totvect) / 2;
Sammenlign nu den gennemsnitlige acceleration med tærsklen. Hvis gennemsnittet er større end tærsklen, skal du øge antallet af trin og hæve flaget.
hvis (totave> tærskel && flag == 0) {trin = trin + 1; flag = 1; }
Hvis gennemsnittet er større end tærsklen, men flaget hæves, skal du ikke gøre noget.
ellers hvis (totave> tærskel && flag == 1) {// Tæl ikke}
Hvis det samlede gennemsnit er mindre end tærsklen, og flag hæves, skal du lægge flaget ned.
hvis (totave <tærskel && flag == 1) {flag = 0; }
Udskriv antallet af trin på seriel skærm og LCD.
Serial.println (trin); lcd.print ("Trin:"); lcd.print (trin);
Test af Arduino skridttæller
Når din hardware og kode er klar, skal du slutte Arduino til den bærbare computer og uploade koden. Tag nu skridttælleropsætningen i dine hænder og begynd at gå trin for trin, det skal vise antallet af trin på LCD. Nogle gange øger det antallet af trin, når skridttælleren vibrerer meget hurtigt eller meget langsomt.
Den komplette arbejdsvideo og kode til ADXL335 skridttæller Arduino er angivet nedenfor.