- Komponente potrebne
- ADXL335 Akcelerometar
- Kružni dijagram
- Kako pedometar radi?
- Programiranje Arduino brojača koraka
- Testiranje Arduino pedometra
Fitnes bendovi postaju vrlo popularni u današnje vrijeme, što ne samo da broji korake, već i prati potrošene kalorije, prikazuje otkucaje srca, vrijeme prikazivanja i još mnogo toga. A ovi IoT uređaji sinkronizirani su s oblakom tako da na pametnom telefonu možete lako dobiti svu povijest svoje tjelesne aktivnosti. Također smo izgradili IoT-ov sustav praćenja pacijenata gdje su kritični podaci poslani u ThingSpeak kako bi se nadzirali s bilo kojeg mjesta.
Pedometri su uređaji koji su se koristili samo za brojanje koraka. Dakle, u ovom uputstvu ćemo izgraditi jednostavan i jeftin DIY pedometar koristeći Arduino i akcelerometar. Ovaj pedometar će izbrojati broj koraka i prikazati ih na LCD modulu 16x2. Ovaj pedometar može se integrirati s ovim Arduino pametnim satom.
Komponente potrebne
- Arduino Nano
- ADXL 335 Akcelerometar
- LCD LCD od 16 * 2
- LCD I2C modul
- Baterija
ADXL335 Akcelerometar
ADXL335 je cjeloviti 3-osni analogni akcelerometar i radi na principu kapacitivnog osjetnika. To je mali, tanki modul male snage s polisilicijskim površinski mikro-obrađenim senzorom i krugovima za kondicioniranje signala. ADXL335 akcelerometar može mjeriti statičko i dinamičko ubrzanje. Ovdje u ovom projektu Arduino pedometra, ADXL335 akcelerometar će djelovati kao senzor pedometra.
Akcelerometar je uređaj koji se može pretvoriti u bilo kojem smjeru ubrzanje na svoj dotični varijabilnog napona. To se postiže korištenjem kondenzatora (referenca slika), dok se Accel pomiče, kondenzator koji se nalazi u njemu također će se podvrgnuti promjenama (referenca slika) na temelju kretanja, jer je kapacitivnost promjenjiva, također se može dobiti promjenjivi napon.


Ispod su slike za akcelerometar s prednje i stražnje strane, zajedno s opisom igle -

Pin Opis mjerača ubrzanja:
- Vcc - napajanje od 5 volti trebalo bi se spojiti na ovom pinu.
- X-OUT - Ovaj pin daje analogni izlaz u smjeru x
- Y-OUT - Ovaj pin daje analogni izlaz u smjeru y
- Z-OUT - Ovaj pin daje analogni izlaz u smjeru z
- GND- Prizemlje
- ST - Ovaj pin služi za podešavanje osjetljivosti senzora
Mnogo projekata gradimo pomoću akcelerometra ADXL335, uključujući robota kojim se upravlja gestama, alarm detektora zemljotresa, igru ping pong itd.
Kružni dijagram
Kružni dijagram za brojač koraka Arduino Accelerometer dat je u nastavku.

U ovom krugu povezujemo Arduino Nano s ADXL335 akcelerometrom. Pribadače X, Y i Z akcelerometra povezane su s analognim pinovima (A1, A2 i A3) Arduino Nano-a. Za povezivanje 16x2 LCD modula s Arduinom koristimo I2C modul. SCL i SDA pinovi I2C modula povezani su na A5 i A4 pinove Arduino Nano-a. Kompletne veze date su u donjoj tablici:
| Arduino Nano | ADXL335 |
| 3,3 V | VCC |
| GND | GND |
| A1 | x |
| A2 | Y |
| A3 | Z |
| Arduino Nano | LCD I2C modul |
| 5V | VCC |
| GND | GND |
| A4 | SDA |
| A5 | SCL |
Prvo smo napravili ovaj pedometar koristeći Arduino postavke na ploči

A nakon uspješnog testiranja kopirali smo ga na Perfboard lemljenjem sve komponente na Perfboard kako je prikazano dolje:


Kako pedometar radi?
Pedometar izračunava ukupni broj koraka koje je osoba poduzela pomoću tri komponente kretanja koje su naprijed, okomito i bočno. Sustav pedometara koristi akcelerometar za dobivanje ovih vrijednosti. Akcelerometar kontinuirano ažurira maksimalne i minimalne vrijednosti 3-osnog ubrzanja nakon svakog definiranog br. uzoraka. Prosječna vrijednost ovih 3 osi (Max + Min) / 2 naziva se dinamička razina praga i ta se vrijednost praga koristi za odlučivanje je li korak poduzet ili ne.
Dok radi, pedometar može biti u bilo kojoj orijentaciji, pa pedometar izračunava korake pomoću osi čija je promjena ubrzanja najveća.
Sada ću vam dati kratki opis rada ovog Arduino pedometra:
- Prvo pedometar započinje kalibraciju čim se uključi.
- Zatim u funkciji void loop neprekidno dobiva podatke s osi X, Y i Z.
- Nakon toga izračunava ukupni vektor ubrzanja od početne točke.
- Vektor ubrzanja kvadratni je korijen (x ^ 2 + y ^ 2 + z ^ 2) vrijednosti X, Y i Z osi.
- Zatim uspoređuje prosječne vrijednosti ubrzanja s vrijednostima praga za brojanje broja koraka.
- Ako vektor ubrzanja prijeđe prag, tada se povećava broj koraka; u suprotnom, odbacuje nevaljane vibracije.

Programiranje Arduino brojača koraka
Kompletni Arduino kod brojača koraka dat je na kraju ovog dokumenta. Ovdje objašnjavamo neke važne isječke ovog koda.
Kao i obično, započnite kod uključivanjem svih potrebnih knjižnica. ADXL335 akcelerometar ne zahtijeva knjižnicu jer daje analogni izlaz.
#include
Nakon toga definirajte Arduino Pins, na koje je spojen akcelerometar.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Definirajte vrijednost praga za akcelerometar. Ova vrijednost praga usporedit će se s vektorom ubrzanja kako bi se izračunao broj koraka.
plutajući prag = 6;
Unutar postavke praznine , funkcija kalibrira sustav kada se napaja.
kalibrirati();
Unutar funkcije praznine petlje očitat će vrijednosti osi X, Y i Z za 100 uzoraka.
za (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); kašnjenje (1); yaccl = float (analogRead (ypin) - 346); kašnjenje (1); zaccl = float (analogRead (zpin) - 416); kašnjenje (1);
Nakon dobivanja vrijednosti osi 3, izračunajte ukupni vektor ubrzanja uzimajući kvadratni korijen vrijednosti osi X, Y i Z.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Zatim izračunajte prosjek maksimalnih i najmanjih vrijednosti vektora ubrzanja.
totave = (totvect + totvect) / 2;
Sada usporedite prosječno ubrzanje s pragom. Ako je prosjek veći od praga, povećajte broj koraka i podignite zastavicu.
if (totave> prag && flag == 0) {koraci = koraci + 1; zastava = 1; }
Ako je prosjek veći od praga, ali zastava je podignuta, tada ne poduzimajte ništa.
inače ako (totave> prag && flag == 1) {// Ne broji}
Ako je ukupan prosjek manji od praga i zastava je podignuta, stavite je.
if (totave <prag && flag == 1) {flag = 0; }
Ispišite broj koraka na serijski monitor i LCD.
Serial.println (koraci); lcd.print ("Koraci:"); lcd.print (koraci);
Testiranje Arduino pedometra
Kad su hardver i kôd spremni, spojite Arduino na prijenosno računalo i prenesite kôd. Sada uzmite postavku pedometra u ruke i krenite korak po korak, trebao bi prikazati broj koraka na LCD-u. Ponekad povećava broj koraka kada pedometar vibrira vrlo brzo ili vrlo sporo.

Kompletni radni video i kôd za ADXL335 pedometar Arduino dati su u nastavku.
