Panama Hitek Logo
Panama Hitek Logo

Herramienta para el análisis estadístico de datos en Arduino

El análisis estadístico de datos en Arduino se vuelve una necesidad a medida que nos involucramos en proyectos más profundos, con integración de sensores y grandes volúmenes de información. Sin embargo, es importante recordar que Arduino posee una capacidad limitada de memoria SRAM. Si no se tiene cuidado a la hora de declarar  variables y asignarles valores, posiblemente el programa fallará en tiempo de ejecución.

En el siguiente artículo explicaré brevemente el uso de la librería Average (descargar en Github), con la cual podemos almacenar y analizar grandes cantidades de datos. La documentación de esta librería se encuentra disponible de forma gratuita a través del sitio web de Arduino.

Funciones de la librería Average

La librería Average fue diseñada hace un par de años para analizar grandes volúmenes de datos almacenados en un Array en Arduino. La librería cuenta con las siguientes funciones:

  • rolling: Calcula la media móvil de la serie de datos
  • mean Calcula la mediana de la serie de datos
  • mode: Calcula la moda
  • minimum: Devuelve el valor mínimo de una serie de datos
  • maximum: Devuelve el valor máximo de una serie de datos
  • stddev: Calcula la desviación estándar
  • leastSquares: Cálculo de mínimos cuadrados
  • push: Agrega un elemento al array
  • get: Obtiene un elemento almacenado en el array
  • getCount: Cantidad de elementos almacenados en el array

Es posible agregar nuevas funciones a esta librería debido a que el proyecto se encuentra disponible en Github.

Utilización de la librería Average

Para utilizar la librería Average se necesita instalar la librería en el Arduino IDE. Es importante recordar que cuando se instala una librería se debe reiniciar el software para que el IDE la reconozca.

Se debe llamar la librería a través de la instrucción #include <Average.h> en el inicio del código. Luego se debe crear una instancia de la librería a través de la instrucción: Average<int> ave(10).  En esta sentencia, Average es el nombre de la clase, int es el tipo de dato que se almacenará en el buffer y 10 es la cantidad de datos que se almacenará en el buffer.

Es importante tomar en cuenta que el tipo de datos y la cantidad de datos que se almacenan en el buffer puede tener un impacto directo sobre la memoria del microcontrolador. Se debe tener claro los conceptos de tipo de datos y los espacios que ocupan en la memoria. También es saludable estimar la cantidad de datos que se va a guardar para optimizar el uso de memoria.

Análisis estadístico de datos en Arduino

El siguiente ejemplo muestra el uso de esta librería.

Este ejemplo es sumamente sencillo, pero ilustrativo de la capacidad de la librería Average. Me ha parecido una herramienta sumamente útil y por ello he compartido este contenido con ustedes. Espero que la información sea de utilidad para ustedes.

Antony García González
Antony García González
Ingeniero Electromecánico, egresado de la Universidad Tecnológica de Panamá. Miembro fundador de Panama Hitek. Entusiasta de la electrónica y la programación.

Posts relacionados

3 COMENTARIOS

  1. Gracias,
    Hola, mi nombre es Ulises y su clases de física en México a nivel bachillerato.
    Me será muy útil esta información para los proyectos con mis estudiantes.
    Estoy leyendo otros de tus posts.
    Saludos

  2. hola y gracias por el tema.
    soy nuevo en el tema de programacion y me surgen muchas preguntas con el tema que expuso.
    como por ejemplo tengo un sensor de color tcs que arroja diferentes valores en rango del r g y b y quisiera sacar las medidas estadisticas de estos 3, mediante la realizacion de un muestreo de 100 datos.
    tratare de ser mas explicito. el sensor aroja valores asi r: 98.54 g:115.32 b: 54.32, cierto ahora quisiera tomar 100 datos, es decir que en total me sacaría 3*100=300 datos .ahora quiero sacar las medidas estadisticas de cada componente r g y b. con lo expuesto por usted nos dice que se debe crear una instanciade la libreria con un tamaño x. mi pregunta es esa instancia para mi seria de 300 o de 100.
    gracias por atencion prestada

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Post relacionados