lundi 11 novembre 2013

Oscilloscope

Je n'étais pas satisfait des oscilloscopes (pour visualisation des pins sur l'arduino) que j'avais trouvés sur le net :

-utilisation de langages que je ne maîtrise pas
-fréquence de rafraichissement visible.

J'ai donc modifié quelques projets pour avoir ma propre version d'un oscilloscope (toujours dans le navigateur avec HTML5).

J'utilise la bibliothèque javascript flotr2.js, développée dans le secteur financier.

J'ai d'abord essayé d'utiliser firmata (avec pyfirmata) pour sonder les données, mais c'était trop lent (3 données par secondes environ).
Finalement j'envoie les données de l'arduino en continue (toutes les 20ms environ) et vient les lire encore plus vite avec le PC (serveur tornado).
Les données sont ensuite envoyées vers le navigateur via websocket + JSON.
Les données une fois récupérées sont mises en forme par flotr2.

J'ai eu quelques problèmes de résolution, qui m'ont conduit à finalement envoyer les données sous forme d'entier (0 à 1023) puis à normaliser dans le navigateur pour avoir un résultat entre 0 et 1.
Le code source est . Pour moi l'objectif est d'intégrer le tout dans l'interface de contrôle du cerf-volant.

Amélioration à prévoir :
- ajout de légende (fait)
- pouvoir stopper le défilement
- pouvoir choisir les voies à afficher
- pouvoir choisir la durée (30s, 5min, 30min, etc...)
- incorporer avec slider pour contrôle pwm

Aucun commentaire:

Enregistrer un commentaire