Bonjour,
Je viens vers vous car je n'arrive pas à récupérer correctement des données venant d'une carte Arduino avec accéléromètres.
J'essaie ensuite de les enregistrer dans un fichier texte mais j'ai des sauts de ligne (voir résultat), d’où est ce que sa vient ?
C'est dans le Scilab que sa merdouille.
Coté arduino (ici c'est OK)
Code Arduino : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void loop() { accel.getEvent(&event); //Affiche mesures Serial.print(">");Serial.print(millis());Serial.print(";"); Serial.print(event.acceleration.x); Serial.print(";"); Serial.print(event.acceleration.y); Serial.print(";"); Serial.print(event.acceleration.z); Serial.print("<"); }
Coté Scilab (ici problème)
Résultat dans le fichier texte :
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 h=openserial(18,"115200,n,8,1"); //Ouverture sur Com6 -9600bauds fd=file('open', 'test.txt'); //seulement pour cree le file str_head = "Time;Acc_X;Acc_Y;Acc_Z;" run =1; strFini = 0; str=""; write(fd, str_head); //ecrit l'en-tete while (run==1) str=""; in = readserial(h,1);//Recuperation datas 1 cacractere if(in=='>') // on est au debut d'une trame while (strFini~=1 && in~='<') in = readserial(h,1); // on prend le suivant if(in~='<' && in ~=char(13)) str= str+in; end end strFini =0; str = str + char(13); //disp(str); write(fd, str); end //Affiche graph end
1/Time;Acc_X;Acc_Y;Acc_Z;
229905;0.12;-0.47;8.83
229907;0.12;-0.47;8.83
229909;0.12;-0.47;8.83
229911;0.12;-0.47;8.83
229913;0.12;-0.47;8.83
229915;0.12;-0.55;8.90
229917;0.12;-0.55;8.90
229919;0.12;-0.55;8.90
229921;0.12;-0.55;8.90
229923;0.12;-0.55;8.90
229925;0.08;-0.51;8.83
229927;0.08;-0.51;8.83
229929;0.08;-0.51;8.83
D’où vient les sauts de ligne?
Si j’enlève les str=" ", j'ai le résultat suivant dans le fichier txt:
2/229911;0.12;-0.47;8.83
229913;0.12;-0.47;8.83
229915;0.12;-0.55;8.90
229917;0.12;-0.55;8.90
229919;0.12;-0.55;8.90
229921;0.12;-0.55;8.90
229923;0.12;-0.55;8.90
229925;0.08;-0.51;8.83
229927;0.08;-0.51;8.83
229929;0.08;-0.51;8.83
est-ce que mon code est correct de votre point de vue?,
Le fait arduino balance les datas tout les temps, est ce un problème ?, ou vaudrait mieux faire genre (maitre/esclaves) , l'ihm demande une data et arduino répond ?
Merci encore de votre aide.
Partager