- Componente necesare
- Accelerometru ADXL335
- Diagrama circuitului
- Cum funcționează pedometrul?
- Programarea contorului de pași Arduino
- Testarea pedometrului Arduino
Formațiile de fitness devin foarte populare în zilele noastre, ceea ce nu numai că ia în calcul pașii, dar vă urmărește și caloriile arse, afișează ritmul bătăilor inimii, durata spectacolului și multe altele. Și aceste dispozitive IoT sunt sincronizate cu cloud, astfel încât să puteți obține cu ușurință toată istoria activității dvs. fizice pe un smartphone. De asemenea, am construit un sistem de monitorizare a pacientului bazat pe IoT în care datele critice au fost trimise către ThingSpeak pentru a fi monitorizate de oriunde.
Pedometrele sunt dispozitivele folosite doar pentru a număra pașii. Deci, în acest tutorial, vom construi un pedometru DIY ușor și ieftin folosind Arduino și accelerometru. Acest pedometru va număra numărul de pași și îi va afișa pe un modul LCD de 16x2. Acest pedometru poate fi integrat cu acest ceas inteligent Arduino.
Componente necesare
- Arduino Nano
- Accelerometru ADXL 335
- 16 * 2 LCD
- Modul LCD I2C
- Baterie
Accelerometru ADXL335
ADXL335 este un accelerometru analogic pe 3 axe complet și funcționează pe principiul detectării capacitive. Este un modul mic, subțire, cu putere redusă, cu un senzor de suprafață polisilicon-micro prelucrate și circuite de condiționare a semnalelor. Accelerometrul ADXL335 poate măsura accelerația statică și dinamică. Aici, în acest proiect Arduino Pedometer, accelerometrul ADXL335 va acționa ca un senzor Pedometer.
Un accelerometru este un dispozitiv care poate converti accelerația în orice direcție la tensiunea sa variabilă respectivă. Acest lucru se realizează prin utilizarea condensatoarelor (a se vedea imaginea), pe măsură ce Accel se mișcă, condensatorul prezent în interiorul său, va suferi și modificări (a se vedea imaginea) pe baza mișcării, deoarece capacitatea este variată, putând fi obținută și o tensiune variabilă.
Mai jos sunt imaginile pentru accelerometru din față și din spate, împreună cu descrierea pinului-
Pin Descrierea accelerometrului:
- Alimentarea Vcc- 5 volți ar trebui să se conecteze la acest pin.
- X-OUT - Acest pin oferă o ieșire analogică în direcția x
- Y-OUT - Acest pin oferă o ieșire analogică în direcția y
- Z-OUT - Acest pin oferă o ieșire analogică în direcția z
- GND- Teren
- ST- Acest pin utilizat pentru setarea sensibilității senzorului
Construim multe proiecte folosind Accelerometer ADXL335, inclusiv robot controlat prin gesturi, alarmă cu detector de cutremur, joc de ping-pong etc.
Diagrama circuitului
Diagrama circuitului pentru contorul de pași al accelerometrului Arduino este prezentată mai jos.
În acest circuit, interacționăm cu Arduino Nano cu accelerometrul ADXL335. Pinii X, Y și Z ai accelerometrului sunt conectați cu pinii analogici (A1, A2 și A3) ai Arduino Nano. Pentru a interfața modulele LCD 16x2 cu Arduino, folosim modulul I2C. Pinii SCL și SDA ai modulului I2C sunt conectați la pinii A5 și respectiv A4 ai Arduino Nano. Conexiunile complete sunt date în tabelul de mai jos:
Arduino Nano | ADXL335 |
3,3V | VCC |
GND | GND |
A1 | X |
A2 | Da |
A3 | Z |
Arduino Nano | Modul LCD I2C |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
Am construit mai întâi acest pedometru folosind configurarea Arduino pe o placă de calcul
Și după testarea cu succes, l-am replicat pe Perfboard lipind toate componentele de pe Perfboard așa cum se arată mai jos:
Cum funcționează pedometrul?
Un pedometru calculează numărul total de pași parcurși de o persoană folosind cele trei componente ale mișcării care sunt înainte, verticale și laterale. Sistemul pedometru folosește un accelerometru pentru a obține aceste valori. Accelerometrul actualizează continuu valorile maxime și minime ale accelerației pe 3 axe după fiecare nr. de probe. Valoarea medie a acestor 3 axe (Max + Min) / 2, se numește nivel de prag dinamic, iar această valoare de prag este utilizată pentru a decide dacă pasul este făcut sau nu.
În timpul funcționării, pedometrul poate fi în orice orientare, astfel încât pedometrul calculează pașii folosind axa a cărei schimbare de accelerație este cea mai mare.
Acum permiteți-mi să vă ofer o scurtă prezentare a funcționării acestui pedometru Arduino:
- În primul rând, pedometrul începe calibrarea imediat ce se alimentează.
- Apoi, în funcția de buclă de gol , obține continuu datele de pe axa X, Y și Z.
- După aceea, calculează vectorul de accelerație totală de la punctul de plecare.
- Vectorul de accelerație este rădăcina pătrată (x ^ 2 + y ^ 2 + z ^ 2) a valorilor axelor X, Y și Z.
- Apoi compară valorile medii ale accelerației cu valorile prag pentru a număra numărul pasului.
- Dacă vectorul de accelerație depășește valoarea pragului, atunci crește numărul de pași; în caz contrar, elimină vibrațiile nevalide.
Programarea contorului de pași Arduino
Codul complet al contorului de pași Arduino este dat la sfârșitul acestui document. Aici explicăm câteva fragmente importante ale acestui cod.
Ca de obicei, porniți codul prin includerea tuturor bibliotecilor necesare. Accelerometrul ADXL335 nu necesită nicio bibliotecă, deoarece oferă o ieșire analogică.
#include
După aceea, definiți pinii Arduino, unde este conectat accelerometrul.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Definiți valoarea pragului pentru accelerometru. Această valoare prag va fi comparată cu vectorul de accelerație pentru a calcula numărul de pași.
prag float = 6;
În interiorul setării de gol , funcția calibrează sistemul atunci când este alimentat.
calibra();
În interiorul funcției buclei de gol , va citi valorile axelor X, Y și Z pentru 100 de probe.
for (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); întârziere (1); yaccl = float (analogRead (ypin) - 346); întârziere (1); zaccl = float (analogRead (zpin) - 416); întârziere (1);
După obținerea valorilor pe 3 axe, calculați vectorul de accelerație total luând rădăcina pătrată a valorilor axei X, Y și Z.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Apoi calculați media vectorilor de accelerație maximă și minimă.
totave = (totvect + totvect) / 2;
Acum comparați accelerația medie cu pragul. Dacă media este mai mare decât pragul, creșteți numărul de pași și ridicați steagul.
if (totală> prag && flag == 0) {steps = steps + 1; steag = 1; }
Dacă media este mai mare decât pragul, dar steagul este ridicat, atunci nu faceți nimic.
else if (totave> prag && flag == 1) {// Nu conta}
Dacă media totală este mai mică decât pragul și steagul este ridicat, atunci puneți steagul jos.
if (totave <prag && flag == 1) {flag = 0; }
Imprimați numărul de pași pe monitorul serial și pe ecranul LCD.
Serial.println (pași); lcd.print („Pași:”); lcd.print (pași);
Testarea pedometrului Arduino
Odată ce hardware-ul și codul sunt gata, conectați Arduino la laptop și încărcați codul. Acum luați setarea pedometrului în mâini și începeți să mergeți pas cu pas, ar trebui să afișeze numărul de pași pe ecranul LCD. Uneori crește numărul de trepte atunci când pedometrul vibrează foarte rapid sau foarte lent.
Videoclipul complet de lucru și codul pentru pedometrul ADXL335 Arduino sunt prezentate mai jos.