Création d'un head tracker

dje8269

Senior Member
Yes !!!

Bravo a vous !! il tousse trés bien . lol .

Code:
#PICAXE 20X2

setfreq m8

hi2csetup i2cmaster ,%00110000, i2cslow_8, i2cbyte

'################################################################"

hi2cout 0x20,(%00100111)
do

hi2cin 0x28,(b0)
hi2cin 0x29,(b1)
hi2cin 0x2A,(b2)
hi2cin 0x2B,(b3)
hi2cin 0x2C,(b4)
hi2cin 0x2D,(b5)

debug

pause 500

loop
Je me retrouve avec plein de valeur qui bouge en permanence ; la plaque d'essai est sur mon canapé en même temps lol . mais j'ai repere un chiffre a peu pret fixe et qui bouge quand j'incile la plaquette .
Maintenant je vais essayer de les reperés
 

BESQUEUT

Senior Member
Avec un peu de chance, w0, w1 et w2 fournissent les valeurs X, Y et Z
Je suggère d'utiliser sertxd et le Terminal plutôt que DEBUG,
ce qui permet d'enregistrer facilement les données dans un fichier texte.
Merci de penser à faire un CLEAR avant chaque essai...
 

dje8269

Senior Member
Bon j'avoue ne pas trop comprendre !! .

certaine valeurs bouge en permanence avec de grand ecart ; d'autre varie tres peu . j'ai donc isolé les valeurs bougeant peu . j'ai trouve un axe , quand on se penche a droite/gauche (xomme si on voulait faire toucher nos oreilles a nos epaules) et quand on penche de haut en bas ( quand on veut toucher son menton sur sa poitrine ou qu'on regrde en l'air)
 

BESQUEUT

Senior Member
voir #42
Normalement, b0,b2 et b4 bougent doucement.
Si ce n'est pas le cas, il faut permuter lors de la lecture b0 avec b1, b2 avec b3 et b4 avec b5

Il faut maintenant regrouper les 2 valeurs de X sur 8 bits pour en faire un nombre sur 16 bits
idem en Y et Z

C'est tout con : il suffit de lire w0, w1 et w2 en debug ou d'envoyer à la place :
sertxd (w0," ",w1," ",w2,10,13)

C'est normal que ça bouge très vite car il est réglé à 2g, c'est à dire au plus sensible.
En même temps, ça correspond tout à fait à votre besoin, donc il n'y a pas de raison de changer pour le moment.
 

dje8269

Senior Member
Je comprends pas tout ou vous voulez m'emmener . mais je vous suis ;

donc ce sont b1 , b3 et b5 qui bougent doucement ;

J'ai donc permuter ainsi ; si j'ai bien compris :

Code:
#PICAXE 20X2

setfreq m8

hi2csetup i2cmaster ,%00110000, i2cslow_8, i2cbyte

'################################################################"

hi2cout 0x20,(%00100111)
do

hi2cin 0x28,(b1)
hi2cin 0x29,(b0)
hi2cin 0x2A,(b3)
hi2cin 0x2B,(b2)
hi2cin 0x2C,(b5)
hi2cin 0x2D,(b4)
debug
'sertxd ("b0=",#b0," ","b1=",#b1," ","b2=",#b2," ","b3=",#b3," ","b4=",#b4," ","b5=",#b5,13,10)

pause 100


loop
Avec ce code , c'est bien b0, b2 et b4 qui bougent doucement .

Par contre au final w0, w1 et w2 bougent enormement aussi !. vous voulez un fichier texte ?
 

BESQUEUT

Senior Member
Avec ce code , c'est bien b0, b2 et b4 qui bougent doucement .
Par contre au final w0, w1 et w2 bougent enormement aussi !. vous voulez un fichier texte ?
Voir #42 : on est peut-être dans le cas "pas de chance" table 28 page 26 : Big/little endian data selection.
mais je n'y crois pas trop.
Ou alors c'est l'histoire du complément à 2. paragraphes 9.1.9 9.1.10 et 9.1.11
En plus, il donne des valeurs à +-2g avec 1mg par unité, ce qui correspond effectivement à un nombre sur 12 bits entre -2048 et +2048 mg
Mais le Picaxe ne connait pas les nombres négatifs...
bo+b1 correspond à un nombre sur 16 bits
Avec le cul bordé de nouilles, les 12 bits utiles sont au bon endroit et w0 fait l'affaire.
Sinon.. il faut jongler avec les bits pour les mettre au bon endroit...


Je suggère un truc tout simple pour y voir plus clair.
Poser le bidule bien a plat, sur une table horizontale.
Au besoin coincez le avec un bouquin pour qu'il ne bouge pas.
Donnez les 6 valeurs lues.
On devrait obtenir quasiment zéro (ou 2048) pour X et Y
Et quasiment 1024 ou 3072 pour Z...

Ah au fait : maintenant qu'il "tousse" bien, faudra penser à le mettre en mode fast à l'occasion.
 
Last edited:

dje8269

Senior Member
Ok,

je vous propose de continuer demain , car la journée fut rude .

En tout cas , ca avance bien cette histoire . et puis e nregardant bien , je n'ai besoin que de deux valeurs . les mouvement de droite a gauche et de haut en bas .

je ferais tout les tests demain matin ;

Merci pour le coup de main . si on arrive a le faire focntionner ca risque d'etre asse zchouette comme résultat !
 

BESQUEUT

Senior Member
Merci pour le coup de main . si on arrive a le faire focntionner ca risque d'etre asse zchouette comme résultat !
Maintenant qu'on arrive à le lire, y a pas de raison, ça doit être faisable.
Mais je ne pourrai revenir vers vous avant la semaine prochaine : gros projet à boucler au taf + WE bien chargé + réunions toute la journée Lundi
et des centaines de km entre pour agrémenter...
Tant que vous ne trouvez pas les valeurs indiquées pour X,Y et Z, inutile d'aller plus loin.

Relisez #10,
Et tenez compte du fait que 1g=1024 mais qu'il faudra décaler l'échelle de 2048
pour que +/-2048 se transforme en zéro==> 4096

Une fois qu'on a les valeurs X, Y et Z exprimées en g on peut en déduire les angles via la trigo.

Pour la trigo, il y a les opérateurs SIN, COS et ATAN mais seulement sur X2
Sinon je connais quelques techniques très approchées qui peuvent faire l'affaire puisqu'on n'a pas besoin d'une précision terrible.
Faudra quand même dire quel est le Picaxe cible.
 

dje8269

Senior Member
En fait je pense pas avoir besoin de trigo. Car je n'ai pas besoin d'un angle , mais juste d'une valeur. C'est bien connu je suis le roi de la mise à l échelle.
Il me faut juste quelques chiffres pour bouger les servos.

Je pense que ce sera le 28X2 , car faudras faire des calculs et je veut pas ralentir ma com trans
 

BESQUEUT

Senior Member
Ben... le servo, c'est un angle dont il a besoin...
La fonction SIN est très loin d'être linéaire : donc aucune mise à l'échelle ne va marcher : désolé...
Et si on a un X2, un coup d'ATAN et c'est bon...
Enfin, on verra ça plus tard. Bonne nuit.
 

dje8269

Senior Member
Bonjour,

Bon je n'arrive pas a trouver les valeurs de la "boussole" . c'est a dire quand je le tourne a plat . ( si vous voulez regarde derriere vous par exemple) . la direction de hochement de tête, je pense que c'est bon ? il s'agit de l'adresse 0x29
 

dje8269

Senior Member
Alors j'ai quelques questions de compréhension :

J'en avait marre de changer manuellement les valeurs , pour chercher les valeurs de la boussole ;
J'ai donc fais ce petit programme . il change l'adresse de 0 a 1000 . et m'affiche la valeur pour chaque adresse . ainsi je vois ce qui se passe ou il n'y as pas de zéro .

Code:
#PICAXE 20X2

setfreq m8

hi2csetup i2cmaster ,%00110000, i2cslow_8, i2cbyte

'################################################################"

hi2cout 0x20,(%00100111)
do
	
for w0 = 0 to 1000
inc b12	
hi2cin w0,(b2)
sertxd ("adresse=",#w0," ","valeur=",#b2,13,10)
next

sertxd ("#############################",13,10)

pause 100


loop
On voit plutôt clairement que dans les premières adresses (de 0 a 32) se sont les réglages des registres ( je crois que l'on dit comme ca) car les valeurs sont fixes à chaque boucle .
ensuite dans les adresses suivantes ( de 39 a 45) les valeurs correspondent au positionnement du module elle bougent quand je le bouge . certaine vite d'autres doucement .

Pour vous simplifier le travail , j'ai enlever toute les adresses ou il y a des zéros comme valeurs . les espaces indiquent que j'ai supprimer .

questions : combien y ' a -t-il d'adresse de registre ? car tout les 128 ca reboucle ? par exemple si on prend la première adresse des trois premiers blocs. on a 15 , puis 143 puis 271 un ecart de 128 chacun.

En tout cas , ca m'indique toujours pas coment trouver les valeurs de la boussole .

voici mon txt :

View attachment Valeur.txt

D'apres ce que je comprends les valeurs de sorties du magnetometre devrait se trouver dans les registres de 0x03 a 0x06 , mais il n'y as rien .
 
Last edited:

BESQUEUT

Senior Member
La boussole est à une autre adresse sur le bus I2C
Il faut changer l'initialisation...

Mais faites marcher l'accéléro avant de penser à ça...
 

dje8269

Senior Member
Question mathématique ? pour 100 points !

Comment calculée un écart dans une boucle ? est ce possible ; explication .

La valeur du module quand il est a plat est de 250 .
Quand je baisse la tête cette valeur diminue .
Quand je monte la tête cette valeur augmente , mais au delà de 255 elle repasse a 0 ! .

Comment puis je avoir une valeur qui oscille avec un point milieu à 150 , pour directement envoyé ca au servo ?

je veut dire dune meilleur simple .

sinon je ferais un calcul savant genre :

Code:
if x < 150 then
x = x+155
else x = x -100
end if
 

BESQUEUT

Senior Member
Quand je monte la tête cette valeur augmente , mais au delà de 255 elle repasse a 0 ! .
Comment puis je avoir une valeur qui oscille avec un point milieu à 150 , pour directement envoyé ca au servo ?
Nan : relire #46
Ce que vous dites est impossible : X, Y et Z varient de -2048 à + 2048
On peut ajouter 2048 pour rentrer dans un word Picaxe, soit de 0 à 4096
Mais tant que vous n'aurez pas lu les 12 bits ad hoc, ça ne marchera pas.
Accessoirement, cette variation n'est pas linéaire : seule la trigo (ou une approximation) permet de piloter un servo.
Je peux très éventuellement aider, mais il me faut les 6 valeurs pour des positions de référence connues (et simples...)
 

dje8269

Senior Member
Je n'arrive a rien .tout l'apres midi a cherché sur LA dS avec mon anglais moisi . énormément de test pour rien .

Même a plat les valeurs bougent dans tous les sens . mon petit programme au dessus fonctionnait un peu quand même ; Mais des bugsd se glissait dans l'histoire pas tres fiable ;

A force de faire des test , je m'y perds ; Je crois que l'a encore j'ia visé un peu trop haut pour mon niveau . De plus j'ai pas reussis a trouvé le module dont PieM parlais .

Je peux très éventuellement aider, mais il me faut les 6 valeurs pour des positions de référence connues (et simples...)
Mais j'ai pas de position fixe a vous donner, vu quelle bougent en permanence .
 

BESQUEUT

Senior Member
Mais j'ai pas de position fixe a vous donner, vu quelle bougent en permanence .
Zen....
Pour vous détendre, allez donc faire un tour
mais ne prenez pas ces préceptes au premier degré...

C'est le module qui doit rester fixe. Les valeurs bougent avec le bruit. C'est quasi normal.
D'ailleurs il y a des tas de réglages pour améliorer les choses.
De plus, vous avez trouvé une valeur qui augmente jusqu'à 255 : ça c'est un bon point de repère.

Faites en sorte d'enregistrer les 6 valeurs dans un fichier texte à intervalle régulier (pas avec DEBUG comme déjà dit) mais avec sertxd.
1) Complètement fixe, une vingtaine d'enregistrements
2) idem en relevant jusqu'à ce que ça passe 255 pour la variable que vous avez détecté.
3) idem en descendant et que ça passe par zéro

et en attendant que je regarde ça (désolé, je suis overbooké pendant quelques jours)
vous pouvez jetez un &#339;il sur le magnétomètre. Mais comme déjà dit, il faut changer d'adresse sur le bus I2C.
 
Last edited:

dje8269

Senior Member
Mais comme déjà dit, il faut changer d'adresse sur le bus I2C
Pff , j'ai essayé aussi, histoire de changer. Rien n'y a fait. Je comprends pas car il parle de l'adresse en 0X00. Avec une incremente auto en arrivant à 12.
Je fais les tests demain

Merci à vous en tout cas

Les valeurs réunies sur un word vont jusqu'à 65000. Il faudrait peut être les transformer en 12 bit plutôt qu'en 16 bits
 

BESQUEUT

Senior Member
Pff , j'ai essayé aussi, histoire de changer. Rien n'y a fait. Je comprends pas car il parle de l'adresse en 0X00. Avec une incremente auto en arrivant à 12.
Voir table 14 page 19
Les valeurs réunies sur un word vont jusqu'à 65000. Il faudrait peut être les transformer en 12 bit plutôt qu'en 16 bits
Ben oui : il faut extraire des 16 bits les 12 qui servent vraiment

Essayez :
Code:
if w0>32767 then
     b0=0
    sertxd("-",#w0)
else
    sertxd("+",#w0)
endif
ou bien, ce qui revient au même mais marche aussi pour w1 et w2 :
Code:
if w1>32767 then
     w1=w1-32768
    sertxd("-",#w1)
else
    sertxd("+",#w1)
endif
 
Last edited:

dje8269

Senior Member
bon alors , je sais plus ou j'en suis .

Donc je propose de se focaliser sur une seule valeur le haut et le bas , qui sont , je l'espère proprement définies ; ( tout dépend comment on tiens le module en fait) .

Voici les données brutes de décoffrage .

le programme :

Code:
#PICAXE 20X2

setfreq m8

hi2csetup i2cmaster ,%00110000, i2cfast_8, i2cbyte

'################################################################"

hi2cout 0x20,(%00100111) ' Activation de l'accelero  page23 table 18

do
inc b20	


hi2cin 0x2A,(b2)
hi2cin 0x2B,(b3)

sertxd("b2=",#b2," ","b3=",#b3,13,10)


pause 100

loop while b20 < 20
end
View attachment Valeur.txt



avec votre programme :

Code:
#PICAXE 20X2

setfreq m8

hi2csetup i2cmaster ,%00110000, i2cfast_8, i2cbyte

'################################################################"

hi2cout 0x20,(%00100111) ' Activation de l'accelero  page23 table 18

do
inc b20	


hi2cin 0x2A,(b2)
hi2cin 0x2B,(b3)

if w1>32767 then
    w1=w1-32768
   sertxd("-",#w1,13,10)
else
    sertxd("+",#w1,13,10)
endif

pause 100

loop while b20 < 20
end
View attachment Valeur2.txt

Désolé , j'aurais dus vous les donés pour hier , mais j'etais cloué au lit avec un bon gros début de grippe , aujourd'hui c'est pas top, mais bon, faut bien que j'essaie d'avancer .
 

BESQUEUT

Senior Member
Bon : b2 est toujours un multiple de 16
Donc les 4 bits de droite ne servent à rien.
B3 est l'octet de poids fort : il faut permuter avec b2.
Il faut impérativement le Z en plus du X ou du Y, donc a y être, je prends les trois.

Les essais statiques sont une bonne chose, mais il faudrait d'autres angles que 0 et +/- 90°

Par exemple 30, 45 et 60° vers le haut et vers le bas.

Code:
#PICAXE 20X2

setfreq m8

hi2csetup i2cmaster ,%00110000, i2cfast_8, i2cbyte

'################################################################"

hi2cout 0x20,(%00100111) ' Activation de l'accelero  page23 table 18

do
   inc b20	


   hi2cin 0x28,(b1)
   hi2cin 0x29,(b0)

   hi2cin 0x2A,(b3)
   hi2cin 0x2B,(b2)

   hi2cin 0x2C,(b5)
   hi2cin 0x2D,(b4)

    if w0>32767 then
        w0=w0-32768/16
       sertxd("-",#w0)
   else
        w0=w0/16
       sertxd("+",#w0)
  endif

    if w1>32767 then
        w1=w1-32768/16
       sertxd(" -",#w1)
   else
       w1=w1/16
       sertxd(" +",#w1)
  endif


    if w2>32767 then
        w2=w2-32768/16
       sertxd(" -",#w2,13,10)
   else
       w2=w2/16
       sertxd(" +",#w2,13,10)
  endif



loop while b20 < 20
end
 
Last edited:

dje8269

Senior Member
L'inconvénient dans les modifications de message , c'est que la modification n'est pas signalée . je viens seulement de voir la suite de ton message .

Voila le résultat des test . pour les angles rien de precis , car j'ai juste posé sur un livre, pour avoir les meme angles d'un cote comme de l'autre, a la louche .

View attachment Valeur3.txt
 

BESQUEUT

Senior Member
Arghl... !!! Je croyais avoir une piste, mais en fait je ne comprends rien du tout...
Ou alors il ya un gros tremblement de terre en ce moment chez vous !
Désolé de vous refaire faire ce test. On va s'en tenir aux valeurs lues et essayer de dénicher ces 12 bits...
J'ai aussi permuté l'ordre de lecture des registres, pour tenter de tenir compte d'un autre problème...
Code:
#PICAXE 20X2

setfreq m8

hi2csetup i2cmaster ,%00110000, i2cfast_8, i2cbyte

'################################################################"

hi2cout 0x20,(%00100111) ' Activation de l'accelero  page23 table 18

do
   inc b20	


   hi2cin 0x29,(b0)
   hi2cin 0x28,(b1)
 
   hi2cin 0x2B,(b2)
   hi2cin 0x2A,(b3)
 
   hi2cin 0x2D,(b4)
   hi2cin 0x2C,(b5)

 
  sertxd (b0," ",b1," ",b2," ",b3," ",b4," ",b5,13,10)


loop while b20 < 20
end
 

BESQUEUT

Senior Member
Bon déjà pour l'octet de poids fort je pense avoir compris :
Code:
#PICAXE 20X2

setfreq m8

hi2csetup i2cmaster ,%00110000, i2cfast_8, i2cbyte

'################################################################"

hi2cout 0x20,(%00100111) ' Activation de l'accelero  page23 table 18
pause 500

do
   inc b20	


   hi2cin 0x29,(b0)
   hi2cin 0x28,(b1)
 
   hi2cin 0x2B,(b2)
   hi2cin 0x2A,(b3)
 
   hi2cin 0x2D,(b4)
   hi2cin 0x2C,(b5)
   if b0>128 then
        b0=256-bo
       sertxd("-",#b0)
   else
       sertxd("+",#b0)
   endif

   if b1>128 then
        b2=256-b2
       sertxd(" -",#b2)
   else
       sertxd(" +",#b2)
   endif

   if b4>128 then
        b4=256-bo
       sertxd(" -",#b4,13,10)
   else
       sertxd(" +",#b4,13,10)
   endif



loop while b20 < 20
end
Pour les angles, je trouve respectivement :
-6° -30° -49° 18° et 35°

Y a de l'idée, mais ou bien vos angles sont très approximatifs, surtout vers le haut, ou bien il y a un gros bug.
 
Last edited:

BESQUEUT

Senior Member
Grillé par PieM. Merci
Son programme lit directement les 6 valeurs. Je ne comprends pas pourquoi vous n'y étiez pas parvenu ?
L'essentiel est que ça marche.
Sur la même base, on devrait lire la boussole sans trop de problèmes.
 

dje8269

Senior Member
Bonsoir,
Au vue des difficultés rencontrées pour comprendre et mettre en oeuvre ce module, je préférerais acheter un autre module plus adéquat à mon utilisation et objectif final.
Le actuel n'étant pas compensé je ne pourrais jamais y arriver
Pour ne pas refaire de bourde , j'aurais souhaité que vous m'indiquer un modèle qui remplirait les fonctions me permettant de réaliser ce head - tracker. Je n'ai pas réussis à remettre la main sur le post de PieM.

Par avance merci
 

dje8269

Senior Member
Bonsoir,
Au vue des difficultés rencontrées pour comprendre et mettre en oeuvre ce module, je préférerais acheter un autre module plus adéquat à mon utilisation et objectif final.
Le actuel n'étant pas compensé je ne pourrais jamais y arriver
Pour ne pas refaire de bourde , j'aurais souhaité que vous m'indiquer un modèle qui remplirait les fonctions me permettant de réaliser ce head - tracker. Je n'ai pas réussis à remettre la main sur le post de PieM.

Par avance merci
 

BESQUEUT

Senior Member
Il y a ça
mais c'est peut-être un peu luxueux ?

Et aussi 8656 ou magneto

Maintenant que PieM a donné la méthode pour lire les 3 valeurs X, Y et Z
J'aimerais bien avoir vos lectures de référence.

Et idem (X,Y et Z) pour le magnétomètre :
- un tour à plat
- un tour avec la tête penchée de 30° en avant
- et tant qu'on y est idem avec la tête levée de 30°.

Je ne pense pas que ce soit infaisable, mais ce sera approximatif.
 
Last edited:

dje8269

Senior Member
Merci Besqueut,

Malheuresement je n'ai pas de "compte ouvert" chez ces fournisseur . Je ne peut donc pas me les procurer , la même chose chez gotronic ou selectronic , farnell ou RS serait parfait .

Maintenant que PieM a donné la méthode pour lire les 3 valeurs X, Y et Z
J'aimerais bien avoir vos lectures de référence.
Bien évidemment , mais qu'entendez vous par lecture de référence ?

Pour rarison professionnel je dois m'absenter 2 voir trois jours , je ferais ca a mon retour sans aucun soucis , je pense que c'est la moindre des choses .Je ne fais pas partie de ce qui prenne les conseils et qui ne donnent pas de nouvelles .

Pour le magnétomètre , je n'ai pas réussis a le faire fonctionner et apparemment c'est encore plus ardu que l'accelero , comme déjà , j'ai pas compris grand chose , je doute pouvoir y arriver seul .

La précision n'a vraiment aucune importance, comme je vous l'ai dis , je préfère travailler avec des paliers , le resultat était vraiment ce que j'attendais avec cette methode . donc il me faut juste quelques valeurs a droite et a gauche en haut et bas . j'en demande pas plus ;
 

PieM

Senior Member
dje said:
je préférerais acheter un autre module plus adéquat à mon utilisation et objectif final.
Vu l'utilisation, un modèle qui calcule compensation et les angles d'Euler me semble particulièrement luxueux !

Voir le CMP09. Je l'utilisais en 2010, mais je crois qu'il a été remplacé par un plus récent.
 

dje8269

Senior Member
Bonjour ,

J'ai effectivement trouvé le CMPS 11 mais chez robot shop . lien

Je continue mes investigations chez mes fournisseurs potentiels
 

PieM

Senior Member
Bonjour ,

J'ai effectivement trouvé le CMPS 11 mais chez robot shop . lien

Je continue mes investigations chez mes fournisseurs potentiels
Ouais ! c'est plus le même prix.... mais intégrant un filtre de Kalman, c'est un des moins chers du marché.
C'est un peu la limite des Picaxes. Un µC bon marché mais nécessite des capteurs avec µC intégrés pour les calculs.
 

dje8269

Senior Member
Bon, je pense que je vais abandonner ce projet car c'est trop complexe et sans vous je suis bon à rien.
Je sais même pas si un autre module pourait aller. Je n'arrive pas a faire fonctionner le magnétomètre sur celui ci. Bref je suis dans le brouillard.
 

BESQUEUT

Senior Member
Je n'arrive pas a faire fonctionner le magnétomètre sur celui ci..
Qu'entendez vous par là ?
Est-ce que vous n'arrivez pas à lire les 3 valeurs XM, YM et ZM ?
Ou est-ce que de ces 3 valeurs vous ne savez pas en déduire une orientation ?
Sachez que tant que le bidule est à peu près horizontal (la tête à peu près droite) l'orientation peu être calculée assez simplement.
Mais en n'ayant pas l'habitude, vous pouvez difficilement déduire à vue une orientation à partir de X et Y...
Comme déjà dit, (et également dit dans le pdf) ce serait bien de faire une série de mesures sur un tour complet.

Par ailleurs, pour l'élévation, il faudrait savoir si +/- 50° est suffisant, ou s'il faut aller à 90° ?
 

PieM

Senior Member
dje said:
Je n'arrive pas a faire fonctionner le magnétomètre sur celui ci.
Code:
   [color=Blue]hi2csetup i2cmaster [/color][color=Black],[/color][color=Navy]%00111100[/color][color=Black], [/color][color=Blue]i2cfast_8[/color][color=Black], [/color][color=Blue]i2cbyte
   hi2cin [/color][color=Navy]$03[/color][color=Black], [/color][color=Blue]([/color][color=Purple]b14[/color][color=Black],[/color][color=Purple]b15[/color][color=Black],[/color][color=Purple]b16[/color][color=Black],[/color][color=Purple]b17[/color][color=Black],[/color][color=Purple]b18[/color][color=Black],[/color][color=Purple]b19[/color][color=Blue])[/color][color=Green]' lecture des valeurs magnet X , Z et Y[/color]
Mais difficile de calculer les angles avec un Picaxe ...
Les CMPS ont l'avantage de donner directement les angles. Mais c'est plus cher!
 

dje8269

Senior Member
@BESQUEUT: je ferais tous les test se Week-end , promis.

@PieM : je n'ai pas essayez ton code, je suis certain qu'il fonctionnera. Je vais certainement posée une question qui va te paraître stupide , mais sommes nous obligé de calculer les angles. Ne pourrait on pas créer une petite table de conversion très simpliste, à la place !
 
Top