Go Down

Topic: [Projet] Montage de mesure de stabilité (Read 22769 times) previous topic - next topic

Jean-François

#285
Mar 06, 2012, 09:00 pm Last Edit: Mar 06, 2012, 09:05 pm by Jean-François Reason: 1
Oui, avec .write ça marche du tonnerre, mais dans mon fichier je me retrouve avec ça :

Quote
1,cU,µ,J,÷,4,dX,µ,J,',2,f[,µ,J,',2,d^,µ,J,',4,d`,µ,J,',2,dc,µ,J,',1,bf,µ,J,",1,fi,?,J,',3,dk,?,J,',3,dn,?,J,',2,dr,?,J,",4,du,?,J,÷,3,ex,?,F,',2,az,?,F,",2,e},?,F,',4,dÄ,?,F,÷,3,dÉ,?,F,÷,2,cÜ,?,F,',3,eâ,?,F,',2,dã,?,F,',2,cé,?,F,',4,dë,?,F,',3,eî,?,F,÷,2,dó,?,F,',0,dõ,?,F,',4,cû,?,F,',3,d°,?,F,',0,c§,?,F,÷,3,cß,?,F,',3,e™,?,F,÷,2,f?,?,F,',4,f?,?,F,',3,e?,?,F,÷,5,d?,?,F,',2,e?,?,F,÷,3,fº,?,F,',1,dø,?,F,",2,d¬,?,F,',/,c?,?,F,',2,d…,?,F,?,3,eÕ,?,F,',3,f-,?,F,',1,c",?,F,',2,c÷,?,F,?,3,eŸ,?,F,÷,3,d‹//,:(:7.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Artouste



Je viens de faire un test sans cette partie :


Si je puis me permettre un petit commentaire :smiley-mr-green:

myFile.print(",");  ---> myFile.print(',');
Double quotes -> String, soit en mémoire { ',' , '\0' } alors que simple quote -> caractére seul.


Tiens je me coucherais moins c.n ce soir !   :smiley-mr-green:



Jean-François


Tiens je me coucherais moins c.n ce soir !   :smiley-mr-green:


Y a des soirs comme ça  XD
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

skywodd

#288
Mar 06, 2012, 09:05 pm Last Edit: Mar 06, 2012, 09:15 pm by skywodd Reason: 1

Oui, avec .write ça marche du tonner, mais dans mon fichier je me retrouve avec ça :

Quote
1,cU,µ,J,÷,4,dX,µ,J,',2,f[,µ,J,',2,d^,µ,J,',4,d`,µ,J,',2,dc,µ,J,',1,bf,µ,J,",1,fi,?,J,',3,dk,?,J,',3,dn,?,J,',2,dr,?,J,",4,du,?,J,÷,3,ex,?,F,',2,az,?,F,",2,e},?,F,',4,dÄ,?,F,÷,3,dÉ,?,F,÷,2,cÜ,?,F,',3,eâ,?,F,',2,dã,?,F,',2,cé,?,F,',4,dë,?,F,',3,eî,?,F,÷,2,dó,?,F,',0,dõ,?,F,',4,cû,?,F,',3,d°,?,F,',0,c§,?,F,÷,3,cß,?,F,',3,e™,?,F,÷,2,f?,?,F,',4,f?,?,F,',3,e?,?,F,÷,5,d?,?,F,',2,e?,?,F,÷,3,fº,?,F,',1,dø,?,F,",2,d¬,?,F,',/,c?,?,F,',2,d…,?,F,?,3,eÕ,?,F,',3,f-,?,F,',1,c",?,F,',2,c÷,?,F,?,3,eŸ,?,F,÷,3,d‹//,:(:7.


Tu peut poster ton code ?
Je crois savoir ce que tu as fait :smiley-mr-green:
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Jean-François

#289
Mar 06, 2012, 09:08 pm Last Edit: Mar 06, 2012, 09:22 pm by Jean-François Reason: 1


Oui, avec .write ça marche du tonnerre, mais dans mon fichier je me retrouve avec ça :

Quote
1,cU,µ,J,÷,4,dX,µ,J,',2,f[,µ,J,',2,d^,µ,J,',4,d`,µ,J,',2,dc,µ,J,',1,bf,µ,J,",1,fi,?,J,',3,dk,?,J,',3,dn,?,J,',2,dr,?,J,",4,du,?,J,÷,3,ex,?,F,',2,az,?,F,",2,e},?,F,',4,dÄ,?,F,÷,3,dÉ,?,F,÷,2,cÜ,?,F,',3,eâ,?,F,',2,dã,?,F,',2,cé,?,F,',4,dë,?,F,',3,eî,?,F,÷,2,dó,?,F,',0,dõ,?,F,',4,cû,?,F,',3,d°,?,F,',0,c§,?,F,÷,3,cß,?,F,',3,e™,?,F,÷,2,f?,?,F,',4,f?,?,F,',3,e?,?,F,÷,5,d?,?,F,',2,e?,?,F,÷,3,fº,?,F,',1,dø,?,F,",2,d¬,?,F,',/,c?,?,F,',2,d…,?,F,?,3,eÕ,?,F,',3,f-,?,F,',1,c",?,F,',2,c÷,?,F,?,3,eŸ,?,F,÷,3,d‹//,:(:7.

Tu peut poster ton code ?
Je crois savoir ce que tu as fait :smiley-mr-green:


Moi aussi je sais ce que tu as fait avec les quotes  XD (Edit : Rôôôôoo... t'as corrigé  XD)

Voilà :
Code: [Select]

for (int i=0;i<=top-1;i++)
 {
   myFile.write(timeTop [i]);
   myFile.write(',');
   myFile.write(distance[i]/100);
   myFile.write(',');
   myFile.write(SpeedVal [i]);
   myFile.write(',');
   myFile.write(AxeX[i]);
   myFile.write(',');
   myFile.write(AxeY[i]);
   myFile.write(',');
   myFile.println (AxeZ[i]); // là je sais pas comment faire un saut de ligne avec .write
 }
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

skywodd


Voilà :
Code: [Select]

for (int i=0;i<=top-1;i++)
 {
   myFile.write(timeTop [i]);
   myFile.write(',');
   myFile.write(distance[i]/100);
   myFile.write(',');
   myFile.write(SpeedVal [i]);
   myFile.write(',');
   myFile.write(AxeX[i]);
   myFile.write(',');
   myFile.write(AxeY[i]);
   myFile.write(',');
   myFile.println (AxeZ[i]); // là je sais pas comment faire un saut de ligne avec .write
 }


Ralala j'en était sur :smiley-mr-green:

Regarde la doc de write ;)
(Ici c'est pour serial mais pour tout les .write c'est pareil)
http://arduino.cc/en/Serial/Write

xxx.write() -> envoi UN octet, c'est parfait pour un caractére comme ',' mais par pour un int, float, ... qui est sur plusieurs octets.
Ou alors xxx.write(truc, sizeof(typeDeTruc)); -> écriture au format binaire

Garde les .print() pour tes valeurs et mais les .write() juste pour les endroits ou tu écris un caractére. ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Artouste



Tiens je me coucherais moins c.n ce soir !   :smiley-mr-green:


Y a des soirs comme ça  XD

Ce qui est important, c'est que cela ne se reproduise pas trop souvent !  :smiley-mr-green:

Jean-François

Oui, merci Artouste, pour le moment pour ma part c'est matin-midi-soir  :smiley-mr-green: :smiley-mr-green:
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

Pour les .write, je m'étais fait la remarque et finalement, je me suis dit que j'allais essayer....  :smiley-mr-green:
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François


Garde les .print() pour tes valeurs et mais les .write() juste pour les endroits ou tu écris un caractére. ;)


Toujours la même latence  :smiley-mr-green:
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François


Autre conseil, si il te reste un timer libre, utilise le pour écriture dans ton fichier toute les n ms uniquement.
L'avantage d'écrire en interruption c'est que tu pourra réduire la charge de travail sur la carte SD et allez dans des tr/min beaucoup plus élevé.
(Bien penser à rendre la partie écriture "zone critique" -> cli(); ecriture(); sei();, il ne faut surtout pas qu'une autre interruption viennent foutre la m*rde pendant l'écriture)


Actuellement il me semble que c'est l'entrée de sentence GPS qui détermine le moment de l'écriture sur la SD, soit une fois par seconde. Entre temps les valeurs sont stockées sur des tableaux.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Artouste



Autre conseil, si il te reste un timer libre, utilise le pour écriture dans ton fichier toute les n ms uniquement.
L'avantage d'écrire en interruption c'est que tu pourra réduire la charge de travail sur la carte SD et allez dans des tr/min beaucoup plus élevé.
(Bien penser à rendre la partie écriture "zone critique" -> cli(); ecriture(); sei();, il ne faut surtout pas qu'une autre interruption viennent foutre la m*rde pendant l'écriture)


Actuellement il me semble que c'est l'entrée de sentence GPS qui détermine le moment de l'écriture sur la SD, soit une fois par seconde. Entre temps les valeurs sont stockées sur des tableaux.


faut acheter un vrai module GPS qui  sort du "pulse bien calibré" , que tu pourra entrer en initiation d'interruption  :smiley-mr-green:

en fait là c'est la lib tynigps qui est le "maitre batteur de la seconde"  ?

pour utiliser du 1PPS en interruption , tu peux aussi utiliser si tu  en a un ,  le pin SQW/OUT d'un ds1307  :smiley-mr-green:

Jean-François

Je vais y venir au ds1307, mais il faut que je refasse toute la structure de mon prog.

Je me demande si en virant la lib TinyGPGS, en lisant et traitant les sentence brutes sans cette lib, si je ne gagnerais pas un peu de temps.
Faire la fonction de lecture des capteurs, commandée par les interruptions.
Faire la boucle qui me permet de stocker les valeurs dans les tableaux en attente de les écrire sur la SD (voir et comprendre les structures ?  :smiley-mr-green:)
Ensuite la boucle d'impression sur la SD commandé par le DS1307.

Ce sera déjà plus intéressant que de prendre des bouts de code du Playground.

Par contre je garde la SDfat lib  :smiley-mr-green:
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Artouste

#298
Mar 06, 2012, 11:30 pm Last Edit: Mar 06, 2012, 11:34 pm by Artouste Reason: 1

Je vais y venir au ds1307, mais il faut que je refasse toute la structure de mon prog.
...
Je me demande si en virant la lib TinyGPGS, en lisant et traitant les sentence brutes sans cette lib, si je ne gagnerais pas un peu de temps.


Il y a eu une question là dessus récemment sur un autre topic : qq'un qui cherchait juste à savoir si il y avait fix ou pas
edit : là
http://arduino.cc/forum/index.php/topic,94809.msg712043.html#msg712043

la vrai question est :
quelles infos incontournables tu souhaite impérativement obtenir de ton gps
les datas issue de la  sentence RMC (qui porte bien son nom)  sont souvent les seules intéressantes et necessaire.

Jean-François

#299
Mar 07, 2012, 07:21 am Last Edit: Mar 07, 2012, 07:24 am by Jean-François Reason: 1
Latitude, Longitude, Horodatage, le reste ne m'intéresse pas vraiment, je le fais j'essaye de le faire plus précisément avec les capteurs  :smiley-mr-green: .
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Go Up