Affichage tension alternative via python sur ordinateur
Fermébrucine Messages postés 19118 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 20 février 2025 - 6 juil. 2023 à 12:01
- Affichage tension alternative via python sur ordinateur
- Coco.gg alternative - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Wawacity alternative - Accueil - Outils
- Ordinateur qui rame - Guide
- Réinitialiser ordinateur - Guide
6 réponses
Modifié le 21 juin 2023 à 21:24
Bonjour,
Préliminaires
Généralement on utilise matplotlib (pyplot) pour tracer une courbe. Il faut au préalable installer ce paquet, mais selon cette page il est déjà installé dans tonc as.
Ensuite tout dépend de la nature des points que tu collectes. Je suppose que tu as une liste de coordonnées (x, y) (où x est le temps et y la tension à l'instant t).
Si c'est le cas, la fonction la plus indiquée est matplotlib.pyplot.plot. Ce dernier s'utilise en formant deux vecteurs X et Y (contenant respectivement les abscisses et les ordonnées de tes points).
Points sous forme d'un vecteur d'abscisses et d'un vecteur d'ordonnées
Voici un exemple relativement minimal :
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-5, 5, 1000) y = np.sin(2 * np.pi * x) plt.plot(x, y, 'r') plt.xlabel("x") plt.ylabel("y") plt.title("Un exemple simple") plt.grid() plt.show()
Ici je suppose que les points à tracer sont [(1, 10), (2, -20), (3, 30), (4, -40)] :
- je crée le vecteur des abscisses (1, 2, 3, 4)
- je crée le vecteur des ordonnées (10, -20, 30, -40)
Puis je trace le graphe en précisant le label de l'axe des abscisses, des ordonnées, le titre de la figure. Je trace une grille pour qu'on y vois plus clair, puis je trace le graphe.
Points sous forme de couple
On peut facilement reconstruire et x et y comme suit :
import numpy as np import matplotlib.pyplot as plt points = [(1, 10), (2, -20), (3, 30), (4, -40)] x = [x_ for (x_, y_) in points] y = [y_ for (x_, y_) in points] plt.plot(x, y, 'r') plt.xlabel("x") plt.ylabel("y") plt.title("Un exemple simple") plt.grid() plt.show()
Tracer une fonction mathématique
Pour tracer une fonction mathématique, on procède de la même façon : on génère plein de valeurs de x et on calcule pour chacune d'elle la valeur correspondantes :
Dans cet exemple, on génère les 1000 valeurs de x linéairement réparties (donc à intervalles réguliers) entre -5 et 5. Puis pour chacune on calcule la valeur de y correspondante (ici, y = sin(2.pi.x).
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-5, 5, 1000) y = np.sin(2 * np.pi * x) plt.plot(x, y, 'r') plt.xlabel("x") plt.ylabel("y") plt.title("y = sin(2.$\pi$.x)") plt.grid() plt.show()
Bonne chance
Rebonjour et merci pour ta réponse.
Cependant c'est pas tout à fait ce que je voulais...
En effet ton programme trace une courbe à partir d'un intervalle de valeurs et en prenant un nb de points ds cette intervalle pour tracer une fonction connue sur cette intervalle.
Mon problème est différent je veux visualiser(et non tracer) une courbe(tension en fonction du tps) en sortie de mon circuit électronique, un peu comme un oscilloscope qui releve la tension, mais visible sur mon ordinateur.
Encore merci
Chris
22 juin 2023 à 13:39
Bonjour,
Il faut dans ce cas que tu aies un moyen de récupérer a tension électrique de ton circuit pour construire ta liste de points, c'est une étape inévitable. Toute la question maintenant, c'est comment récupérer ces points. D'où mes questions : comment procèdes-tu pour le moment et comment est raccordé ton circuit électronique à ton Arduino ?
Voici un lien qui répond peut-être à ta question. Il évoque un module nommé UUGear, mais je ne sais pas s'il est adapté à ton cas d'usage.
Bonne chance
Bonjour et merci
Pour l'instant la sortie de mon ensemble(capteur +traitement du signal) est reliée à un oscilloscope.
Mais j'ai besoin de travailler dur mon projet pdt les vacances et je ne peux emmener un oscilloscope du lycée.
J'aurais donc besoin de visualiser pdt les vacances cette tension afin d'apporter des améliorations à mon circuit grâce à Arduino relié à un PC.
Pour le reste ça me paraît complexe et m'oblige à rajouter de l'électronique alors qu'il y a déjà bcp de bruits parasites..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question22 juin 2023 à 18:48
Bonjour,
Je comprends, mais tant qu'on ne sait pas comment acquérir les données de ton oscilloscope depuis un programme python, on ne pourra pas avancer. C'est pour ça que je t'ai invité à regardé UUGear (ou tout autre paquet qui permettrait de récupérer des données). L'as-tu fait ?
Bonne chance
Bonjour et encore merci.
UUGear ne me semble pas fonctionner et m'oblige, si j'ai bien compris, à rajouter un circuit électrique.
En revanche j'ai trouvé quelqu'un qui a fait qq chose de proche de moi comme montage électrique et il a fait en plus un filtrage numérique pour améliorer le signal de sortie et l'afficher mais je n'y comprends rien...
Il y a sans doute une fonction qui affiche là-dedans et le reste qui filtre le signal.
Mon montage est un peu différent mais l'objectif était le même donc le programme est très proche de celui-ci.
http://gringet.blogspot.com/p/polygraph.html?m=1#led
Allez en bas de la page sur download et cliquer sur fichier python...
Il y a ss doute la solution pour afficher et le reste pour le filtrage numérique mais je ne comprends pas ce qu'il fait exactement...
Encore merci
23 juin 2023 à 10:38
Dans ton lien, la personne semble raccorder son circuit électronique à un port série. Est-ce ton cas ?
23 juin 2023 à 10:44
En fait mon circuit électronique qui ressemble bcp au sien puisque c'est le même capteur que j'ai créé est relié à ma carte Arduino qui elle même est reliée au port serie de mon ordinateur.
Encore merci
26 juin 2023 à 14:39
Bonjour
Merci pour le lien mais j'ai essayé pas mal de choses, effectué des modifications....sans succès....je n'y arrive pas...je ne maitrise pas assez Python.
Il faudrait que je sache ce que fait exactement chaque ligne pour pouvoir l'adapter aux besoins...
Ou comprendre ligne par ligne ce que fait le programme en lien dans le message 2 et celui que tu m'as donné en message 3, ça me permettra d'adapter probablement par la suite.
Serais-tu capable de le detailler avec les explications ligne par ligne pour un novice comme moi ?
Merci et désolé pour le retard dû aux multiples essais et à qq bugs sur le site...
Chris
6 juil. 2023 à 12:01
Bonjour,
Juste une remarque sur le plan de la sémantique: la tension (qui ne se mesure de manière fiable à ce jour que par compression artérielle sur le plan osseux sous-jacent) et qui correspond à la pression artérielle n'est pas la fréquence cardiaque (qui comme son nom l'indique correspond au nombre de battements par minute).
Un certain nombre d'applications se flatte de déterminer la première également par mesure optique du flux sanguin, et aucune de ces mesures n'ayant montré sa fiabilité à ce jour; c'est surtout la fréquence cardiaque dont le monitorage graphique a un intérêt.