Étape 8: Code d’Arduino
Le Memsic 2125 sorties impulsions qui varient en longueur, basé sur l’accélération. Ces impulsions sont lus en utilisant la fonction « pulseIn() », qui retourne la longueur de l’impulsion en microsecondes. La feuille de données Memsic fournit une formule destinée à convertir cette durée d’impulsion à l’accélération (Voir l’image de la feuille de données).
Pour déterminer ce que fait le porteur, l’Arduino calcule la plage d’accélération pour l’axe vertical (l’axe aligné avec gravité – cet axe voit le changement le plus important lorsque l’utilisateur déplace) pendant une période d’environ une seconde. Il fait ceci en trouvant les valeurs maximales et minimales pendant ce temps, puis en prenant la différence. Les intervalles pour courir, marcher ou rester debout sont encore relativement distincts ; donc je peux définir des seuils pour définir les activités (ces seuils variera probablement d’une personne à l’autre). Dans mon cas, debout encore eu une plage comprise entre 0-0,15 g, marche a une portée de 0,15-0,30 g et en cours d’exécution avaient une portée de > 0,30 g. Notez que dans le code, j’ai ajouté un facteur de 100 à mes valeurs accéléromètre pour éviter d’utiliser des flotteurs.
Une fois le code a déterminé l’activité, il commande le fil EL en conséquence. Si le porteur est immobile, le fil EL reste éteint ; Si le porteur est à pied, il clignote ; et si le porteur est en marche il restent allumé.