Nous avions rencontré quelques difficultés à le faire rouler droit pour plusieurs raisons :
- le robot comprend 2 roues indépendantes, et il est impossible leur envoyer simultanément des commandes, il y aura toujours un décalage
- les roues ne tournent pas à la même vitesse
- à part avec des piles de marque flambant neuves (et comme le robot en mange six ça finit par coûter cher), la tension en charge chute sensiblement, si bien que la vitesse de rotation des roues varie facilement
Aujourd'hui, changeons d'approche. Au lieu de continuer à s'arracher les cheveux à trouver un protocole de calibrage fiable, servons-nous des capteurs du robot. Ce dernier dispose en effet d'un large pare-chocs, permettant de détecter indépendamment des obstacles sur la gauche ou sur la droite, informations à consulter sur les ports Breadboard BB5 et BB6.
Voici donc CATOBOT notre nouveau programme de pilotage du TI-Robot E3 pour TI-83 Premium CE, permettant à ce dernier de parcourir un corridor en détactant et évitant les obstacles et murs, tout comme un chat le fait avec ses vibrisses.
Par rapport à nos dernières tentatives, ce programme bénéficie de nombre de nouveautés que nous avons développées :
- Détection de la présence de l'interface TI-Innovator à l'aide des commandes
WHAT
ouWHO
, évitant ainsi au programme de se lancer à vide et donc ne rien faire de compréhensible
pour ne pas démarrer quand même et ne rien faire de compréhensible- Code: Select all
Send("WHAT
Get(Chn0
If 13≤longueur(Chn0
Then
If sousch(Chn0,1,13)≠"TI INNOV"+"ATOR
Then
Disp "TI-Innovator not detected.
Stop
End
End
- De même, vérification que le TI-Robot E3 est bien connecté et allumé. Pour cela, on peut récupérer la tension régulée de 5 Volts qu'il fournit pour l'alimentation de capteurs/actionneurs optionnels sur le port BreadBoard BB7. C'est une mesure analogique et non digitale, donc il n'est pas sûr que l'on obtienne zéro. Mais 16383 correspondra à une valeur de 5 Volts, donc un peut prendre un seuil ridicule comme 255, qui correspondra à moins de 0.1 Volt.
- Code: Select all
Send("CONNECT ANALOG.IN 7 BB7
Send("READ ANALOG.IN 7
Get(B
If B≤255
Then
Disp "TI-Robot E3 not detected.
Stop
End
- Tant qu'on y est, affichons et rafraichissons la charge du robot tout au long des répétitions de la boucle principale du programme, en volts et en pourcents.
Attention, la charge n'est pas proportionnelle à la tension. La tension chute lentement tout le long de la durée de vie d'une alimentation, avant de s'effondrer à la fin. Sans cela nos smartphones ne conserveraient pas les mêmes performances pendant des heures. Si on prend l'exemple d'une pile de 1.5 Volts, on peut considérer qu'une fois tombée à 1.0 Volts elle est complètement hors service pour tout ce qui concerne l'électronique. D'où une formule tenant compte de ce seuil afin de donner une bonne indication :- Code: Select all
Send("READ ANALOG.IN 7
Get(X
10X/16383
Output(1,9,Rep
Output(2,9,max(0,100(Rep/3-2
- Rajoutons un indicateur audio + visuel à chaque itération de la boucle.
Mais contrairement à nombre de programmes d'exemples qui codent l'actionneur concerné en dur, exigeant donc des modifications à la moindre variation du montage, laissons le choix à l'utilisateur entre :- les diode et haut-parleur intégrés à l'interface TI-Innovator
- des actionneurs externes
- dans le cas du son de type Speaker ou Buzzer (fréquence non contrôlable dans ce cas)
- pouvant utiliser les sorties Grove OUT1, OUT2 ou OUT3 du TI-Innovator
- ou encore les ports BreadBoard BB8, BB9 ou BB10 du TI-Innovator, ports que le TI-Robot E3 n'exploite pas et prolonge sur son côté avant-gauche pour les rendre plus facilement accessibles
- Le TI-Innovator incluant un capteur de luminosité, profitons-en pour faire des relevés au cours de notre exploration, retenons la valeur maximale.
- Et de même, ce capteur étant situé à l'arrière ce qui n'est pas génial une fois monté sur le robot, laissons le choix à l'utilisateur entre le capteur du TI-Innovator et un capteur externe si il en a le budget.
Avant de lancer le tout, assurons nous de sécuriser le câble USB de connexion entre la TI-83 Premium CE et le TI-Innovator qui est quand même relativement long à l'échelle du robot, afin d'éviter qu'il s'accroche et bloque le robot ou pire provoque des accidents :
Et voilà, cette fois-ci le TI-Robot E3 marche et même tourne tout seul :
Notons que sur la vidéo, le robot est muni d'un buzzer Grove externe connecté sur le port OUT1, et sécurisé ici sur son étage inférieur. Il a l'avantage de s'entendre beaucoup mieux en classe ou sur les salons que le haut-parleur interne du TI-Innovator.
Téléchargement : CATOBOT