Le but de mon programme est de représenter une tension sinusoidal de 20Hz, reçu par une carte pcduino. J'ai pri une fréquence d'échantillonnage de 200Hz. J'utilise un signal d'alarme pour déclencher le timer. Alors j'arrive à tracer le bon signal, mais mon nombre de données dans le terminal et dans mon fichier texte,où j'enregistre les mesures sont différents. Plus le temps de mesure est long et plus je perd donnée. Est-ce que le "write" est mal positionné?
Merci
Voici mon programme:


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
#!/usr/bin/python
# -*- coding: utf-8 -*-
from pyduino import * # importe les fonctions Arduino pour Python
import numpy as np
import time
import signal
import time
import datetime
 
 
def handler(signum, frame):
#frame : moyen de connaitre l'état d'exécution
#avant que le gestionnaire
#de signal a été déclenché
#gestionnaire e signal peut
#lire des états à l'intérieur du champ d'application qui a été
#exécuté avant que le gestionnaire de signal peut lire
 
##ouverture et écriture du fichier##
                try:
                        print" "
 
                except IOError as e:
                                print"I/O error({0}): {1}".format(e.errno,e.strerror)
 
signal.signal(signal.SIGALRM, handler)
 
signal.setitimer(signal.ITIMER_REAL, 0.005, 0.005) #setitimer:
(qui,seconde[intervalles]
#ITIMER_REAL: décrémente l'intervalle en temps réel et fournit un
signal d'alarme
 
##Durée de la mesure##
        ##temps échantillonnage pour 20Hz
f=open("/home/ubuntu/data/text/TensionsA2.txt","w") # ouverture du
fichier avec écrasement des données , si fichier non existant il est
crée
temps=6
start = time.time()
while (time.time() - start) <= (temps):
 
                mesure=analogRead(A2)*3.3/4095.0 #lecture sur le pin Analogique
                time.sleep(0.005)
                f.write(str(mesure)+"\n")
                print mesure
                print "nombre de valeur"+ "  "+str(temps/0.005)