jeudi, juin 08, 2006

GP2D12

Ca y est, j'ai enfin réussit à faire fonctionner le GP2D12 (qui est très simple vu qu'il n'y a qu'une sortie analogique) avec un Javelin. J'ai utilisé un PCF8591 qui est un convertisseur Analogique -> Numérique et Numérique -> Analogique, que j'ai lui aussi encapsulé dans une classe java pour le Javelin.

Sur le GP2D12, je suis assez surpris de la faible précision que l'on obtient. En effet, il doit normalement mesurer de 10 à 80 cm et pour ma part, je ne vois de changement que de 20 à 80 cm.

Pour le programme, comme la réponse en tension n'est pas proportionnelle et qu'elle correspond à une courbe style 1/x² (mais qui n'est pas formalisée comme telle dans le datasheet), il a fallu le calibrer.

Résultat, après une calibration avec 14 points (1 point tous les 5cm) et une interpolation linéaire, j'arrive à avoir à peu près 10 cm de précision, car on se rend compte que le signal n'est pas très stable.

Ceci étant, cela reste largement suffisant pour permettre la détection de robots ennemis ou alors d'obstacles. Je n'ai pas encore regardé la directivité de la détection, je ferais un point rapidement dessus.

Dans la série des capteurs à intégrer sur la plate-forme Javelin, il ne me reste plus que le SRF08 (sonar en I2C), qui me donne beaucoup de fil à retordre. Il existe bien pleins d'exemples (y compris pour Javelin), mais j'ai l'impression qu'ils sont buggués ou souvent très mal écrit (celui pour le Javelin, c'est vraiment n'importe quoi). Je suis donc en train de réécrire un driver en Java, avec l'ensemble des fonctions. Je ne pense pas que j'arriverai à le faire fonctionner avant le 16/06/2006.

Néanmoins, toutes ces difficultés avec les périphériques I2C m'ont fait faire beaucoup de progrès dans la compréhension du bus.

Aucun commentaire: