robot Hercule

Transcription

robot Hercule
TP Communication Série
C++/Windows
Mise en oeuvre du robot HERCULE
Durée 4h
Objectifs:
- Initialiser une transmission asynchrone afin d'établir une
communication avec Hercule;
- Utiliser un analyseur de protocole;
- Piloter Hercule dans les modes lié et autonome.
- Gérer la liaison série avec les fonctions API sous C++Builder
Travail demandé
1) Terminal / Analyseur de protocole HP
1.1) Tester le format de la transmission 9600 bits/sec ,8 bits ,sans parité ,1 stop en
faisant pivoter la base.
ex: B+100<space><lf>
Remarque : line feed = Ctrl J
1.2) Insérer l'analyseur sur la liaison série ,lancer une commande afin de déterminer la
valeur de l'accusé de réception retourné par Hercule.
2) Mode lié
2.1) Ecrire un constructeur Comm () qui configure le port série correctement.
Mise en situation
Hercule permet 3 modes de fonctionnement:
- Le mode lié (L par défaut) permet un dialogue entre l' utilisateur et le robot.
Dans ce mode Hercule retourne un accusé de réception après
l'exécution de la
commande.
- Le mode autonome (A) permet d'utiliser Hercule comme un système indépendant :le
robot exécute le fichier de commandes stocké en mémoire .
- Le mode apprentissage ($) permet la mise en mouvement du robot par l'intermédiaire
d'une télécommande puis de mémoriser le programme correspondant à ces mouvements.
A chaque réception de $ ,Hercule retourne les positions de ses différents
axes.
Commandes:
B: base ,C: coude , E: épaule , P: pince , T: tangage
2.2) Ecrire une méthode void envoi(AnsiString commande) qui envoie la commande.
2.3) Coder un programme correspondant au grafcet suivant. Dans un premier temps
l’attente de l’accusé de réception sera remplacée par un sleep()
2.4) Créer un thread pour attendre l’accusé de réception.
1
=1
2
Format d'une instruction:
B+125 <space><line feed>
base ,sens positif ,position en degrés
T=0
B = -250
=ack
4
E = -200
=ack
5
Valeurs limites pour le TP
-60 < coude < + 60
C=0
=ack
3
-250 < base < + 250
E=0
E = -300
=ack
-300 < épaule < 0
6
-100 < tangage < 0
C =-6 0 T =-6 0
=ack
7
Aide des fonctions API
dans programfiles\fichiers communs\borland shared\mshelp\win32.hlp :
CreateFile ,GetCommState, SetCommstate,BuildCommDCB, EscapeCommFunction,
PurgeComm,SetCommMask , WaitCommEvent, ReadFile,WriteFile.
Voir aussi Configuring a Communication Ressource
B=0
E = 0 C =+6 0
=ack
8
B = +250 E = -250