alors, pour les details :

ce que j appelle un cycle est un cycle d asservissement.

exemple, j ai une routine d asserv de prio haute a 10ms de recurrence. 
une autre de prio basse a 100ms.


un exemple simple :
dans la routine 10ms, je mets un printf du genre : printf("v%ip%i\n" , 
vitesse, position)
dans la routine 100ms, je mets un printf du genre : printf("a%dx%iy%i" , 
angle_robot, x_robot, y_robot)


on recupere sur l uart un truc du genre :
v5p10\n
v5p15\n
a-270.05x300y-50v5p20\n

mon protocole est donc tres simple, et base sur de l ascii. une lettre 
en tant que label, et un nombre (entier ou pas, negatif, peu importe, 
tout est ok).
un \n cloture chaque 10 ms, pour donner une synchronisation, et une info 
de temps.
des valeurss peuvent etre absentes, dans mon exemple, les valeurs a,x et 
y sont presentes qu une fois sur 10.


cote PC :

plusieurs fonctions matlab. (il me semble que j avais terste avec 
octave, mais je ne me souviens plus si ca marche)

http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive_projects/tof2007/telemetrie_matlab/

telemetry.m : script de lancement, qui acquiert, puis affiche les donnees
telemetry_input.m : fonction d acquisition, qui prend les donnees sur le 
port serie, ou dan un fichier de log, et les lit, et convertit en un tableau
telemetrey_show.m : plotte le tout

a remarquer qu on peut definir des labels plus explicites :

{*'C Goal pos (consign)'*, *'p actual position'*, *'P Pivot position'*},{*'V 
Speed consign'*, *'v actual speed'*}

la 1ere lettre est celle du label de la trame. comme fait ici, on 
definit un graphe pour les vitesses, et un pour les positions



finalement, le resultat :

http://wiki.droids-corp.org/mediawiki/index.php/Aversive/Modules/Control_system/Filters/Quadramp_derivate

pas mal, non ?



tof




Olivier MATZ a écrit :
> lu,
>
>  > pour le moment je fais ca en envoynt des donnees par printf a
>  > chaque cycle.
>  > pas tres propre, mais bon.
>
> ah, quoi comme données ? et qu'est ce que tu appelles un cycle ?
>
> Là dans mon cas, le but est de choper et d'afficher la valeur du PC a 
> intervale régulier... en fait, pas tout à fait régulier, il y a une part 
> d'aléatoire pour éviter que la période soit multiple d'une periode d'un 
> autre évenement, par exemple une fonction appelée par le scheduler.
>
> Le gros avantage est que c'est suffisamment lent pour ne pas influer sur 
> le fonctionnement du prog, ce qui permet de vraiment profiler ton appli. 
> Par contre, ça ne te dis pas par quel chemin tu t'es retrouvé dans telle 
> fonction... et je pense que cette info est relativement difficile à 
> rétrouver, car il n'y a pas de frame pointer.
>
> Oliv
>
>
> _______________________________________________
> Avr-list mailing list
> Avr-list@droids-corp.org
> CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
> WIKI : http://wiki.droids-corp.org/index.php/Aversive
> DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
> BUGZILLA : http://bugzilla.droids-corp.org
> COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
>
>   


_______________________________________________
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog

Répondre à