- Potrebne komponente
- ADXL335 Merilec pospeška
- Shema vezja
- Kako deluje števec korakov?
- Programiranje števca korakov Arduino
- Testiranje koraka Arduino
Fitnes pasovi so danes zelo priljubljeni, kar ne šteje samo korakov, ampak tudi sledi porabljenim kalorijam, prikazuje srčni utrip, čas predvajanja in še veliko več. In te naprave IoT so sinhronizirane z oblakom, tako da lahko v pametnem telefonu enostavno dobite vso zgodovino svoje telesne dejavnosti. Zgradili smo tudi sistem za spremljanje pacientov, ki temelji na IoT, kjer so bili kritični podatki poslani v ThingSpeak, da jih lahko spremljamo od koder koli.
Pedometri so naprave, ki so uporabljale samo za štetje korakov. V tej vadnici bomo torej izdelali enostaven in poceni DIY pedometer z uporabo Arduina in merilnika pospeška. Ta števec korakov bo preštel število korakov in jih prikazal na LCD-modulu 16x2. Ta števec korakov je mogoče integrirati s to pametno uro Arduino.
Potrebne komponente
- Arduino Nano
- Merilnik pospeška ADXL 335
- 16 * 2 LCD
- LCD I2C modul
- Baterija
ADXL335 Merilec pospeška
ADXL335 je popoln 3-osni analogni merilnik pospeška in deluje na principu kapacitivnega zaznavanja. To je majhen, tanek modul z majhno močjo s polisilicijevim površinsko mikro obdelanim senzorjem in vezjem za kondicioniranje signalov. Merilec pospeška ADXL335 lahko meri tako statični kot dinamični pospešek. V tem projektu Arduino Pedometer bo pospeševalnik ADXL335 deloval kot senzor pedometra.
Pospeška je naprava, ki lahko pretvorite pospešek v katero koli smer na svojem spremenljivo napetostjo. To dosežemo z uporabo kondenzatorjev (glej sliko), ko se Accel premika, kondenzator, ki je v njem, se bo spreminjal (sklic na sliko) glede na gibanje, saj je kapacitivnost različna, lahko dobimo tudi spremenljivo napetost.
Spodaj so slike za merilnik pospeška s sprednje in zadnje strani ter opis zatiča -
Pin Opis merilnika pospeška:
- Na tem zatiču se mora priključiti napajalnik Vcc - 5 voltov.
- X-OUT - Ta zatič daje analogni izhod v smeri x
- Y-OUT - Ta zatič daje analogni izhod v smeri y
- Z-OUT - Ta zatič daje analogni izhod v smeri z
- GND - Tla
- ST - Ta zatič se uporablja za nastavitev občutljivosti senzorja
Z uporabo merilnika pospeška ADXL335 gradimo veliko projektov, vključno z robotom, nadzorovanim z gestami, alarmom za detektor potresov, igro Ping Pong itd.
Shema vezja
Shema vezja za števec korakov Arduino Accelerometer je podana spodaj.
V tem vezju povezujemo Arduino Nano z merilnikom pospeška ADXL335. Zatiči X, Y in Z merilnika pospeška so povezani z analognimi zatiči (A1, A2 in A3) Arduino Nano. Za povezavo 16x2 LCD modulov z Arduino uporabljamo modul I2C. Zatiči SCL in SDA modula I2C so povezani z zatiči A5 in A4 Arduino Nano. Popolne povezave so podane v spodnji tabeli:
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 |
Ta pedometer smo najprej izdelali z uporabo nastavitve Arduino na plošči
In po uspešnem preizkušanju smo ga posneli na Perfboard s spajkanjem vse komponente na Perfboard, kot je prikazano spodaj:
Kako deluje števec korakov?
Pedometer izračuna skupno število korakov, ki jih je oseba opravila z uporabo treh komponent gibanja, ki so naprej, navpično in bočno. Za določanje teh vrednosti sistem števcev korakov uporablja merilnik pospeška. Merilnik pospeška neprekinjeno posodablja največje in najmanjše vrednosti 3-osnega pospeška po vsakem določenem št. vzorcev. Povprečna vrednost teh 3-osi (Max + Min) / 2 se imenuje dinamična raven praga in ta vrednost praga se uporablja za odločitev, ali bo korak izveden ali ne.
Med tekom je lahko pedometer v kateri koli usmeritvi, zato korakoma izračuna korake z uporabo osi, katere sprememba pospeška je največja.
Zdaj pa vam na kratko predstavim delovanje tega Arduino Pedometer:
- Najprej pedometer začne s kalibracijo takoj, ko se vklopi.
- Nato v funkciji void loop neprekinjeno dobiva podatke iz osi X, Y in Z.
- Po tem od začetne točke izračuna skupni vektor pospeška.
- Vektor pospeška je kvadratni koren (x ^ 2 + y ^ 2 + z ^ 2) vrednosti X, Y in Z.
- Nato primerja povprečne vrednosti pospeška z mejnimi vrednostmi za štetje števila korakov.
- Če vektor pospeška preseže mejno vrednost, poveča število korakov; v nasprotnem primeru zavrže neveljavne vibracije.
Programiranje števca korakov Arduino
Popolna koda števca korakov Arduino je podana na koncu tega dokumenta. Tukaj razlagamo nekaj pomembnih delčkov te kode.
Kot običajno začnite s kodo, tako da vključite vse zahtevane knjižnice. Merilnik pospeška ADXL335 ne potrebuje knjižnice, ker daje analogni izhod.
#include
Po tem določite Arduino Pins, kamor je povezan merilnik pospeška.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Določite mejno vrednost za merilnik pospeška. Ta mejna vrednost se primerja z vektorjem pospeška za izračun števila korakov.
plavajoči prag = 6;
Znotraj nastavitve praznine funkcija umerja sistem, ko je napajan.
umeriti ();
Znotraj funkcije void loop bo prebral vrednosti osi X, Y in Z za 100 vzorcev.
for (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); zamuda (1); yaccl = float (analogRead (ypin) - 346); zamuda (1); zaccl = float (analogRead (zpin) - 416); zamuda (1);
Ko dobite vrednosti 3 osi, izračunajte skupni vektor pospeška tako, da vzamete kvadratni koren vrednosti osi X, Y in Z.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Nato izračunamo povprečje največjih in najmanjših vrednosti vektorja pospeška.
totave = (totvect + totvect) / 2;
Zdaj primerjajte povprečni pospešek s pragom. Če je povprečje večje od praga, povečajte število korakov in dvignite zastavico.
if (totave> prag && flag == 0) {koraki = koraki + 1; zastava = 1; }
Če je povprečje večje od praga, vendar je zastavica dvignjena, potem ne storite ničesar.
sicer če (totave> prag && zastava == 1) {// Ne štej}
Če je skupno povprečje manjše od praga in je zastavica dvignjena, jo odložite.
if (totave <prag && zastava == 1) {zastava = 0; }
Natisnite število korakov na serijski monitor in LCD.
Serial.println (koraki); lcd.print ("Koraki:"); lcd.print (koraki);
Testiranje koraka Arduino
Ko sta vaša strojna oprema in koda pripravljeni, povežite Arduino s prenosnikom in naložite kodo. Zdaj vzemite nastavitev pedometra v roke in začnite hoditi korak za korakom, na LCD-prikazovalniku naj bo prikazano število korakov. Včasih poveča število korakov, ko števec korakov vibrira zelo hitro ali zelo počasi.
Celoten delujoči video in koda za pedometer ADXL335 Arduino sta podana spodaj.