- Componentes requeridos
- Acelerómetro ADXL335
- Diagrama de circuito
- ¿Cómo funciona el podómetro?
- Programación del contador de pasos de Arduino
- Prueba del podómetro Arduino
Las bandas de fitness se están volviendo muy populares hoy en día, que no solo cuentan los pasos, sino que también registran las calorías quemadas, muestran la frecuencia cardíaca, la hora del espectáculo y muchas más. Y estos dispositivos de IoT están sincronizados con la nube para que pueda obtener fácilmente todo el historial de su actividad física en un teléfono inteligente. También hemos construido un sistema de monitoreo de pacientes basado en IoT donde los datos críticos se han enviado a ThingSpeak para ser monitoreados desde cualquier lugar.
Los podómetros son los dispositivos que solo se utilizan para contar los pasos. Entonces, en este tutorial, vamos a construir un podómetro de bricolaje fácil y económico usando Arduino y acelerómetro. Este podómetro contará el número de pasos y los mostrará en un módulo LCD de 16x2. Este podómetro se puede integrar con este reloj inteligente Arduino.
Componentes requeridos
- Arduino Nano
- Acelerómetro ADXL 335
- LCD de 16 * 2
- Módulo LCD I2C
- Batería
Acelerómetro ADXL335
El ADXL335 es un acelerómetro analógico completo de 3 ejes y funciona según el principio de detección capacitiva. Es un módulo pequeño, delgado y de baja potencia con un sensor micro mecanizado de superficie de polisilicio y circuitos de acondicionamiento de señales. El acelerómetro ADXL335 puede medir tanto la aceleración estática como la dinámica. Aquí, en este proyecto de podómetro Arduino, el acelerómetro ADXL335 actuará como un sensor de podómetro.
Un acelerómetro es un dispositivo que puede convertir la aceleración en cualquier dirección a su respectivo voltaje variable. Esto se logra usando capacitores (ver imagen), a medida que el Accel se mueve, el capacitor presente en su interior también sufrirá cambios (ver imagen) en función del movimiento, ya que la capacitancia varía, también se puede obtener un voltaje variable.
A continuación se muestran las imágenes del acelerómetro de la parte delantera y trasera junto con la descripción del pin-
Pin Descripción del acelerómetro:
- Vcc- El suministro de 5 voltios debe conectarse en este pin.
- X-OUT: este pin proporciona una salida analógica en la dirección x
- Y-OUT: este pin proporciona una salida analógica en la dirección y
- Z-OUT: este pin proporciona una salida analógica en la dirección z
- GND- Tierra
- ST- Este pin se usa para configurar la sensibilidad del sensor
Construimos muchos proyectos utilizando el acelerómetro ADXL335, incluido el robot controlado por gestos, la alarma del detector de terremotos, el juego de ping pong, etc.
Diagrama de circuito
El diagrama de circuito para el contador de pasos del acelerómetro Arduino se muestra a continuación.
En este circuito, estamos interactuando con Arduino Nano con acelerómetro ADXL335. Los pines X, Y y Z del acelerómetro están conectados con pines analógicos (A1, A2 y A3) de Arduino Nano. Para conectar módulos LCD de 16x2 con Arduino, estamos utilizando el módulo I2C. Los pines SCL y SDA del módulo I2C están conectados a los pines A5 y A4 de Arduino Nano, respectivamente. Las conexiones completas se dan en la siguiente tabla:
Arduino Nano | ADXL335 |
3,3 V | VCC |
GND | GND |
A1 | X |
A2 | Y |
A3 | Z |
Arduino Nano | Módulo LCD I2C |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
Primero construimos este podómetro usando la configuración de Arduino en una placa de pruebas
Y después de una prueba exitosa, lo replicamos en Perfboard soldando todos los componentes en Perfboard como se muestra a continuación:
¿Cómo funciona el podómetro?
Un podómetro calcula el número total de pasos dados por una persona utilizando los tres componentes del movimiento que son hacia adelante, vertical y lateral. El sistema de podómetro usa un acelerómetro para obtener estos valores. El acelerómetro actualiza continuamente los valores máximo y mínimo de la aceleración de 3 ejes después de cada no definido. de muestras. El valor medio de estos 3 ejes (Máx. + Mín.) / 2, se denomina nivel de umbral dinámico, y este valor de umbral se utiliza para decidir si se da el paso o no.
Mientras corre, el podómetro puede estar en cualquier orientación, por lo que el podómetro calcula los pasos utilizando el eje cuyo cambio de aceleración es el mayor.
Ahora déjame darte un breve recorrido por el funcionamiento de este podómetro Arduino:
- En primer lugar, el podómetro inicia la calibración tan pronto como se enciende.
- Luego, en la función de bucle vacío , obtiene continuamente los datos de los ejes X, Y y Z.
- Después de eso, calcula el vector de aceleración total desde el punto de partida.
- El vector de aceleración es la raíz cuadrada (x ^ 2 + y ^ 2 + z ^ 2) de los valores de los ejes X, Y y Z.
- Luego compara los valores de aceleración promedio con los valores de umbral para contar el número de paso.
- Si el vector de aceleración cruza el valor umbral, aumenta el recuento de pasos; de lo contrario, descarta las vibraciones inválidas.
Programación del contador de pasos de Arduino
El código completo del contador de pasos de Arduino se proporciona al final de este documento. A continuación, explicamos algunos fragmentos importantes de este código.
Como de costumbre, inicie el código incluyendo todas las bibliotecas necesarias. El acelerómetro ADXL335 no requiere ninguna biblioteca, ya que proporciona una salida analógica.
#incluir
Después de eso, defina los Pines Arduino, donde está conectado el acelerómetro.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Defina el valor de umbral para el acelerómetro. Este valor umbral se comparará con el vector de aceleración para calcular el número de pasos.
umbral de flotación = 6;
Dentro de la configuración de vacío , la función calibra el sistema cuando está encendido.
calibrar();
Dentro de la función de bucle vacío , leerá los valores de los ejes X, Y y Z para 100 muestras.
para (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); retraso (1); yaccl = float (analogRead (ypin) - 346); retraso (1); zaccl = flotar (analogRead (zpin) - 416); retraso (1);
Después de obtener los valores de los 3 ejes, calcule el vector de aceleración total tomando la raíz cuadrada de los valores de los ejes X, Y y Z.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Luego calcule el promedio de los valores del vector de aceleración máximo y mínimo.
totave = (totvect + totvect) / 2;
Ahora compare la aceleración promedio con el umbral. Si el promedio es mayor que el umbral, aumente el recuento de pasos y levante la bandera.
if (totave> umbral && bandera == 0) {pasos = pasos + 1; bandera = 1; }
Si el promedio es mayor que el umbral pero se levanta la bandera, no haga nada.
else if (totave> umbral && flag == 1) {// Don't Count}
Si el promedio total es menor que el umbral y se levanta la bandera, entonces baje la bandera.
if (totave <umbral && bandera == 1) {bandera = 0; }
Imprima el número de pasos en el monitor serie y LCD.
Serial.println (pasos); lcd.print ("Pasos:"); lcd.print (pasos);
Prueba del podómetro Arduino
Una vez que su hardware y código estén listos, conecte el Arduino a la computadora portátil y cargue el código. Ahora tome la configuración del podómetro en sus manos y comience a caminar paso a paso, debería mostrar el número de pasos en la pantalla LCD. A veces aumenta el número de pasos cuando el podómetro vibra muy rápido o muy lentamente.
El video de trabajo completo y el código para el podómetro ADXL335 Arduino se dan a continuación.