Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Boussole Numérique !
pspic
Passioné
Passioné
Messages : 357
Âge : 77
Enregistré en : septembre 2017
Localisation : 68

#11 Message par pspic » ven. 23 nov. 2018 08:34

En plaçant une boussole ( celle du téléphone, j'en ai pas de vrai à la maison). les résultats ne sont pas du tout les mêmes . avec le téléphone, si je place bien au bord de mon bureau( comme sur la photo 1 , j'obtiens un angle de 185° ( hors sur la photo N°1 on voit qu'il affiche 18°) .

Bonjour,
j'ai remarqué que la boussole du téléphone était faussée par l'aimant qui se trouve dans certaines housses de protection.

Boussole Numérique !
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#12 Message par Jérémy » ven. 23 nov. 2018 08:42

Bonjour à tous,

@pspic : je n'ai pas de coque sur mon portable !

Ce qui me choque le plus , ce n'est pas tant les valeurs obtenues, mais c'est le décalage entre 2 mesures . En effet je fais des quarts de tour , donc l'angle devrait augmenter ou diminuer de 90° environ a chaque fois . Hors ce n'est pas le cas
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Boussole Numérique !
PieM
Membre
Membre
Messages : 21
Enregistré en : juin 2016

#13 Message par PieM » ven. 23 nov. 2018 10:26

Bonjour Jeremy,

Qu'il y ait un écart entre boussole du smartphone et ton DOP9 est assez "normal" . le magnétomètre du phone est orienté pour avoir le nord qui correspond au haut de l'appareil. Sur ton DOP9 les axes X et Y peuvent très bien l'un comme l'autre être défini comme correspondant au nord. ce n'est pas une aiguille aimantée!
Par contre comme tu le soulignes, ce qui est très inquiétant , c'est la progression des valeurs que tu lis. Il y a un gros problème! Et pas d'offset!
Tu devrais faire la même opération plus progressivement, en notant ou enregistrant, les valeurs lues selon 12 directions réparties sur 360°.
L'idéal serait d'avoir également les valeurs brutes des registres du magnéto:
Xlsb = 28
Xmsb = 29
Ylsb = 2A
Ymsb = 2B
sous la forme : Xm Xl Ym Yl angle
Je suis surpris également qu'il n'y ait pas de configuration pour ton capteur car on peut modifier sensibilité et fréquence d'échantillonnage. (de base à 10Hz).

Je réponds aussi à ton mail:
pas regardé en détail ton programme . fais la même chose : sur 1 tour, 8 positions, qu'est-ce que tu obtiens comme angle et quelles sont tes valeurs magX et magY ?

Boussole Numérique !
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#14 Message par Jérémy » ven. 23 nov. 2018 11:59

Bonjour Pierre ,

Je me permets de joindre le document que tu as fait pour moi .
Il s'agit d'une explication très clair et précise, du fonctionnement d'un magnétomètre et comment calculé un cap !

PS : PieM et besqueut sont deux cracks en la matière qui m'ont initié à la programmation de microcontrôleur à mes tous début (sur picaxe) .
@Paul : ce document pourrais te servir , car tu avais buter sur le magnéto aussi !
magnet1.pdf


Pour en revenir à nos moutons .

Comme c'est difficile d'afficher toutes ces infos sur mon petit écran, je suis passé à l'UART . Ainsi j’envoie mes valeurs en UART et je peux les lires sur realterm.

Voila ce que j'obtiens pour les 4 positions !

haut.jpg


gauche.jpg


bas.jpg


droite.jpg


L'idéal serait d'avoir également les valeurs brutes des registres du magnéto:
Xlsb = 28
Xmsb = 29
Ylsb = 2A
Ymsb = 2B
sous la forme : Xm Xl Ym Yl angle
Je suis surpris également qu'il n'y ait pas de configuration pour ton capteur car on peut modifier sensibilité et fréquence d'échantillonnage. (de base à 10Hz).


En fait j'utilise la librairie fournis par MikroE .
Et la configuration reste inconnue ! ou alors je n'ai pas compris comme cela fonctionnait. Jer vois bien qu'il envoie par I²C au module. ces valeurs sont enregistrées dans _C9DOF_CTRL_REG1_M_CONFIG par exemple. Mais impossible de savoir a quoi cela correspond.

Voici le code si quelqu'un comprends la configuration !

Code : Tout sélectionner


int16_t accelX
;
int16_t accelY;
int16_t accelZ;
int16_t gyroX;
int16_t gyroY;
int16_t gyroZ;
int16_t magX;
int16_t magY;
int16_t magZ;

float Angle ;
const float Pi =  3.14159265;

float temperature;
uint8_t temp[2]    = {0};
char logText[ 15 ] = {0};

void systemInit()
{
    mikrobus_gpioInit( _MIKROBUS1, _MIKROBUS_INT_PIN, _GPIO_INPUT );
    mikrobus_gpioInit( _MIKROBUS1, _MIKROBUS_RST_PIN, _GPIO_OUTPUT );
    mikrobus_i2cInit( _MIKROBUS1, &_C9DOF_I2C_CFG[0] );
    mikrobus_logInit( _MIKROBUS2, 9600 );
    Delay_100ms();
}

void applicationInit()
{
    c9dof_i2cDriverInit( (T_C9DOF_P)&_MIKROBUS1_GPIO, (T_C9DOF_P)&_MIKROBUS1_I2C, _C9DOF_ADDRESS_00 );

    /*  Initializes  */
    //ACCEL & GYRO
    c9dof_writeData( _C9DOF_CTRL_REG4, _C9DOF_CTRL_REG4_CONFIG );
    Delay_10ms();
    c9dof_writeData( _C9DOF_CTRL_REG1_G, _C9DOF_CTRL_REG1_G_CONFIG );
    Delay_10ms();
    c9dof_writeData( _C9DOF_CTRL_REG5_XL, _C9DOF_CTRL_REG5_XL_CONFIG );
    Delay_10ms();
    c9dof_writeData( _C9DOF_CTRL_REG6_XL, _C9DOF_CTRL_REG6_XL_CONFIG );
    Delay_10ms();
    c9dof_writeData( _C9DOF_CTRL_REG8, _C9DOF_CTRL_REG8_CONFIG );
    Delay_10ms();
    //MAGNETOMETAR
    c9dof_writeDataMag( _C9DOF_CTRL_REG1_M, _C9DOF_CTRL_REG1_M_CONFIG );
    Delay_10ms();
    c9dof_writeDataMag( _C9DOF_CTRL_REG2_M, _C9DOF_CTRL_REG2_M_CONFIG );
    Delay_10ms();
    c9dof_writeDataMag( _C9DOF_CTRL_REG3_M, _C9DOF_CTRL_REG3_M_CONFIG );
    Delay_10ms();
    c9dof_writeDataMag( _C9DOF_CTRL_REG4_M, _C9DOF_CTRL_REG4_M_CONFIG );
    Delay_10ms();
    c9dof_writeDataMag( _C9DOF_CTRL_REG5_M, _C9DOF_CTRL_REG5_M_CONFIG );
    Delay_10ms();
   }

void applicationTask()
{

    c9dof_readMag(  &magX,  &magY, &magZ );
    Delay_10ms();

    mikrobus_logWrite( "magX=", _LOG_TEXT );
    IntToStr( magX, logText );
    mikrobus_logWrite( logText, _LOG_TEXT );


    mikrobus_logWrite( "     magY=", _LOG_TEXT );
    IntToStr( magY, logText );
    mikrobus_logWrite( logText, _LOG_TEXT );
  
    Angle 
= (atan2(magY, magX) * 180) / Pi;
    if (Angle < 0)  Angle += 360 ;


    mikrobus_logWrite( "     Angle= ", _LOG_TEXT );
    FloatToStr_FixLen( Angle, logText,);
    mikrobus_logWrite( logText, _LOG_TEXT );
    mikrobus_logWrite( "   ", _LOG_LINE );



    Delay_1sec();
}

void main()
{
    systemInit();
    applicationInit();
    UART1_Init(9600);

    while (1)
    {
            applicationTask();
    }
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Boussole Numérique !
PieM
Membre
Membre
Messages : 21
Enregistré en : juin 2016

#15 Message par PieM » ven. 23 nov. 2018 12:15

suite...
je viens de regarder les valeurs que tu as en X.Y, et angle (photos)
si on suppose qu'on fait les calculs à partir de l'axe Y du module
1 670 2043 18.15 ça c'est OK, le calcul de l'angle est correct.
2 -176 -186 238.9 pas possible! les valeurs de X et Y ne peuvent pas passer toutes les 2 en négatif sur 1/4 tour !
3 1986 -1168 120.2 oui c'est OK au niveau calcul de l'angle, sauf qu'on devrait avoir les mêmes valeurs X et Y que 1 en négatif !
4 2878 1055 69.86 l'angle est de 20° par rapport à X donc 70° par rapport à Y

en résumé, les valeurs lues dans les registres sont incohérentes.

Contrôle à faire:

tu fais tourner lentement ton capteur et tu notes la valeur maxi et la valeur mini lues sur X
même chose pour Y. ça permet de voir le décalage d'offset hard et de voir le gain entre x et y.

Boussole Numérique !
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#16 Message par Jérémy » ven. 23 nov. 2018 12:42

J'ai donc fais tourner tout doucement le capteur :

Valeur Maximum obtenue pour X = 3201 et valeur minimum = -510
Pour Y max = 2026 et Ymin = -1535

J'ai réussis à faire un enregistrement d'un tour complet dans le sens inverse des aiguilles d'une montre ;.

Code : Tout sélectionner

magX=   890     magY=  1949     Angle24.543   
magX
=   845     magY=  2010     Angle22.801   
magX
=   861     magY=  1975     Angle23.554   
magX
=   877     magY=  1981     Angle23.879   
magX
=   834     magY=  1981     Angle22.831   
magX
=   861     magY=  2024     Angle23.044   
magX
=   978     magY=  2018     Angle25.856   
magX
=  1131     magY=  2033     Angle29.088   
magX
=  1280     magY=  2074     Angle31.681   
magX
=  1432     magY=  2006     Angle35.521   
magX
=  1572     magY=  2032     Angle37.726   
magX
=  1610     magY=  2019     Angle38.569   
magX
=  1768     magY=  2004     Angle41.419   
magX
=  1847     magY=  1971     Angle43.139   
magX
=  1939     magY=  1919     Angle45.297   
magX
=  1990     magY=  1922     Angle45.995   
magX
=  2097     magY=  1857     Angle48.473   
magX
=  2264     magY=  1777     Angle51.871   
magX
=  2435     magY=  1655     Angle55.797   
magX
=  2514     magY=  1606     Angle57.428   
magX
=  2558     magY=  1559     Angle58.639   
magX
=  2682     magY=  1459     Angle61.453   
magX
=  2698     magY=  1413     Angle62.357   
magX
=  2742     magY=  1317     Angle64.344   
magX
=  2790     magY=  1298     Angle65.050   
magX
=  2941     magY=  1205     Angle67.719   
magX
=  2990     magY=  1006     Angle71.404   
magX
=  3050     magY=   867     Angle74.131   
magX
=  3055     magY=   789     Angle75.518   
magX
=  3070     magY=   653     Angle77.991   
magX
=  3144     magY=   440     Angle82.033   
magX
=  3160     magY=   303     Angle84.522   
magX
=  3168     magY=   116     Angle87.902   
magX
=  3111     magY=    71     Angle88.692   
magX
=  3079     magY=  -113     Angle92.101   
magX
=  3075     magY=  -210     Angle93.906   
magX
=  2987     magY=  -382     Angle97.287   
magX
=  2964     magY=  -435     Angle98.349   
magX
=  2921     magY=  -604     Angle101.68   
magX
=  2852     magY=  -708     Angle103.94   
magX
=  2707     magY=  -859     Angle107.60   
magX
=  2629     magY=  -971     Angle110.27   
magX
=  2579     magY= -1008     Angle111.34   
magX
=  2515     magY= -1062     Angle112.89   
magX
=  2422     magY= -1129     Angle114.99   
magX
=  2358     magY= -1166     Angle116.31   
magX
=  2244     magY= -1192     Angle117.97   
magX
=  2052     magY= -1331     Angle122.96   
magX
=  1849     magY= -1363     Angle126.39   
magX
=  1705     magY= -1411     Angle129.60   
magX
=  1515     magY= -1373     Angle132.18   
magX
=  1465     magY= -1372     Angle133.12   
magX
=  1315     magY= -1381     Angle136.40   
magX
=  1075     magY= -1342     Angle141.30   
magX
=   973     magY= -1303     Angle143.24   
magX
=   797     magY= -1261     Angle147.70   
magX
=   683     magY= -1179     Angle149.91   
magX
=   559     magY= -1126     Angle153.59   
magX
=   458     magY= -1039     Angle156.21   
magX
=   394     magY=  -994     Angle158.37   
magX
=   266     magY=  -885     Angle163.27   
magX
=   250     magY=  -826     Angle163.16   
magX
=   242     magY=  -788     Angle162.92   
magX
=   137     magY=  -730     Angle169.37   
magX
=    30     magY=  -590     Angle177.08   
magX
=   -70     magY=  -476     Angle188.36   
magX
=  -169     magY=  -252     Angle213.84   
magX
=  -209     magY=    -3     Angle269.17   
magX
=  -245     magY=    98     Angle291.80   
magX
=  -272     magY=   241     Angle311.54   
magX
=  -281     magY=   416     Angle325.96   
magX
=  -265     magY=   598     Angle336.09   
magX
=  -221     magY=   749     Angle343.56   
magX
=  -215     magY=   947     Angle347.20   
magX
=  -104     magY=  1082     Angle354.50   
magX
=   -83     magY=  1257     Angle356.22   
magX
=    39     magY=  1367     Angle1.634   
magX
=   120     magY=  1514     Angle4.531   
magX
=   229     magY=  1667     Angle7.821   
magX
=   405     magY=  1798     Angle12.694   
magX
=   528     magY=  1903     Angle15.507   
magX
=   706     magY=  1967     Angle19.744   
magX
=   830     magY=  2003     Angle22.508   
magX
=   888     magY=  2034     Angle23.585   
magX
=   829     magY=  1983     Angle22.687   
magX
=   902     magY=  1960     Angle24.712   
magX
=   900     magY=  1972     Angle24.531   
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Boussole Numérique !
PieM
Membre
Membre
Messages : 21
Enregistré en : juin 2016

#17 Message par PieM » ven. 23 nov. 2018 14:09

Effectivement sacrée galère avec ce capteur ! Tu n'es pas en train de passer une IRM avec ton truc ?!

il y a un énorme pb d'offset sur X et sur Y.
sur X, valeur maxi : 3201 mini -510
sur Y valeur maxi : 2026 mini - 1535

Amplitude X : 3201+ 510 = 3711. valeur moyenne 1855 offset à corriger : - 1345
Amplitude Y : 2026 + 1535 = 3561. valeur moyenne 1780 offset à corriger : - 246

Correction du gain sur X : 3561/3711 = 1.04
Inutile de rentrer ces valeurs dans les registres du capteur. Tu modifies ton programme avant tes calculs d'atan avec :

magX = magX - 1345
magY = (magY - 246)* 1.042

Boussole Numérique !
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#18 Message par Jérémy » ven. 23 nov. 2018 14:51

Effectivement sacrée galère avec ce capteur ! Tu n'es pas en train de passer une IRM avec ton truc ?!


Non l'IRM je l'ai passé mercredi lol . ( pour ma cheville ). :sifflotte:

C'est incroyable j'ai l'impression que ca fonctionne parfaitement avec ta correction!

Code : Tout sélectionner

    c9dof_readMag(  &magX,  &magY, &magZ );
    Delay_10ms();

    mikrobus_logWrite( "magX=", _LOG_TEXT );
    IntToStr( magX, logText );
    mikrobus_logWrite( logText, _LOG_TEXT );


    mikrobus_logWrite( "     magY=", _LOG_TEXT );
    IntToStr( magY, logText );
    mikrobus_logWrite( logText, _LOG_TEXT );
  
    magX 
= magX - 1345;
    magY = (magY - 246)* 1.042;
  
    Angle 
= (atan2(magY, magX) * 180) / Pi;
    if (Angle < 0)  Angle += 360 ;


    mikrobus_logWrite( "     Angle= ", _LOG_TEXT );
    FloatToStr_FixLen( Angle, logText,);
    mikrobus_logWrite( logText, _LOG_TEXT );
    mikrobus_logWrite( "   ", _LOG_LINE );

    Delay_ms(200);


Voici un tour complet .

Code : Tout sélectionner

magX=   727     magY=  2021     Angle= 341.51   
magX
=   766     magY=  2030     Angle= 342.69   
magX
=   722     magY=  1939     Angle= 340.54   
magX
=   709     magY=  1970     Angle= 340.49   
magX
=   732     magY=  1990     Angle= 341.35   
magX
=   743     magY=  2017     Angle= 341.92   
magX
=   727     magY=  1968     Angle= 340.99   
magX
=   874     magY=  2044     Angle= 345.88   
magX
=   995     magY=  2066     Angle= 349.54   
magX
=  1094     magY=  2095     Angle= 352.57   
magX
=  1266     magY=  2109     Angle= 357.66   
magX
=  1378     magY=  2046     Angle= 1.008   
magX
=  1289     magY=  2067     Angle= 358.30   
magX
=  1590     magY=  2008     Angle= 7.600   
magX
=  1547     magY=  1983     Angle= 6.371   
magX
=  1923     magY=  1896     Angle= 18.584   
magX
=  2040     magY=  1931     Angle= 21.604   
magX
=  2196     magY=  1856     Angle= 26.905   
magX
=  2533     magY=  1758     Angle= 37.026   
magX
=  2417     magY=  1665     Angle= 35.953   
magX
=  2559     magY=  1534     Angle= 42.133   
magX
=  2653     magY=  1436     Angle= 46.551   
magX
=  2762     magY=  1210     Angle= 54.680   
magX
=  2836     magY=  1149     Angle= 57.770   
magX
=  2926     magY=  1053     Angle= 62.017   
magX
=  3018     magY=   935     Angle= 66.801   
magX
=  2997     magY=   801     Angle= 70.716   
magX
=  3053     magY=   647     Angle= 76.279   
magX
=  3086     magY=   463     Angle= 82.603   
magX
=  3144     magY=   185     Angle= 92.005   
magX
=  3096     magY=    24     Angle= 97.515   
magX
=  3079     magY=   -69     Angle= 100.71   
magX
=  3071     magY=  -292     Angle= 107.97   
magX
=  2969     magY=  -514     Angle= 115.96   
magX
=  2857     magY=  -685     Angle= 122.68   
magX
=  2650     magY=  -861     Angle= 131.46   
magX
=  2493     magY=  -998     Angle= 138.46   
magX
=  2428     magY= -1107     Angle= 142.45   
magX
=  2529     magY= -1129     Angle= 140.41   
magX
=  2169     magY= -1249     Angle= 152.11   
magX
=  1876     magY= -1302     Angle= 161.77   
magX
=  1654     magY= -1388     Angle= 169.70   
magX
=  1463     magY= -1334     Angle= 175.89   
magX
=   930     magY= -1284     Angle= 194.59   
magX
=   687     magY= -1161     Angle= 204.17   
magX
=   689     magY= -1143     Angle= 204.38   
magX
=   714     magY= -1080     Angle= 204.55   
magX
=   354     magY=  -932     Angle= 218.92   
magX
=   286     magY=  -906     Angle= 221.42   
magX
=    86     magY=  -663     Angle= 233.05   
magX
=   -79     magY=  -544     Angle= 239.97   
magX
=   -95     magY=  -377     Angle= 245.73   
magX
=  -214     magY=  -204     Angle= 253.29   
magX
=  -183     magY=  -154     Angle= 254.77   
magX
=  -314     magY=   237     Angle= 269.68   
magX
=  -310     magY=   383     Angle= 274.90   
magX
=  -339     magY=   577     Angle= 281.54   
magX
=  -309     magY=   810     Angle= 289.53   
magX
=  -482     magY=   981     Angle= 292.71   
magX
=  -141     magY=  1194     Angle= 303.59   
magX
=   -63     magY=  1388     Angle= 310.17   
magX
=   107     magY=  1544     Angle= 317.52   
magX
=     7     magY=  1639     Angle= 317.32   
magX
=   383     magY=  1785     Angle= 329.03   
magX
=   258     magY=  1884     Angle= 327.49   
magX
=   632     magY=  1918     Angle= 337.74   
magX
=   699     magY=  1934     Angle= 339.82   
magX
=   773     magY=  2003     Angle= 342.64   
magX
=   860     magY=  1997     Angle= 345.10   
magX
=   864     magY=  2034     Angle= 345.52   
magX
=   859     magY=  1991     Angle= 345.03   
magX
=   883     magY=  2005     Angle= 345.84   
magX
=   852     magY=  1979     Angle= 344.72   


Et ce qui est rassurant c'est que les valeurs correspondent !

A savoir le module bien en haut j'ai environ 340°
1/4 de tour a gauche , j'obtiens 70° (340°+ 90° = 70°)
un demi tour j'ai environ 160° (340° - 180° = 160°)
et 1/4 de tour à droite j'ai 255° (340° - 90°= 250°)

Mais alors comment expliqué cette correction ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Boussole Numérique !
PieM
Membre
Membre
Messages : 21
Enregistré en : juin 2016

#19 Message par PieM » ven. 23 nov. 2018 16:03

Mais alors comment expliqué cette correction ?


La correction s'explique par le fait que l'on compense par un décalage du zéro car le capteur a visiblement un problème! Je n'ai jamais vu une telle correction d'offset !
l'erreur de 4% sur le gain, elle, n'était pas trop critique.
Si tu veux t'affranchir de la compensation d'offset du soft, tu peux rentrer ces valeurs dans les registres du capteur:
la correction X dans 05h (lsb) et 06h (msb) avec un codage en complément à 2 !
idem sur Y dans 07h et 08h
il n'y a pas de registre de compensation de gain apparemment. Donc il faut le faire en soft.

Pour le GPS avec boussole de Paul, à priori ton programme devrait être le même, sans offset à priori.
La puce est un HMC5883L avec Xmsb en 03h, Xlsb en 04h Ymsb en 07h et Ylsb en 08h

Attention toutefois que l'idéal est de faire ces compensations d'offset quand le module est dans son environnement définitif.

Mais ce n'est pas ça encore, car après avoir appliqué l'offset sur X en particulier, tu derais avoir beaucoup plus de valeurs négatives...

Boussole Numérique !
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#20 Message par Jérémy » ven. 23 nov. 2018 22:49

PieM a écrit :Source du message Mais ce n'est pas ça encore, car après avoir appliqué l'offset sur X en particulier, tu derais avoir beaucoup plus de valeurs négatives...


Aprés ta remarque j'ai verifié mon programme ! en fait les valeurs affichées sont celles avant le rajout de l'OFFSET . Voici les valeurs apres OFFSET.

Code : Tout sélectionner

magX=  -510     magY=  1821     magZ= -3104     Angle344.35   
magX
=  -515     magY=  1829     magZ= -3138     Angle344.27   
magX
=  -497     magY=  1818     magZ= -3115     Angle344.71   
magX
=  -509     magY=  1825     magZ= -3103     Angle344.41   
magX
=  -499     magY=  1833     magZ= -3096     Angle344.77   
magX
=  -596     magY=  1836     magZ= -3104     Angle342.01   
magX
=  -541     magY=  1844     magZ= -3077     Angle343.64   
magX
=  -440     magY=  1909     magZ= -3177     Angle347.02   
magX
=  -255     magY=  1942     magZ= -3120     Angle352.51   
magX
=   -90     magY=  1946     magZ= -3149     Angle357.35   
magX
=    29     magY=  1920     magZ= -3178     Angle8.6533   
magX
=    74     magY=  1940     magZ= -3181     Angle2.184   
magX
=   136     magY=  1909     magZ= -3161     Angle4.074   
magX
=   284     magY=  1928     magZ= -3148     Angle8.379   
magX
=   405     magY=  1861     magZ= -3115     Angle12.277   
magX
=   584     magY=  1854     magZ= -3088     Angle17.484   
magX
=   699     magY=  1780     magZ= -3137     Angle21.439   
magX
=   844     magY=  1672     magZ= -3126     Angle26.783   
magX
=   969     magY=  1616     magZ= -3327     Angle30.948   
magX
=  1101     magY=  1539     magZ= -2848     Angle35.579   
magX
=  1295     magY=  1390     magZ= -3087     Angle42.973   
magX
=  1445     magY=  1292     magZ= -3294     Angle48.199   
magX
=  1532     magY=  1121     magZ= -2852     Angle53.806   
magX
=  1616     magY=   914     magZ= -3279     Angle60.507   
magX
=  1703     magY=   803     magZ= -3007     Angle64.755   
magX
=  1727     magY=   643     magZ= -3035     Angle69.578   
magX
=  1841     magY=   415     magZ= -3015     Angle77.296   
magX
=  1863     magY=   281     magZ= -3032     Angle81.422   
magX
=  1827     magY=    67     magZ= -3012     Angle87.899   
magX
=  1834     magY=  -105     magZ= -3071     Angle93.276   
magX
=  1827     magY=  -306     magZ= -2821     Angle99.508   
magX
=  1817     magY=  -433     magZ= -3311     Angle103.40   
magX
=  1742     magY=  -576     magZ= -2838     Angle108.29   
magX
=  1639     magY=  -814     magZ= -3306     Angle116.41   
magX
=  1537     magY=  -963     magZ= -3010     Angle122.06   
magX
=  1456     magY= -1104     magZ= -3020     Angle127.17   
magX
=  1371     magY= -1218     magZ= -2836     Angle131.61   
magX
=  1248     magY= -1346     magZ= -3307     Angle137.16   
magX
=  1133     magY= -1424     magZ= -3020     Angle141.49   
magX
=  1066     magY= -1486     magZ= -3058     Angle144.34   
magX
=   950     magY= -1560     magZ= -3061     Angle148.65   
magX
=   817     magY= -1607     magZ= -2818     Angle153.05   
magX
=   666     magY= -1652     magZ= -3117     Angle158.04   
magX
=   501     magY= -1666     magZ= -3322     Angle163.26   
magX
=   289     magY= -1691     magZ= -3060     Angle170.30   
magX
=   156     magY= -1684     magZ= -3047     Angle174.70   
magX
=   -42     magY= -1683     magZ= -3027     Angle181.42   
magX
=  -262     magY= -1631     magZ= -3038     Angle189.12   
magX
=  -433     magY= -1583     magZ= -3068     Angle195.29   
magX
=  -638     magY= -1457     magZ= -2834     Angle203.64   
magX
=  -789     magY= -1367     magZ= -3313     Angle209.99   
magX
=  -903     magY= -1298     magZ= -2847     Angle214.82   
magX
= -1087     magY= -1098     magZ= -3082     Angle224.71   
magX
= -1264     magY=  -922     magZ= -3122     Angle233.89   
magX
= -1368     magY=  -692     magZ= -3092     Angle243.16   
magX
= -1463     magY=  -473     magZ= -3309     Angle252.08   
magX
= -1513     magY=  -265     magZ= -2847     Angle260.06   
magX
= -1384     magY=    25     magZ= -3197     Angle271.03   
magX
= -1616     magY=   226     magZ= -3150     Angle277.96   
magX
= -1591     magY=   519     magZ= -3168     Angle288.06   
magX
= -1488     magY=   798     magZ= -3127     Angle298.20   
magX
= -1442     magY=  1030     magZ= -3184     Angle305.53   
magX
= -1282     magY=  1259     magZ= -3171     Angle314.48   
magX
= -1077     magY=  1525     magZ= -3185     Angle324.76   
magX
=  -878     magY=  1630     magZ= -3120     Angle331.69   
magX
=  -787     magY=  1702     magZ= -3180     Angle335.18   
magX
=  -654     magY=  1822     magZ= -3184     Angle340.25   
magX
=  -519     magY=  1837     magZ= -3092     Angle344.22   
magX
=  -505     magY=  1845     magZ= -3175     Angle344.69   
magX
=  -480     magY=  1871     magZ= -3124     Angle345.61   
magX
=  -453     magY=  1878     magZ= -3106     Angle346.43   
magX
=  -476     magY=  1634     magZ= -3317     Angle343.75   
magX
=  -486     magY=  1849     magZ= -2828     Angle345.27   


Attention toutefois que l'idéal est de faire ces compensations d'offset quand le module est dans son environnement définitif.

Ok je prends note car effectivement la finalité c'est de le mettre sur le robot dans un environnement bien différent !

Du coup j'ai rajouter l'angle Z . L'angle Z définit une inclinaison ? Mais une seule ? Puis je utiliser cette valeur pour signaler que le robot est trop incliné pour donner un cap par exemple ? Cette inclinaison n'est valable apparemment que de l'avant a l’arrière.

Je voulais testé de modifier le registre de l'offset du X comme tu me l'a précisé, mais dans la DS ( lien) page 38 l'adresse 0x05 correspond a ACT_DUR et à la page 40 en voit bien OFFSET_X_REG_L_M ??? bizarre !!

Croyez vous qu'il soit possible de calculer la vitesse du robot qui roule avec l’accéléromètre ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 55 invités