Récupération de données captées par l'Arduino avec Python via USB
La carte Arduino permet d'acquerir des données par l'intermédiaire de capteur et d'un CAN (Convertisseur Analogique Numérique). Ensuite ces données numériques sont déposées à intervalles réguliers sur un "bus", une zone d'échange. De manière synchronisée l'ordinateur avec Python va lire le contenu de ce "bus". C'est pour que la synchronisation soit bien faite qu'il est important d'utiliser le même "Baudrate" dans l'Arduino et dans le programme Python.
Voici un exemple de courbe que l'on peut obtenir en utilisant matplotlib pour tracer les données dont nous avons fait l'acquisition.
import matplotlib.pyplot as plt
cleandata=clean(rawdata)
def write(L):
file=open("data.txt",mode='w')
for i in range(len(L)):
file.write(L[i]+'\n')
file.close()
write(cleandata)
vals,temps=np.loadtxt('data.txt',delimiter=';',unpack=True)
plt.plot(temps,vals)
plt.show()
Cette façon de faire permet de s'affranchir d'une shield pour écrire sur une carte SD tout en effectuant un travail équivalent. J'ai aussi remarqué que l'écriture sur une carte SD est plus lente que l'écriture dans le port série ce qui peut être gênant pour certaines applications très gourmandes en ressources