You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lilian RM 7cf07a2055 Merge pull request 'develop' (#1) from develop into master 2 years ago
bin correction erreurs dans l'affichage des données et ajout attente d'initialisation de l'Arduino. 2 years ago
Exemple_code_Arduino.ino Mise à jour de 'Exemple_code_Arduino.ino' 2 years ago
LICENSE Avancement de la structure basique (tout est dans main.py), mauvaise lecture de ce qu'envoie Arduino. Prochain ajout : code Arduino et graphiques de données raw temps réel 3 years ago
README.md ajout commentaires et titres sur les graphes indiquant le nom des capteurs 3 years ago
main.py correction erreurs dans l'affichage des données et ajout attente d'initialisation de l'Arduino. 2 years ago

README.md

Poeles-Dragon-Calculator 0.1

Ce logiciel est distribué sous license MIT.

Poeles-Dragon-Calculator (PoDoCor) est un logiciel d'expérimentation développé pour les besoins du Low-Tech Bordeaux.

Pour l'instant il n'existe pas d'interface graphique et s'utilise donc avec un terminal, de plus il n'existe qu'en français. Le GUI et les autres langues seront développées plus tard.

Ce logiciel est développé pour Linux avec python3 et Arduino. Les autres plateformes viendront plus tard.

Utilisation et fonctionnement

Pour lancer le programme, ouvrez un terminal dans le dossier “PoDoCor”, dans le répertoire où vous l'avez téléchargé (et dézippé si besoin), ou utilisez la commande “cd /votre/dossier/dextraction/PoDoCor”. Avant de pouvoir utiliser le programme, lancez-le en tapant “python3 main.py” dans le terminal. Si aucun Arduino n'est relié au PC, le programme s'arrêtera immédiatement.

Premier démarrage

Au premier démarrage, le logiciel crée plusieurs dossiers et fichiers dans votre dossier PoDoCor:

  • un dossier “data”, où vous pourrez retrouver tous les fichiers .csv horodatés créés par le logiciel lors de l'enregistrement des données;
  • un fichier “parameters.txt”, où se trouve pour l'instant la seule ligne du chemin Serial où se trouve l'Arduino. Par défaut, après démarrage, ce chemin est “/dev/ttyUSB0”, mais il peut être changé (notamment grâce au logiciel Arduino, le chemin est indiqué tout en bas à droite) en remplaçant cette valeur par une autre;
  • un fichier “captors.txt”, où sont déclarés les capteurs (nom, unité de mesure, etc.).

Menus

Si aucun fichier “captors.txt” n'est déjà créé, ou s'il ne contient aucune déclaration de capteur, le logiciel en demandera la création au démarrage.

Le menu principal propose de commencer l'enregistrement des données ou de gérer les capteurs; le sous-menu permet d'afficher les capteurs enregistrés, d'en ajouter ou supprimer, et de changer l'ordre des capteurs pour correspondre à l'ordre des données envoyées par l'Arduino

Arduino et synchronisation

Ce programme ne permet ni de programmer un Arduino, ni d'écrire le code à votre place. Vous devrez écrire le code Arduino vous-même (ou vous faire aider/vous aider de tutos, nombreux sur Internet). Un exemple (complet et détaillé) sera posté prochainement avec le code de PoDoCor.

Le principe est le suivant: l'ordinateur effectue seul la synchronisation de l'envoi des données. Pour celà, il envoie 2 signaux: le signal “1” pour signifier à Arduino que ce dernierpeut récolter les données des capteurs, et les empaqueter en une ligne de données à envoyer. Après quelques millisecondes, PoDoCor envoie le signal “2” pour signifier qu'il souhaite récolter les données. Arduino envoie alors les données à PoDoCor, qui les traite. Ainsi, PoDoCor n'envoie que des données de synchronisation à Arduino, et Arduino n'envoie que des données issues des capteurs.

Ce processus se répète toutes les secondes, selon l'horloge de l'ordinateur utilisé. Il est néanmoins possible d'avoir un très léger retard d'envoi du bit de synchronisation “1” (quelques millisecondes) lors de l'affichage des données; mais ce retard n'est jamais cumulé. L'ordre de l'interrogation des capteurs étant toujours le même, et la synchronisation “1” variant normalement (selon un gaussienne de 3*sigma = 1ms environ), les données, prises selon un échantillon suffisamment grand (plus de 1000 points de mesure), sont donc théoriquement prises à un intervalle régulier de précisément 1 seconde.

Capteurs

Pour que le logiciel fonctionne, il est nécessaire de déclarer les capteurs utilisés: leur nom, l'unité dans laquelle il mesure, et une variable (0 ou 1) pour savoir si l'Arduino envoie des données brutes de ce capteur (i.e. une simple conversion analogique-numérique, sans mapping des données acquises), ou si ce sont les données normalisées ou converties dans l'unité de destination que renvoie l'Arduino (une température par exemple). Lors de cette création de capteurs, ne JAMAIS utiliser de virgule (","), sans quoi le logiciel s'arrêterait pour ses futures initialisations.

Concernant les données simplement converties en numérique (si l'Arduino extraie la valeur 342 à la suite d'une conversion analogique-numérique par exemple), ce sera cette valeur qui sera transmise. Le CSV contient donc à la fois des données brutes et normalisées; les données brutes nécessiteront donc un traitement, en particulier si les capteurs utilisés nécessitent l'utilisation d'une table de conversion ou d'un étalonnage, ces opérations concernant uniquement l'Arduino devront donc être effectuées avant de lancer PoDoCor. Il est prévu néanmoins, dans une future version, d'inclure la phase d'initialisation dans le processus.

Il est PRIMORDIAL de respecter l'ordre des données envoyées par l'Arduino dans PoDoCor: pour cela, une fois vos capteurs déclarés, vous pouvez changer leur ordre pour qu'ils correspondent exactement à l'ordre des données envoyées par Arduino.

Enregistrement

Une fois le logiciel démarré, le démarrage du processus d'enregistrement des données démarre en utilisant Shift+P; de même, ce processus s'arrête en utilisant Shift+P.

Une fenêtre s'affiche pour afficher les données transmises par l'Arduino en format graphique. Cette fenêtre ne permet pas, pour l'instant, de visualiser la valeur réelle des données (notamment pour les données raw), elle affiche simplement les données (raw ou réelles) reçues par PoDoCor.

TODO

Il est prévu, dans une future version, d'ajouter des calculs simples sur certains capteurs, pour convertir les données raw en données réelles.