+-------------------------------------------------------------+
| PETIT COMPTE RENDUE DU TRAVAIL EFFECTUE SUR LA
TORTUE |
| JELIN LORS
DU FORUM THOMSON
2004
|
+-------------------------------------------------------------+
Merci à FOOLDUPLEX et OBSIDIAN pour leur acharnement sur la bête.
Merci a PILOUX pour avoir laisser la pauvre bête aux mains de
sadique au risque de la faire fumer.
Le
Mystère de la Tortue JELIN est presque levé
La
tortue JELIN peut-être soit commandée à partir d'un
lecteur de carte, soit a partir d'un TO7-70.
Le lecteur de cartes lit des cartes plastiques perforées
dont les couleurs varient en fonction de la commandes à
exécuter :
Les cartes ROUGES : Ordre de control
Les cartes BLEU : Procédures
Les cartes BLANCHES : Ordres simples
Les cartes VERTES : Ordres de deux mouvements simultanée
de déplacement
Mais
la tortue peut-être commandée par le TO7-70 via
l'interface de communication CC90-232.
Afin que cela fonctionne, il faut, éteindre la tortue JELIN. Mettre dans le
lecteur la carte BLEUE Procédure No 5, et allumer la tortue. Ensuite il NE FAUT
SURTOUT PAS RETIRER la carte, et il n'y a plus qu'a travailler sur le TO7-70.
Sur
le TO7-70 voila les ordres à faire afin d'ouvrir
la connexion avec la tortue:
open "I",#1,"COMM:(480)"
open "O",#2,"COMM:(480)"
La communication est ainsi établie à 1200 bauds
8 bits de données
Pas de control de transmission
2 bits de stop
(1200,n,8,2)
Pour envoyer un ordre à la tortue, il faut envoyer un
code inférieure a $16 + le code de la commande voulue
et attendre un caractère de retour de la part de la
tortue avant d'envoyer une nouvelle commande. Pour
les tests du forum, le caractère NUL a été choisie.
Il faut ABSOLUMENT envoyer ces deux caractères en une
seule passe, sinon la tortue détecte le gap au milieu, considère
cela comme deux commandes séparées, et se
plaint donc deux fois, sans exécuter de commande (ce
qui peut être très pénible pour le débugage, et faire
perdre beaucoup de temps si on écrit une boucle censée
scanner tous les codes possibles).Ainsi la ligne
suivante fait avancer la tortue :
PRINT #1,chr$(0)+"A";
Après
avoir envoyer la commande, on se met en écoute de caractère provenant de la
tortue. On devrait normalement
recevoir le caractère $0D. Il est fort possible qu'il
faille en fait en lire plusieurs (impossible de traiter
ça efficacement avec le TO7. Le INPUT$(1,2) est bloquant,
et seul un RESET peut tirer le TO de son sommeil si la
tortue décide de ne plus rien envoyer. En tout été de
cause, en retour on a soit :
$0D : la tortue est contente
$C4 : La tortue n'est pas contente (elle râle)
Une chose qui est sur : Cette Tortue a mauvais caractère
car elle râle souvent, malgré tous les bons soins qui
lui ont été prodigués
Liste
des commandes pouvant être envoyé à la tortue:
+---------------------------------------------+
|
Cartes
ROUGES
|
+--------------------+---------+------+-------+
|
Ordre
| binaire | hexa | Ascii |
+--------------------+---------+------+-------+
|
c'est
| 1000011 | $43 | C |
| sauve (k7) | 1000101 |
$45 | E |
|
ramène
| 1001100 | $4C | L |
| apprends |
1001101 | $4D | M |
|
oublie
| 1001111 | $4F | O |
|
efface
| 1010011 | $53 | S |
| controle |
1010100 | $54 | T |
| verifie (k7) | 1010110 | $56
| V |
| execute |
1011000 | $58 | X |
|
enleve
| 1011010 | $5A | Z |
+--------------------+---------+------+-------+
+---------------------------------------------+
|
Cartes
BLEUES
|
+--------------------+---------+------+-------+
|
Ordre
| binaire | hexa | Ascii |
+--------------------+---------+------+-------+
| Procedure No 1 | 0000001 | $01
| |
| Procedure No 2 | 0000010 | $02
| |
| Procedure No 3 | 0000011 | $03
| |
| Procedure No 4 | 0000100 | $04
| |
| Procedure No 5 | 0000101 | $05
| |
| Procedure No 6 | 0000110 | $06
| |
| Procedure No 7 | 0000111 | $07
| |
| Procedure No 8 | 0001000 | $08
| |
| Procedure No 9 | 0001001 | $09
| |
| Procedure No 10 | 0010000 | $10
| |
| Procedure No 11 | 0010001 | $11
| |
| Procedure No 12 | 0010010 | $12
| |
| Procedure No 13 | 0010011 | $13
| |
| Procedure No 14 | 0010100 | $14
| |
| Procedure No 15 | 0010101 | $15
| |
| Procedure No 16 | 0010110 | $16
| |
| Procedure No 17 | 0010111 | $17
| |
| Procedure No 18 | 0011000 | $18
| |
| Procedure No 19 | 0011001 | $19
| |
| Procedure No 20 | 0100000 | $20
| |
+--------------------+---------+------+-------+
| Remarques : Le comptage n'est pas binaire |
| mais
BCD.
|
+---------------------------------------------+
+---------------------------------------------+
|
Cartes
VERTES
|
+--------------------+---------+------+-------+
|
Ordre
| binaire | hexa | Ascii |
+--------------------+---------+------+-------+
| ARC av-td 10 | 0110001 | $31
| 1 |
| ARC av-tg 10 | 0110010 | $32
| 2 |
| ARC re-tg 10 | 0110011 | $33
| 3 |
| ARC re-td 10 | 0110100 | $34
| 4 |
| ARC av-td 20 | 0110101 | $35
| 5 |
| ARC av-tg 20 | 0110110 | $36
| 6 |
| ARC re-tg 20 | 0110111 | $37
| 7 |
| ARC re-td 20 | 0111000 | $38
| 8 |
| ARC av-td 5 | 0111001 | $39
| 9 |
+--------------------+---------+------+-------+
| av = avance re =
recule
|
| td = tourne droite tg = tourne gauche |
| av-td 5 ne marche
pas
|
+---------------------------------------------+
+---------------------------------------------+
|
Cartes
BLANCHES
|
+--------------------+---------+------+-------+
|
Ordre
| binaire | hexa | Ascii |
+--------------------+---------+------+-------+
| eteins
| 0101101 | $2D | - |
|
allume
| 0101011 | $2B | + |
| av
10
| 1000001 | $41 | A |
| baisse crayon | 1000010 | $42
| B |
| td
15
| 1000100 | $44 | D |
| av
20
| 1000110 | $46 | F |
| tg
15
| 1000111 | $47 | G |
| leve crayon | 1001000 | $48
| H |
| joue air |
1001010 | $4A | J |
|
sonne
| 1001011 | $4B | K |
|
ramene
| 1001100 | $4C | L |
|
rale
| 1010000 | $50 | P |
| re
10
| 1010010 | $52 | R |
| re
20
| 1010101 | $55 | U |
| verifie |
1010110 | $56 | V |
| td
30
| 1100010 | $62 | b |
| tg 30
| 1100011 | $63 | c |
| td
45
| 1100101 | $65 | e |
| tg
45
| 1100110 | $66 | f |
| td
60
| 1101000 | $68 | h |
| tg
60
| 1101001 | $69 | i |
| tg
90
| 1101100 | $6C | l |
| td
120 |
1101110 | $6E | n |
| tg
120 |
1101111 | $6F | o |
| av
1
| 1110011 | $73 | s |
| re
1
| 1110100 | $74 | t |
| td
1
| 1110101 | $75 | u |
| tg
1
| 1110110 | $76 | v |
+--------------------+---------+------+-------+
| av = avance re =
recule
|
| td = tourne droite tg = tourne gauche |
| il manque : td 90 : est-ce $6B
? |
+---------------------------------------------+
Grâce
a tout cela, la tortue n'est pas reste inactive et à
zigzaguer entre les chaise, les tables, et les jambes des badaud
qui étaient dans la salle. C'était du sport pour
l'éviter
Maintenant
que la tortue n'a plus de mystères (ou presque)
la mission pour le prochain forum, si vous l'accepter est la suivante :
Faire un jolie programme sur TO7-70 qui pilote la tortue.
A vos marques, près, codés......