Pour faire mieux, que fallait-il ?
En priorité, je voulais qu'il ne bute pas dans les obstacles, mais qu'il les détecte afin de les éviter.
J'ai donc décidé d'adjoindre des détecteurs de distance. Mais que choisir? La première décision à prendre est de choisir entre infra-rouges ( IR ) et ultra-sons ( US ). Les IR ont un cône de détection plus étroit que les US, mais sont aussi plus sensibles à l'environnement. Côté programmation avec l'Arduino : une seule instruction est nécessaire pour mesurer la distance entre le détecteur IR et l'obstacle :
distance = analogRead(pin)
Concernant le prix, les IR étaient moins onéreux que les US, mais tout dépend des modèles. Récemment j'ai acheté des US type SRF04 sur ebay avec un marchand à Hong-Kong à moins de 1 euro pièce et sans frais de port ! Mais il ne faut pas en avoir un besoin urgent.
Bref, j'ai d'abord installé 2 IR (modèle Sharp GP2Y0A) en opposition sur une tourelle pilotée par servomoteur. Je pensais qu'en effectuant des rotations droite-gauche il serait possible de détecter les obstacles, et aussi de caler le déplacement de mon bolide parallèlement à un mur. Mais j'ai dû revoir ma théorie, car c'était sans compter avec le temps nécessaire à la rotation du servo de la tourelle. Ou alors, il fallait avancer le robot, l'arreter, faire des mesures, et repartir. Ca ne collait pas avec mes envies. Je voulais un déplacement plus fluide.
On efface tout et on recommence différemment. J'abandonne le servo qui servira plus tard pour une caméra espion, et je rajoute 2 IR. Le modèle d'origine n'étant plus dispo, je patiente, puis change de modèle après trois semaines d'attente. Et j'installe quatre IR : 1 devant, 1 derrière, 1 à droite et 1 à gauche. Et là : c'est déjà beaucoup mieux, mais toujours très imparfait.
Parallèlement à la détection IR située à 20 cm au-dessus du sol, les contacteurs mécaniques permettent la détection rase-motte des obstacles, et le programme s'en alourdi d'autant. Sachant que le programme du microcontrôleur tourne en boucle infinie, avec de nombreux paramètres à gérer tels :
- obstacle de face (mesure de distance )
- distance à respecter le long du mur,
- tester l'état des contacteurs
- agir sur les déplacement droite, gauche, ou arrêt des roues.
Tout ne peut se contrôler au même instant.
Autre souci rencontré, avec les IR : les distances mesurées sont fluctuantes : d'une part suivant l'environnement, mais aussi avec le niveau de la tension les contrôlant. Ce qui est bon à 15h (batterie neuve, lumière du jour) ne l'est plus à 20h (batterie faible, lumière artificielle)
Bref c'est un peu galère. Mais ça occupe !
JAG1 est perfectible et il le sera...Je le veux.
A suivre...
Aucun commentaire:
Enregistrer un commentaire