Charly Robot

Transcription

Charly Robot
TP Communication Série
C++/Windows
Mise en oeuvre de CHARLYROBOT
Durée 4h
Objectifs:
- Initialiser une transmission asynchrone afin d'établir une communication avec Charlyrobot;
- Exploiter la documentation du robot pour lui faire exécuter une suite d'instructions mémorisées.
- Gérer la liaison série avec les fonctions API sous C++Builder
Mise en situation
Charlyrobot fonctionne selon 2 modes :
- Mode direct: une instruction est envoyée au robot qui l'exécute et attend qu'une autre instruction lui soit envoyée.
Les fonctions de déplacement sont définies par un caractère.Si ce caractère est majuscule l'accusé de
réception est retourné après exécution de la commande.
Si le caractère est minuscule l'accusé de réception est retourné dès réception de la commande.
- Mode indirect : une série d'instructions est stockée en mémoire du robot; la machine peut ainsi travailler de façon
autonome.
Dans ces 2 modes de fonctionnement le déplacement peut être soit absolu soit relatif.
Un déplacement absolu est un déplacement ayant pour référence l'origine programme.
Un déplacement relatif a pour origine l'endroit où l'on se trouve.
Travail demandé
1) Résolution - Vitesse
Le nombre de pas du moteur est de 200 par tour , le moteur fonctionnant en demi-pas on peut donc raisonner comme s'il
comportait 400 pas par tour. Le moteur est équipé d'une vis de 5 mm de circonférence.
1.1) Déterminer la résolution du robot (plus petit déplacement).
1.2) Sachant que la fréquence maximale de référence est de 2000 Hz(pas/tour)
- calculer la vitesse maximale de référence en tr/sec
- en déduire la vitesse maximale de référence en mm/sec.
2) Communication Série
Charlyrobot doit être relié par liaison série.
2.1)En émulant un terminal avec l’hyperterminal :
- tester la communication en lançant un autotest
- vérifier la valeur de l’acquittement (en cas de non problème) retourné par Charly
- définir l’axe x : @01
- différencier les commandes suivantes (par rapport à l’accusé de réception)
@0A1000,100
@0a1000,100
2.2)Ecrire le constructeur Comm () qui configure le port série avec le format 9600 bits/sec ,8 bits ,sans parité ,1 stop.
2.3) Réaliser une méthode void envoie (AnsiString commande) et tester vos fonctions en lançant un ordre de
déplacement.
3) Mode direct
Produire la méthode, dans une classe Charly dérivant de Comm, void carre (AnsiString cote) qui exécute un carré
de dimension cote en déplacement absolu .
4) Mode indirect ou mode mémoire
4.1) Les commandes du carre sont envoyés au robot qui les mémorise et les exécute.
4.2) Les commandes doivent maintenant être exécutées en déplacement relatif.
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

Documents pareils