IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Liaison Série & utilisation de Matplotlib


Sujet :

Python

  1. #1
    Membre confirmé Avatar de perchman
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 199
    Par défaut Liaison Série & utilisation de Matplotlib
    Bonsoir à tous,


    Voilà, jetravaille sur une station météo. Je reçois par liaison 3 données: vitesse, direction du vent et température.

    Après réception des valeurs, je dois les visualiser sous forme de graphes et en 'temps réel'.

    Voici la fenêtre principale: ici

    C'est sur cette page queles valeurs reçues vont être remises à jour après chaque réception.
    1)Je souhaiterais savoir comment faire pour obtenir une remise à jour des valeurs de manière 'automatique'.

    Pour les graphes, j'ai choisi d'utiliser le module Mathplotlib.
    Je sais déjà faire ça : ici.
    2)Est-ce que je peux gérer un affichage des graphes en même temps que de recevoir de nouvelles données.

    Voici mon programme de gestion des réceptions de données et de classement dans des fichiers, variables et listes !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    import serial
    from pylab import *
    from Tkinter import *
     
    ser=serial.Serial(0)
    ser.baudrate=9600
    tt=ser.read(1)
    e=ord(tt)
    vitesse=[]       #3 listes permettant lefutur tracé
    temp=[]
    direction=[]
    lvit=0
    ldir=0
    ltem=0
     
     
    if e==253:
        obFichier=open('c:/python25/temperature2.txt','a')
        d=ser.read(1)
        tem=ord(d)
        temp.append(tem)
        moin=0
        if s[0]=='-':
            moin=1
            if len(s)==3:
                s=s[1]+s[2] #s=-15 ---> s=15  moin=1
            if len(s)==2:
                s=s[1]
        if moin==1:
            a='-'+'0'*(2-len(s))+s
        else:
            a='0'*(3-len(s))+s
        obFichier.write(a)
        obFichier.close()
        ltem=ltem+1
     
    if (e==254):
        obFichier=open('c:/python25/vitesse.txt','a')
        d=ser.read(1)
        vit=ord(d)
        vitesse.append(vit)
        obFichier.write(vit)
        obFichier.close()
        lvit=lvit+1
     
    if (e==255):
        obFichier=open('c:/python25/direction.txt','a')
        dir=ser.read(1)
        dir1=ord(d)
        vitesse.append(dir1)
        obFichier.write(dir1)
        obFichier.close()
        ldir=ldir+1
     
     
    ser.close()
    Voilà, merci de vos réponses ou autres suggestions

  2. #2
    Membre chevronné Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Par défaut
    je connais pas spécialement le module serial, il fait quoi exactement le code que tu as posté? il te retourne trois valeurs ou trois tableaux?

    pour avoir une mise à jour automatique de tes valeurs je pense que le plus simple est de lancer une routine - à une certaine fréquence - qui lit sur le port et affiche dans la foulée les courbes

  3. #3
    Membre confirmé Avatar de perchman
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 199
    Par défaut
    je connais pas spécialement le module serial, il fait quoi exactement le code que tu as posté? il te retourne trois valeurs ou trois tableaux?
    Mon code permet la lecture du port série vaeur par valeur, puis je met le tout dans un liste ( 3 listes différentes).



    pour avoir une mise à jour automatique de tes valeurs je pense que le plus simple est de lancer une routine - à une certaine fréquence - qui lit sur le port et affiche dans la foulée les courbes
    Tu ferais ça comment ??


    Merci


    Perchman

  4. #4
    Membre chevronné Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Par défaut
    avec un thread par exemple,
    ce bout de code affiche toutes les 2 secondes hello pedant dix secondes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import threading
    import time
     
    def wait():
        if time.clock()<10:
            threading.Timer(2.0, wait).start()
            print "hello"
     
    time.clock()
    wait()
    il suffit donc d'implémenter dans ta classe graphique une def similaire qui lit sur le port une valeur, la colle à la fin du vecteur et réaffiche le graphique et ce pour chaque graphique en cours

Discussions similaires

  1. Utilisation liaison série RS422
    Par lolita4882 dans le forum C++
    Réponses: 0
    Dernier message: 05/11/2007, 12h21
  2. VBA Excel : utiliser la Liaison Série
    Par bbkenny dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/08/2007, 20h28
  3. [Debutant(e)] Liaison série RS232 et servlet
    Par bourack dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 07/01/2005, 15h50
  4. Réponses: 29
    Dernier message: 11/05/2004, 14h18
  5. liaison série
    Par elodie escande dans le forum MFC
    Réponses: 13
    Dernier message: 14/01/2004, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo