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 :

Placer des mesures dans un graphiques automatiquement


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 1
    Par défaut Placer des mesures dans un graphiques automatiquement
    Bonjour,
    Je suis à la recherche d'une solution pour mon TPE.
    J'ai programmé un raspberry pi et un capteur à ultra-sons mais je n'arrive pas à placer les mesures obtenues par le capteur directement dans un tableau puis automatiquement tracé le graphique des droites obtenue suite à ces différentes mesures.
    Voici le programme initiale:

    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
     
    import RPi.GPIO as GPIO
    import time
     
     
    GPIO.setmode(GPIO.BCM)
    TRIG = 23
    ECHO = 24
     
    print ("Mesure de la distance en cours")
    GPIO.setup(TRIG, GPIO.OUT)
    GPIO.setup(ECHO, GPIO.IN)
     
    def distance():
     
        GPIO.output(TRIG, True)
        time.sleep(0.00001)
        GPIO.output(TRIG, False)
     
        pulse_start = time.time()
        pulse_end = time.time()
     
        while GPIO.input(ECHO) == 0:
            pulse_start = time.time()
     
        while GPIO.input(ECHO) == 1:
            pulse_end = time.time()
     
        pulse_duration = pulse_end - pulse_start
     
        distance = pulse_duration * 17150
        distance = round(distance, 3)
     
        return distance
     
     
    if __name__ == '__main__':
        try:
            while True:
                dist = distance()
                print ("Distance mesurée = %.1f cm" % dist)
                time.sleep(1)
     
        except KeyboardInterrupt:
            print("Mesure arrêtée par l'utilisateur")
            GPIO.cleanup()

    Puis cela me donne des valeurs que je suis obligé de retaper à la main dans ce programme pour obtenir le graphique

    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
    import matplotlib.pyplot as plt
     
    plt.title("Graphique")
     
    plt.grid(True)
     
    plt.plot([abscisse], [ordonnée], label="Sans ultra-sons")
     
    plt.plot([abscisse], [ordonnée], label="Avec ultra-sons")
     
     
    plt.xlabel('Emplacement (en cm)')
     
    plt.ylabel('Mesure (en cm)')
     
    plt.legend()
     
    plt.show()
    Donc j'aimerais avoir une solution pour pouvoir "fusionner" ces programmes et tout automatisé dans un seul programme
    Merci d'avance pour vos réponses
    Cordialement

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Que veux tu tracer exactement ?

    Si tu veux tracer le dist qui est dans le main par exemple, il faut que tu stockes les valeurs successives.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if __name__ == '__main__':
        list_dist=[]
        try:
            while True:
                dist = distance()
                print ("Distance mesurée = %.1f cm" % dist)
                list_dist.append(dist)
                time.sleep(1)
     
        except KeyboardInterrupt:
            print("Mesure arrêtée par l'utilisateur")
            GPIO.cleanup()
    puis ensuite :

    ou bien avec cette syntaxe là, comme tu l'avais écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plt.plot([abscisse], [ordonnée])
    si jamais l'abscisse est plus compliquée que juste les nombres entiers (Là pareil faut construire ton absicees via une liste ou un numpy array.)

Discussions similaires

  1. Filtrer des données dans un graphique Excel
    Par ExcelNewUser dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/06/2007, 09h27
  2. placer des dates dans des feuilles en fonction du mois
    Par Jerez62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/12/2006, 10h05
  3. Réponses: 9
    Dernier message: 20/07/2006, 16h30
  4. Placer des quote dans un champs
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 21/04/2005, 10h36
  5. Réponses: 4
    Dernier message: 11/06/2004, 10h21

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