Page 1 of 2

Apprivoisons le TI-Robot E3, épisode 1 : en avant, marche !

Unread postPosted: 19 Aug 2017, 21:55
by critor
Le TI-Innovator pour calculatrices TI-Nspire CX et TI-83 Premium CE permet d'interfacer ta machine avec nombre de capteurs et actionneurs.
Des possibilités parfaitement dans l'esprit avec lequel les derniers programmes scolaires traitent le numérique, notamment la spécialité ISN en Terminale S ou l'option ICN en Seconde.

Ce qui nous aurait particulièrement intéressé dans ce contexte, cela aurait justement été de réaliser un robot sur roues, comme le TI-Robot par Norland Research, voiture-robot qui utilisait le port mini-Jack absent des derniers modèles.

Réaliser un tel robot nécessite des servomoteurs, moteurs dont la position est contrôlable et vérifiable.
Plus précisément 2 servomoteurs ici, pour pouvoir au moins avancer/reculer et tourner.

7588Le TI-Innovator gère bien les servomoteurs Grove, mais avec une énorme contrainte.
Ces moteurs nécessitent 5 Volts, alors que la calculatrice ne fournit que 3 Volts à travers son port USB.
En pratique le cas est certes prévu. Il faut brancher une source d'alimentation USB supplémentaire sur le TI-Innovator, comme par exemple une batterie USB pour conserver la mobilité des projets.
Mais ce voltage externe n'est répercuté que sur un seul port de sortie, le port OUT 3 :


En conséquence, il n'est pas possible de brancher simultanément 2 servoteurs Grove.

Une solution pourrait certes être l'utilisation du port BreadBoard pour le 2ème moteur (avec donc asymétrie du codage).

Une autre solution est d'utiliser le port BreadBoard pour les deux moteurs, et c'est ce que propose Norland Research avec son nouveau TI-Robot E3 qui vient de nous être adressé grâcieusement ! :bj:

Découvrons-le dès maintenant ensemble :
8611
860986178613
8615


Le TI-Robot E3 se compose donc de 3 étages et est à alimenter avec 6 piles AA. Il repose à l'avant sur 2 roues contrôlées chacune par un servomoteur, ainsi qu'à l'arrière sur une rotule multidirectionnelle.
Il comprend divers emplacements permettant d'enficher des briques lego, de quoi possiblement se construire des supports pour placer divers capteurs ou actionneurs compatibles TI-Innovator.

Regardons de plus près :
8612
861086188614
8616


Sur l'étage central repose une carte électronique sur laquelle on distingue un interrupteur marche/arrêt à coté d'une diode témoin d'alimentation, une prise USB A femelle latérale, un connecteur 2x10 broches comme le port BreadBoard du TI-Innovator, ainsi qu'un connecteur 3x2 broches latéral déportant peut-être les broches inutilisées du connecteur BreadBoard.

Connectons donc maintenant l'interface TI-Innovator.
Elle s'enfiche sur le port remarqué sans aucune difficulté :
8621
861986238620
8622


Nous remarquons que les autres ports du TI-Innovator restent libres d'accès.

Il ne reste plus qu'à rajouter la calculatrice, ici une TI-83 Premium CE, que l'on peut sécuriser avec 2 élastiques, et à la relier à l'interface TI-Innovator à l'aide du câble de communication mini-USB entre calculatrices :
862586268624


Le câble pourra éventuellement être fixé sur le côté en le passant dans la découpe prévue à cet effet, pour éviter qu'il ne s'accroche quelque part et perturbe les mouvements du robot.

Il est maintenant temps de tester.
Les ports BB1 et BB3 contrôlent respectivement la marche avant de la roue droite et de la roue gauche.
Voici donc un programme censé faire avancer le robot, en lançant les 2 roues en marche avant à pleine vitesse :
Code: Select all
Send("CONNECT DIGITAL.OUT 1 BB1
Send("CONNECT DIGITAL.OUT 3 BB3
Send("SET DIGITAL.OUT 1 1
Send("SET DIGITAL.OUT 3 1
Wait 5
Send("SET DIGITAL.OUT 1 0
Send("SET DIGITAL.OUT 3 0

En pratique, voici ce que l'on obtient :

Notre voiture-robot part donc sur la gauche.

Et c'est normal puisque l'exécution de ce code n'est pas instantané.
Sur TI-83 Premium CE, une ligne de code à interpréter non complexe nécessite dans les 0,3 seconde.

Donc avec ce code littéralement, la roue droite s'active en premier faisant tourner le robot à gauche, et ce n'est qu'au moins 0,3 seconde plus tard que la roue gauche s'active pour compenser et le faire aller tout droit.
Avec l'ancien TI-Robot E2 qui utilisait des commandes complètement différentes, il était possible de contrôler simultanément les 2 roues, mais cela ne semble plus être le cas ici.

L'écart de trajectoire n'est de façon évidente pas négligeable, que le but soit que le robot fasse de l'exploration spatiale ou du dessin, cela risque de donner n'importe quoi dans les deux cas.

Nous en appelons donc à ton aide : quelle(s) modification(s) ferais-tu au code ci-dessus pour corriger l'écart de trajectoire ? ;)
Nous attendons ta réponse pour le prochain épisode ! ;)




Lien : http://innovatorrobot.com

Re: Apprivoisons le TI-Robot E3, épisode 1 : en avant, march

Unread postPosted: 19 Aug 2017, 22:07
by Adriweb
Et pour ceux qui sont sur Nspire CX, Steve Arnold de CompassTech a fait ce qu'il faut (le lien est donné sur le site de Norland, d'ailleurs) en Lua :)





Lien (explications, codes...) : http://compasstech.com.au/TNS_Authoring ... tut45.html

Re: Apprivoisons le TI-Robot E3, épisode 1 : en avant, march

Unread postPosted: 19 Aug 2017, 22:16
by critor
Merci.

Et pour le problème de non-simultanéité dans le contrôle des 2 roues, et donc par conséquence de précision pour les projets en ayant besoin, une idée ? ;)
(traceur de courbes ou polygones comme les trucs Scratch du DNB, explorateur avec mémoire spatiale...)

Re: Apprivoisons le TI-Robot E3, épisode 1 : en avant, march

Unread postPosted: 19 Aug 2017, 22:30
by Wistaro
Intéressant !

Peut-être qu'il faudrait baisser la tension sur le servomoteur droit et augmenter celui de gauche, pour compenser le decallage?..

Re: Apprivoisons le TI-Robot E3, épisode 1 : en avant, march

Unread postPosted: 19 Aug 2017, 22:52
by critor
C'est une idée. :)

Mais dans ce cas-là, ça revient à faire tourner la roue gauche plus vite que la roue droite.
Cela va peut-être rattraper rapidement l'erreur au départ oui, mais sur des distances plus longues le robot va donc dévier sur la droite.

Re: Apprivoisons le TI-Robot E3, épisode 1 : en avant, march

Unread postPosted: 19 Aug 2017, 22:55
by Wistaro
Pas faux.
Mais peut-être qu'en dosant la difference entre les deux, suivant la distance (ou le temps) parcouru...

En gros, mettre en place un régulateur en asservissant le robot.
Après ça va pas être évident ^^

Re: Apprivoisons le TI-Robot E3, épisode 1 : en avant, march

Unread postPosted: 19 Aug 2017, 23:28
by critor
Pour l'instant, je n'ai pas abordé le dosage de la vitesse.
Mais pour une erreur ponctuelle, il faudrait une correction ponctuelle.

Une idée pourrait être de stopper la roue qui a démarré en premier, soit la droite (DIGITAL.OUT 1).
Code: Select all
Send("CONNECT DIGITAL.OUT 1 BB1
Send("CONNECT DIGITAL.OUT 3 BB3
Send("SET DIGITAL.OUT 1 1
Send("SET DIGITAL.OUT 3 1
Send("SET DIGITAL.OUT 1 0
Send("SET DIGITAL.OUT 1 1
Wait 5
Send("SET DIGITAL.OUT 1 0
Send("SET DIGITAL.OUT 3 0


La roue droite tourne toute seule pendant l'exécution de la ligne 4.
La roue gauche tournerait toute seule et pourrait donc corriger la trajectoire et nous ramener à la direction d'avant le lancement du programme pendant l'exécution de la ligne 6.

Nous avons ici des instructions simples.

L'exécution de chaque ligne simple prenant en gros le même temps (0,3 seconde).

A confirmer...


Et n'hésitez pas si vous avez mieux. ;)

Re: Apprivoisons le TI-Robot E3, épisode 1 : en avant, march

Unread postPosted: 19 Aug 2017, 23:35
by Wistaro
Bonne idée :)
Et ça donne quoi sur le terrain?

Tiens, ça serait bien de lui mettre des capteurs pour lui faire éviter des obstacles, suivre une ligne, rejoindre une balise.. Ça pourrait être fun :D

Re: Apprivoisons le TI-Robot E3, épisode 1 : en avant, march

Unread postPosted: 19 Aug 2017, 23:37
by critor
Je testerai la correction demain si j'ai le temps. :)

Et pour les capteurs oui c'est très intéressant comme projet.
Mais pour que ça ne donne pas n'importe quoi en pratique sur de moyennes/longues distances, il faut que l'on prenne le temps de soigner la précision du contrôle de nos servomoteurs. ;)

Re: Apprivoisons le TI-Robot E3, épisode 1 : en avant, march

Unread postPosted: 20 Aug 2017, 10:08
by Zezombye
Il suffit de positionner le robot vers la droite, ainsi quand il ira vers la gauche il ira tout droit :troll:

En vrai je pense qu'orienter les roues vers la droite corrigera l'erreur de trajectoire (mais le robot n'ira pas droit tout de suite).