Test du module boussole CMP03

Et oui une bonne boussole pour aider votre robot à retrouver son chemin ne serait pas du luxe, je suis sûr que vous aimerez ajouter ce module à votre robot ou tout simplement à votre montage qui utilise probablement déja des composants i2c.
Opération de calibrage
Cette opération n’est pas forcement nécessaire pour obtenir des résultats mais il vaux mieux l’effectuer quant même.
A l’oscilloscope
Vous pourrez constater sans aucun programme le bon fonctionnement du module boussole grâce a la sortie pwm dont le rapport cyclique change en fonction du pointage de votre boussole. Vous constaterez une fréquence de l’ordre de 10 hertz.
En i2C
Ce module dispose d’une adresse de base qui est c0, celle ci est modifiable par soft.
Il existe la aussi 2 type de données utilisable. Dans un premier cas un registre ayant une valeur de 0 à 255 représentant 0 à 360degrés. Dans ce cas la précision n’est pas très importante. (360/255= 1.4°)
Sinon, il est possible de lire 2 registres afin d’obtenir une meilleur précision, dans ce cas en ajoutant ces 2 registres de 8 bits on obtient une valeur sur 16 bits qui représentera 0 à 360,0 dégrées.
Le code
Morceau de code est réalisé pour le compilateur css. Ici on lit le registre 01 sur 8 bits (moins précis)
temp = 0;
i2c_start();
i2c_write(0xc0); //adresse du module par défaut
i2c_write(1); // registre sur 8 bits de 0 à 255 représentant 0 à 360 degrés
i2c_start();
i2c_write(0xc1);// adresse du module boussole en mode lecture (bit read/write à 1)
temp = i2c_read(0) ; // valeur récupéré dans temp - 0 pour NO acknowledge
La documentation
http://www.lextronic.fr/~lextronic_doc/Applications_A.pdf
http://ancrobot.free.fr/Old_version/fichtech/electronique/Boussole/index.htm
Le prix
le module CMP03 est disponible chez lextronic au prix de 45,50 euros TTC.