Cela donne quelque chose comme :
On voit bien les changements d'accélération : 'g' diminue quand on commence à descendre, augmente en fin de descente, etc... Cependant, c'est très bruité et je n'ai aucun contrôle temporel sur la mesure. Il s'agit juste du 'sketch' de démo 'datalogger' (c'est ainsi qu'ils appellent les 'programmes' Arduino).
En mettant des capacités de découplage, on peut réduire le bruit à ce qui semble être un niveau acceptable. Il y avait beaucoup moins de bruit avec Serial.println() qu'il n'y en a avec SD.println(). Et moins de bruit quand on utilise l'alimentation par le port USB que quand on utilise les piles. Autre amélioration : plutôt que d'ouvrir et fermer le fichier à chaque écriture, l'ouvrir une seule fois et faire un file.sync() toutes les 100 écritures. Si on ne fait pas le 'sync()', le fichier reste vide quelque soit le nombre d'écritures. Si on fait des 'open/close' à chaque écriture, on ne fait que ~50 écritures (de 3 données)/seconde alors qu'on en obtient 70 par la ligne série (simulée sur l'USB) à 9600 bauds! Il faut dire qu'à chaque écriture d'une ligne, il faut lire plusieurs blocs de 512 sur la carte SD (localiser le fichier, lire le bloc où on veut écrire,...) et en écrire le bloc modifié et le bloc contenant la taille du fichier... Si on n'écrit sur la carte que toutes les 100 mesures, on arrive à plus de 2000 mesures par seconde. Et, cela donne quelque chose comme : 9 secondes dans un ascenseur...; le bruit a fortement diminué et les mesures sont 200 fois plus fréquentesOn voit que le bruit est fort réduit et on a beaucoup plus de mesures pour lisser la courbe. Reste qu'on n'a aucune notion de temps-réel. On sait juste que l'on mesure de l'ordre de 2000 fois par seconde (mais que quand on écrit réellement sur la carte SD, cela ralentit très fort. Cela empêche, par exemple d'estimer la vitesse ou de faire une analyse fréquentielle par transformée de Fourier. Pour cela, il va falloir utiliser un RTOS... <à suivre>