Arduino, Développement de logiciels, Tutoriels

La bibliothèque Smooth de Trent “ripred” Wyatt optimise les moyennes mobiles sur les Arduino 2023

La bibliothèque Smooth de Trent "ripred" Wyatt optimise les moyennes mobiles sur les Arduino 2023

Introduction

Trent “ripred” Wyatt, développeur passionné de microcontrôleurs, a récemment publié la bibliothèque Smooth. Cette bibliothèque permet de calculer de manière performante les moyennes mobiles sur les microcontrôleurs Arduino, sans utiliser de tableaux. Dans cet article, nous explorerons les fonctionnalités et avantages de la bibliothèque Smooth, ainsi que son utilisation pratique pour les projets Arduino. Découvrez comment cette bibliothèque peut vous aider à lisser les fluctuations de données et à améliorer les performances de vos projets.

La bibliothèque Smooth : une solution pour les moyennes mobiles

La bibliothèque Smooth, développée par Trent “ripred” Wyatt, offre une méthode efficace pour calculer les moyennes mobiles sur les microcontrôleurs Arduino. Contrairement aux méthodes traditionnelles utilisant des tableaux et des boucles, Smooth utilise des coefficients pour conserver la moyenne mobile, ce qui permet d’économiser du temps de traitement et de la mémoire.

La bibliothèque Smooth de Trent "ripred" Wyatt optimise les moyennes mobiles sur les Arduino
La bibliothèque Smooth de Trent “ripred” Wyatt optimise les moyennes mobiles sur les Arduino

Principales caractéristiques de la bibliothèque Smooth

Voici quelques caractéristiques clés de la bibliothèque Smooth :

1. Ajustement dynamique de la taille de la fenêtre d’échantillonnage : Une des fonctionnalités importantes de Smooth est la possibilité de modifier la taille de la fenêtre d’échantillonnage à tout moment pendant l’exécution du programme. Cela permet une flexibilité accrue et la capacité d’adapter la moyenne mobile en fonction des besoins spécifiques du projet.

2. Moyenne disponible et précise avant d’avoir reçu N échantillons : Contrairement à certaines méthodes traditionnelles, la bibliothèque Smooth fournit une moyenne valide même avant d’avoir reçu un nombre spécifique d’échantillons. Cela permet d’obtenir rapidement des résultats utiles même lorsque les données sont collectées progressivement.

3. Performance optimisée et temps constant de calcul : Smooth est conçue pour offrir des performances optimales avec un temps de calcul constant, indépendamment de la taille de la fenêtre d’échantillonnage. Cela garantit des résultats cohérents et prévisibles, ce qui est essentiel pour de nombreux projets embarqués.

Utilisation pratique de la bibliothèque Smooth

Pour utiliser la bibliothèque Smooth dans vos projets Arduino, voici quelques étapes de base :

1. Installation de la bibliothèque : La bibliothèque Smooth est disponible sur GitHub à l’adresse suivante : https://github.com/ripred/Smooth. Vous pouvez télécharger le fichier ZIP de la bibliothèque depuis cette page et l’installer dans l’IDE Arduino.

2. Inclusion de la bibliothèque : Une fois la bibliothèque installée, vous pouvez l’inclure dans votre code Arduino en ajoutant la ligne suivante en haut de votre sketch :

#include <Smooth.h>

3. Création et utilisation de l’objet Smooth : Vous pouvez créer un objet Smooth en spécifiant la taille de la fenêtre d’échantillonnage souhaitée. Par exemple, pour une fenêtre de taille 10, vous pouvez utiliser la ligne de code suivante :

Smooth smoothObject(10);

Vous pouvez ensuite ajouter des échantillons à l’objet Smooth en utilisant la méthode add(). Par exemple :

double inputValue = readInput();
smoothObject.add(inputValue);

Pour obtenir la moyenne mobile, vous pouvez utiliser la méthode get_avg() :

double smoothedValue = smoothObject.get_avg();

Exemple d’utilisation de la bibliothèque Smooth

Voici un exemple d’utilisation de la bibliothèque Smooth pour calculer une moyenne mobile sur un microcontrôleur Arduino :

#include <Arduino.h>
#include <Smooth.h>

#define SMOOTHED_SAMPLE_SIZE 10

Smooth average(SMOOTHED_SAMPLE_SIZE);
int sample = 0;

void setup() {
    Serial.begin(115200);
}

void loop() {
    int const updown = random(0, 3) - 1;
    sample += updown;
    average += sample;
    
    char scratch[64] = "";
    snprintf(scratch, sizeof(scratch), "count: %4d, sample: %3d, average: %3d\n",
        average.get_count(),
        updown,
        (int) average());

    Serial.print(scratch);
}

Cet exemple génère un échantillon aléatoire entre -1, 0 et 1, puis l’ajoute à la moyenne mobile. Les résultats sont ensuite affichés sur le moniteur série.

Conclusion

La bibliothèque Smooth de Trent “ripred” Wyatt est un outil puissant pour calculer les moyennes mobiles sur les microcontrôleurs Arduino. Avec sa méthode de calcul performante, sa flexibilité d’ajustement de la fenêtre d’échantillonnage et sa précision avant d’avoir reçu un nombre suffisant d’échantillons, Smooth offre une solution pratique pour lisser les fluctuations de données et améliorer les performances de vos projets. Essayez la bibliothèque Smooth dès maintenant et profitez d’une moyenne mobile optimisée, sans compromettre la mémoire ou le temps de traitement.

Pour plus d’article : https://www.moussasoft.com/tutoriels-electroniques

Twitter: Moussa Lhoussaine (@Moussasoft_com) / Twitter