Vous êtes ici : Home > Fiches Techniques > Simulateur EPRAT

SIMULATEUR EPRAT

Pour le concours eprat, nous avons conçus un robot controlé par un PIC16F84. Afin de programmer le robot et de tester differentes strategies, nous avons realisé ce simulateur.

 
oCahier des charges
 
Le but est de pouvoir tester differentes strategies dans les conditions réelles d'utilisation, il faut donc un simulateur qui reproduise fidelement le comportement réel du robot.
 
Une fois la staregie établie, le simulateur doit etre capable de generer le code assembleur du PIC16F84.

 

oPresentation de l'interface
 
 

Comme on peut le voir sur l'interface ci dessus, le simulateur est compose de deux parties. La partie de droite represente l'air de jeux et le robot dessiné a l'echelle. J'ai utilise l'OpenGl. La partie de gauche, représente l'interface utilisateur.

Il peut grace aux boutons et fenêtres d'edition commander tous les actionneurs du robot ZIZOU:

- les moteurs: Chaque moteur est pilotable separement, les actions possibles sont AVANCER, RECULER, COUPER.

- la porte: Possibilite de l'ouvrir et de la fermer. (la porte permet de defendre devant le but)

- Le rouleau: AVANCER (rammasser les balles), RECULER (tirer les balles), STOPPER.

- Les servos moteurs des balles: pour chaque balle, on a la possibilite de BLOQUER (bouton vert) ou de TIRER (bouton rouge).

ZIZOU est equipe de moteurs pas à pas, la commande consiste donc à imposer un nombre de pas à atteindre, et une tempo. Le nombre de pas et la tempo sont reglables dans la partie PARAMETRES.

Par exemple, pour faire avancer le robot, on choisit AVANCER pour les deux moteurs, on regle le nombre de pas et la tempo, et on valide par la touche VALIDER.

Chaque action est listée, ce qui permet de supprimer une ligne ou en inserer une nouvelle.

Une fois la liste constituée, il suffit d'appuyer sur la touche TRAJECTOIRE pour voir le robot evoluer sur l'air de jeux.

Le simulateur permet aussi de sauvegarder une liste de commandes (fichier .ancr) et de la reloader.

 
oL'assemblage
 

Une fois la trajectoire generee, il est possible de creer le code assembleur correspondant.

Comment ca marche ?:

En fait j'ai cree une classe CPIC16F84 dont le fichier header comporte tout le code assembleur d'un programme typique, c'est a dire l'initialisation et les sous programmes (routines). Seul le programme principal est generer dynamiquement en fonction de la liste.

Lorsqu'on choisit d'assembler, on cree un fichier .asm. Ensuite, pour chaque ligne de la liste, le programme réalise une reconnaissance semantique et cree les appels aux sous programmes correspondant.

 
oLa trajectoire
 

Lorsqu'on clique sur TRAJECTOIRE, pour simuler le deplacement, le programme effectue une boucle indexée par le nombre de pas, et la position du robot est recalculee à chaque increment. Pour cela, on se base sur un modèle cinematique (cf fiche modele cinematique). Les positions sont alors transmises à la classe s'occupant de dessiner le robot.

Le modele cinematique permet d'avoir un comportement fidéle du simulateur par rapport au deplacement réel du robot. Par contre, ce que le simulateur ne reproduit pas exactement, c'est la vitesse du robot. En effet celle ci depend des performances du processeur de la machine sur laquelle il est installé. Pour pallier à ce probleme, on peut utiliser le slider vitesse, qui simule un delay entre deux rafraichissement de la position du robot.

 

oLe programme
 
Cliquer sur l'icone ci dessous pour telecharger le programme trajectoire.exe
 
Vous pouvez aussi charger à titre d'exemple le fichier STRAT001.ancr utilise au concours. Celui ci permet de generer le fichier assembleur suivant: STRAT001.asm
 
oContact
 
Pour toutes questions envoyer moi un mail: Matthieu