- Componenti richiesti
- Accelerometro ADXL335
- Schema elettrico
- Come funziona il contapassi?
- Programmazione del contapassi Arduino
- Testare il contapassi Arduino
Le bande di fitness stanno diventando molto popolari al giorno d'oggi, il che non solo conta i passi, ma tiene traccia anche delle calorie bruciate, mostra il battito cardiaco, lo spettacolo e molti altri. E questi dispositivi IoT sono sincronizzati con il cloud in modo da poter ottenere facilmente tutta la cronologia della tua attività fisica su uno smartphone. Abbiamo anche costruito un sistema di monitoraggio dei pazienti basato sull'IoT in cui i dati critici sono stati inviati a ThingSpeak per essere monitorati da qualsiasi luogo.
I contapassi sono i dispositivi che utilizzavano solo per contare i passi. Quindi, in questo tutorial, costruiremo un contapassi fai-da-te facile ed economico usando Arduino e l'accelerometro. Questo contapassi conterà il numero di passi e li visualizzerà su un modulo LCD 16x2. Questo contapassi può essere integrato con questo Arduino Smart Watch.
Componenti richiesti
- Arduino Nano
- Accelerometro ADXL 335
- LCD 16 * 2
- Modulo LCD I2C
- Batteria
Accelerometro ADXL335
L'ADXL335 è un accelerometro analogico completo a 3 assi e funziona secondo il principio del rilevamento capacitivo. È un modulo piccolo, sottile ea bassa potenza con un sensore in polisilicio micro-lavorato e circuiti di condizionamento dei segnali. L'accelerometro ADXL335 può misurare l'accelerazione statica e dinamica. Qui in questo progetto Arduino Pedometer, l'accelerometro ADXL335 fungerà da sensore del pedometro.
Un accelerometro è un dispositivo in grado di convertire l'accelerazione in qualsiasi direzione nella rispettiva tensione variabile. Ciò si ottiene utilizzando dei condensatori (vedi immagine), poiché l'Accel si muove, anche il condensatore presente al suo interno subirà delle variazioni (vedi immagine) in base al movimento, poiché varia la capacità, si può ottenere anche una tensione variabile.
Di seguito sono riportate le immagini per l'accelerometro dal lato anteriore e posteriore insieme alla descrizione del pin-
Pin Descrizione dell'accelerometro:
- L'alimentazione Vcc- 5 volt deve essere collegata a questo pin.
- X-OUT- Questo pin fornisce un'uscita analogica in direzione x
- Y-OUT- Questo pin fornisce un'uscita analogica in direzione y
- Z-OUT- Questo pin fornisce un'uscita analogica in direzione z
- GND- Terra
- ST- Questo pin utilizzato per impostare la sensibilità del sensore
Realizziamo molti progetti utilizzando l'accelerometro ADXL335 tra cui robot controllato tramite gesti, allarme rilevatore di terremoti, gioco di ping pong, ecc.
Schema elettrico
Di seguito è riportato lo schema del circuito per il contapassi dell'accelerometro Arduino.
In questo circuito, ci stiamo interfacciando con Arduino Nano con l'accelerometro ADXL335. I pin X, Y e Z dell'accelerometro sono collegati ai pin analogici (A1, A2 e A3) di Arduino Nano. Per interfacciare i moduli LCD 16x2 con Arduino, utilizziamo il modulo I2C. I pin SCL e SDA del modulo I2C sono collegati rispettivamente ai pin A5 e A4 di Arduino Nano. I collegamenti completi sono riportati nella tabella seguente:
Arduino Nano | ADXL335 |
3,3V | VCC |
GND | GND |
A1 | X |
A2 | Y |
A3 | Z |
Arduino Nano | Modulo LCD I2C |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
Per prima cosa abbiamo costruito questo contapassi utilizzando la configurazione Arduino su una breadboard
E dopo aver testato con successo lo abbiamo replicato su Perfboard saldando tutti i componenti su Perfboard come mostrato di seguito:
Come funziona il contapassi?
Un contapassi calcola il numero totale di passi compiuti da una persona utilizzando le tre componenti del movimento che sono in avanti, verticale e laterale. Il sistema contapassi utilizza un accelerometro per ottenere questi valori. L'accelerometro aggiorna continuamente i valori massimo e minimo dell'accelerazione sui 3 assi dopo ogni n. Definito. di campioni. Il valore medio di questi 3 assi (Max + Min) / 2, è chiamato livello di soglia dinamico e questo valore di soglia viene utilizzato per decidere se il passo viene eseguito o meno.
Durante la corsa, il contapassi può essere in qualsiasi orientamento, quindi il contapassi calcola i passi utilizzando l'asse la cui variazione di accelerazione è la più grande.
Ora lascia che ti dia una rapida panoramica del funzionamento di questo pedometro Arduino:
- Innanzitutto il contapassi avvia la calibrazione non appena viene alimentato.
- Quindi, nella funzione loop void , ottiene continuamente i dati dagli assi X, Y e Z.
- Successivamente, calcola il vettore di accelerazione totale dal punto di partenza.
- Il vettore di accelerazione è la radice quadrata (x ^ 2 + y ^ 2 + z ^ 2) dei valori degli assi X, Y e Z.
- Quindi confronta i valori medi di accelerazione con i valori di soglia per contare il numero di passi.
- Se il vettore di accelerazione supera il valore di soglia, aumenta il conteggio dei passi; in caso contrario, scarta le vibrazioni non valide.
Programmazione del contapassi Arduino
Il codice completo del contatore di passi Arduino è fornito alla fine di questo documento. Qui stiamo spiegando alcuni importanti frammenti di questo codice.
Come al solito, avvia il codice includendo tutte le librerie richieste. L'accelerometro ADXL335 non richiede alcuna libreria in quanto fornisce un'uscita analogica.
#includere
Dopodiché, definisci gli Arduino Pin, a cui è collegato l'accelerometro.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Definisce il valore di soglia per l'accelerometro. Questo valore di soglia verrà confrontato con il vettore di accelerazione per calcolare il numero di passi.
soglia galleggiante = 6;
All'interno del setup void , la funzione calibra il sistema quando è alimentato.
calibrare();
All'interno della funzione void loop , leggerà i valori degli assi X, Y e Z per 100 campioni.
for (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); ritardo (1); yaccl = float (analogRead (ypin) - 346); ritardo (1); zaccl = float (analogRead (zpin) - 416); ritardo (1);
Dopo aver ottenuto i valori a 3 assi, calcolare il vettore di accelerazione totale prendendo la radice quadrata dei valori degli assi X, Y e Z.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Quindi calcolare la media dei valori del vettore di accelerazione massimo e minimo.
totave = (totvect + totvect) / 2;
Ora confronta l'accelerazione media con la soglia. Se la media è maggiore della soglia, aumentare il conteggio dei passi e alzare la bandiera.
if (totave> soglia && flag == 0) {steps = steps + 1; flag = 1; }
Se la media è maggiore della soglia ma il flag è alzato, non fare nulla.
altrimenti se (totave> soglia && flag == 1) {// Don't Count}
Se la media totale è inferiore alla soglia e la bandierina viene sollevata, mettere la bandierina verso il basso.
if (totave <soglia && flag == 1) {flag = 0; }
Stampa il numero di passaggi sul monitor seriale e LCD.
Serial.println (passaggi); lcd.print ("Passi:"); lcd.print (passaggi);
Testare il contapassi Arduino
Una volta che l'hardware e il codice sono pronti, collega Arduino al laptop e carica il codice. Ora prendi la configurazione del contapassi nelle tue mani e inizia a camminare passo dopo passo, dovrebbe visualizzare il numero di passi sul display LCD. A volte aumenta il numero di passi quando il contapassi vibra molto rapidamente o molto lentamente.
Di seguito sono riportati il video e il codice di lavoro completi per il contapassi ADXL335 Arduino.