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-