- Components necessaris
- Acceleròmetre ADXL335
- Esquema de connexions
- Com funciona el podòmetre?
- Programació del comptador de passos Arduino
- Prova del podòmetre Arduino
Les bandes de fitness són cada vegada més populars en l’actualitat, cosa que no només compta els passos, sinó que també fa un seguiment de les calories cremades, de la freqüència de batec del cor, del temps d’espectacle i de moltes altres coses. I aquests dispositius IoT se sincronitzen amb el núvol perquè pugueu obtenir fàcilment tota la història de la vostra activitat física en un telèfon intel·ligent. També hem creat un sistema de monitorització de pacients basat en IoT on les dades crítiques s’han enviat a ThingSpeak per controlar-les des de qualsevol lloc.
Els podòmetres són els dispositius que només s’utilitzaven per comptar els passos. Per tant, en aquest tutorial, crearem un podòmetre de bricolatge fàcil i barat amb Arduino i acceleròmetre. Aquest podòmetre comptarà el nombre de passos i els mostrarà en un mòdul LCD de 16x2. Aquest podòmetre es pot integrar amb aquest rellotge intel·ligent Arduino.
Components necessaris
- Arduino Nano
- Acceleròmetre ADXL 335
- 16 * 2 LCD
- Mòdul LCD I2C
- Bateria
Acceleròmetre ADXL335
L’ADXL335 és un acceleròmetre analògic complet de 3 eixos i funciona segons el principi de la detecció capacitiva. És un mòdul petit, prim i de baixa potència, amb un sensor de micromecanitzat de superfície de polisilici i circuits de condicionament de senyals. L’acceleròmetre ADXL335 pot mesurar l’acceleració estàtica i dinàmica. En aquest projecte del podòmetre Arduino, l’acceleròmetre ADXL335 actuarà com a sensor del podòmetre.
Un acceleròmetre és un dispositiu que pot convertir l’acceleració en qualsevol direcció a la seva respectiva tensió variable. Això s’aconsegueix mitjançant l’ús de condensadors (vegeu la imatge), ja que l’Accel es mou, el condensador que hi ha dins, també experimentarà canvis (vegeu la imatge) en funció del moviment, ja que la capacitat és variada, també es pot obtenir un voltatge variable.


A continuació es mostren les imatges de l’acceleròmetre des de la part frontal i posterior juntament amb la descripció del pin-

Pin Descripció de l’acceleròmetre:
- L'alimentació Vcc- 5 volts s'hauria de connectar en aquest pin.
- X-OUT: aquest pin proporciona una sortida analògica en direcció x
- Y-OUT: aquest pin proporciona una sortida analògica en direcció y
- Z-OUT: aquest pin proporciona una sortida analògica en direcció z
- GND- Terra
- ST- Aquest pin utilitzat per configurar la sensibilitat del sensor
Construïm molts projectes amb l’acceleròmetre ADXL335, inclosos els robots controlats per gestos, l’alarma del detector de terratrèmols, el joc de ping-pong, etc.
Esquema de connexions
A continuació es mostra el diagrama de circuits per al comptador de passos de l’acceleròmetre Arduino.

En aquest circuit, estem relacionant-nos amb Arduino Nano amb l’acceleròmetre ADXL335. Els pins X, Y i Z de l’acceleròmetre estan connectats amb els pins Analog (A1, A2 i A3) d’Arduino Nano. Per connectar els mòduls LCD de 16x2 amb Arduino, estem utilitzant el mòdul I2C. Els pins SCL i SDA del mòdul I2C estan connectats als pins A5 i A4 d’Arduino Nano, respectivament. Les connexions completes es donen a la taula següent:
| Arduino Nano | ADXL335 |
| 3,3V | VCC |
| GND | GND |
| A1 | X |
| A2 | Y |
| A3 | Z |
| Arduino Nano | Mòdul LCD I2C |
| 5V | VCC |
| GND | GND |
| A4 | SDA |
| A5 | SCL |
Primer vam construir aquest podòmetre mitjançant la configuració d’ Arduino en una taula de treball

I després de fer proves amb èxit, el vam reproduir a Perfboard soldant tots els components de Perfboard, tal com es mostra a continuació:


Com funciona el podòmetre?
Un podòmetre calcula el nombre total de passos que ha fet una persona mitjançant els tres components del moviment que són cap endavant, verticals i laterals. El sistema de podòmetre utilitza un acceleròmetre per obtenir aquests valors. L’acceleròmetre actualitza contínuament els valors màxim i mínim de l’acceleració de 3 eixos després de cada núm. de mostres. El valor mitjà d’aquests 3 eixos (Màx + Mín.) / 2 s’anomena nivell de llindar dinàmic i aquest valor llindar s’utilitza per decidir si es fa el pas o no.
Mentre funciona, el podòmetre pot estar en qualsevol orientació, de manera que el podòmetre calcula els passos mitjançant l’eix el canvi d’acceleració del qual és més gran.
Ara permeteu-me donar-vos una ràpida informació sobre el funcionament d’aquest podòmetre Arduino:
- En primer lloc, el podòmetre inicia el calibratge tan bon punt s’alimenta.
- A continuació, a la funció de bucle buit , obté contínuament les dades dels eixos X, Y i Z.
- Després, calcula el vector d’acceleració total des del punt de partida.
- El vector d’acceleració és l’arrel quadrada (x ^ 2 + y ^ 2 + z ^ 2) dels valors de l’eix X, Y i Z.
- A continuació, compara els valors mitjans d'acceleració amb els valors llindars per comptar el número de pas.
- Si el vector d’acceleració creua el valor llindar, augmenta el recompte de passos; en cas contrari, descarta les vibracions no vàlides.

Programació del comptador de passos Arduino
Al final d’aquest document es dóna el codi de comptador de passos Arduino complet. Aquí expliquem alguns fragments importants d’aquest codi.
Com és habitual, inicieu el codi incloent totes les biblioteques necessàries. L’acceleròmetre ADXL335 no requereix cap biblioteca, ja que proporciona una sortida analògica.
#incloure
Després, definiu els pins Arduino, on es connecta l’acceleròmetre.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Definiu el valor llindar de l’acceleròmetre. Aquest valor llindar es compararà amb el vector d’acceleració per calcular el nombre de passos.
llindar flotant = 6;
Dins de la configuració buida , la funció calibra el sistema quan s’alimenta.
calibrar ();
Dins de la funció de bucle buit , llegirà els valors dels eixos X, Y i Z de 100 mostres.
for (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); retard (1); yaccl = float (analogRead (ypin) - 346); retard (1); zaccl = float (analogRead (zpin) - 416); retard (1);
Després d’obtenir els valors de 3 eixos, calculeu el vector d’acceleració total prenent l’arrel quadrada dels valors de l’eix X, Y i Z.
totvect = sqrt ((((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
A continuació, calculeu la mitjana dels valors vectorials d’acceleració màxima i mínima.
totave = (totvect + totvect) / 2;
Ara compareu l’acceleració mitjana amb el llindar. Si la mitjana és superior al llindar, augmenta el recompte de passos i aixeca la bandera.
if (totave> llindar && flag == 0) {steps = steps + 1; bandera = 1; }
Si la mitjana és superior al llindar, però la bandera està alçada, no feu res.
else if (totave> threshold && flag == 1) {// Don't Count}
Si la mitjana total és inferior al llindar i s’alça la bandera, poseu-la.
if (totave <llindar && flag == 1) {flag = 0; }
Imprimiu el nombre de passos al monitor sèrie i a la pantalla LCD.
Serial.println (passos); lcd.print ("Passos:"); lcd.print (passos);
Prova del podòmetre Arduino
Un cop el maquinari i el codi estiguin preparats, connecteu l'Arduino a l'ordinador portàtil i pengeu el codi. Ara agafeu la configuració del podòmetre a les mans i comenceu a caminar pas a pas, hauria de mostrar el nombre de passos a la pantalla LCD. De vegades augmenta el nombre de graons quan el podòmetre vibra molt ràpidament o molt lentament.

A continuació es mostra el vídeo de treball complet i el codi per al podòmetre ADXL335 Arduino.
