04/10/01 -1

publicité
Architecture et programmation de
robots autonomes
Emmanuel Dard - Denis George
04/10/01
Architecture et programmation d ’un robot autonome
-1-
Objectifs
• Contrôles du robot
– Contrôle de 3 moteurs asservis
– Commande de sorties TOR
– Commande de servo-moteurs
• Interactions avec l’extérieur
– Lecture d ’entrées TOR
04/10/01
Architecture et programmation d ’un robot autonome
-2-
Choix du type de système
• Contraintes:
–
–
–
–
–
Volume et poids
Rapidité de démarrage
Fiabilité
Maintenance simple
Système adapté
• Solution
– Carte mère sur mesure avec micro-contrôleur
adapté
04/10/01
Architecture et programmation d ’un robot autonome
-3-
Nos contraintes
• Programmation par liaison série
• Interaction directe avec la CM par LS
• Capacité de stockage importante
– mémoire programme (FLASH)
– mémoire volatile (RAM)
• Capacité de calcul
• Pérennité
04/10/01
Architecture et programmation d ’un robot autonome
-4-
Résultat
04/10/01
Architecture et programmation d ’un robot autonome
-5-
Résultats
• Processeur
– Micro-contrôleur 80C537 (famille 8051)
– Fréquence : 14Mhz
• Stockage
– 32Ko de ROM
– 16Ko de SRAM
– 32Ko de Flash
04/10/01
Architecture et programmation d ’un robot autonome
-6-
Suite...
• 3 contrôles de moteurs:
– Composants permettant d’asservir les moteurs
• Une Horloge Temps Réel
• Une liaison série à 38400 bauds:
– Téléchargement des programmes
– Dialogue avec la carte mère
• 2 modes de fonctionnement
04/10/01
Architecture et programmation d ’un robot autonome
-7-
Procédure
Développement du programme
Compilation
Téléchargement sur la flash
Exécution
04/10/01
Architecture et programmation d ’un robot autonome
-8-
Spécificités du μC
• Adressage 16 bits
– interne au μC (registre interne)
– externe au μC (mémoires externes, autres composants)
• Mémoire et calculs limités
• Débugage complexe
– Pas d’affichage
• Mono-processus
• Interruptions déclenchées par:
– Evénements internes ou externes
04/10/01
Architecture et programmation d ’un robot autonome
-9-
Utilisation des Interruptions
Fonction liée à
l ’interruption
Programme Principal
Début
Début
Traitement de
l’éventuelle interruption
Positionnement
d ’un FLAG
Exécution de
l'action
OUI
Autre action?
NON
Fin
04/10/01
Fin
Architecture et programmation d ’un robot autonome
-10-
Langages de programmation
•Assembleur
– Optimisé
– Développement trop long
•Compilateur bas niveau pour μC
–Exemple: C, Basic, Pascal
–Spécifique à chaque famille de μC (8051, PIC,…)
04/10/01
Architecture et programmation d ’un robot autonome
-11-
Programmation pour μC
• Peu de librairies existantes
– Utilisation de composants spécifiques
• Lecture et écriture des composants:
int *ptr = 0x5050;
char toto;
*ptr = 0x05; //écriture
toto = *ptr; //lecture
04/10/01
Architecture et programmation d ’un robot autonome
-12-
Conclusion
• Une alternative au PC
– Contraintes physiques fortes
– Calculs et mémoire limités
• Développement spécifique
– Très lié au hardware
– Optimisé
04/10/01
Architecture et programmation d ’un robot autonome
-13-
Téléchargement