SOMMAIRE

 

1 Introduction :                                                                            _ _ _ _ _ _ _ _ _ p. 3

 

     _ Présentation du concours                                                _ _ _ _ _ _ _ _ _ p. 3

_ Présentation du règlement                                              _ _ _ _ _ _ _ _ _ p. 3

_ Résultat envisagé                                                              _ _ _ _ _ _ _ _ _ p. 3

 

2 Cahier des charges :                                                              _ _ _ _ _ _ _ _ _ p. 4

 

            _ La partie imposée par le règlement                                 _ _ _ _ _ _ _ _ _ p. 4

            _ La partie libre                                                                   _ _ _ _ _ _ _ _ _ p. 5

 

3 Description, utilisation et problème rencontré avec les divers éléments :p.6

            _ Schéma synoptique du robot                                          _ _ _ _ _ _ _ _ _ p. 6

_ Algorithme de fonctionnement général                         _ _ _ _ _ _ _ _ _ p. 7

_ Avant le concours                                                                         _ _ _ _ _ _ _ _ _ p. 7

 

            Partie mécanique :                                                    _ _ _ _ _ _ _ _ _ p. 7

                          ~ Base roulante :                                                     _ _ _ _ _ _ _ _ _ p. 7

  ~ Carrosserie :                                                        _ _ _ _ _ _ _ _ _ p. 7

                          ~ Moteur                                                                _ _ _ _ _ _ _ _ _ p. 8

Partie électrique                                                     _ _ _ _ _ _ _ _ _ p. 8

                          ~ Carte mère                                                           _ _ _ _ _ _ _ _ _ p. 8

. Commande moteurs

                                   . Régulateur

  ~ Carte micro                                                         _ _ _ _ _ _ _ _ _ p. 10

                                   . Oscillateur                                                   _ _ _ _ _ _ _ _ _ p. 10

                                   . PIC 16F877                                                 _ _ _ _ _ _ _ _ _ p. 10

                                               à Signal PWM

à Convertisseur A.N.

à Liaison I2C.

                                   . Liaison ICD                                                  _ _ _ _ _ _ _ _ _ p. 11

                                               Carte ICD :

Connecteur :

  ~ Carte capteur de piste              (OPB704)       _ _ _ _ _ _ _ _ _ p. 12

  ~ Carte télémètre à ultra son      (SFR08)          _ _ _ _ _ _ _ _ _ p. 13

  ~ Carte capteur tactile                (QT110)          _ _ _ _ _ _ _ _ _ p. 14

  ~ Carte AOP                                                          _ _ _ _ _ _ _ _ _ p. 16

  ~ Web-cam                                                            _ _ _ _ _ _ _ _ _ p. 16

 

_ Pendant le concours                                                         _ _ _ _ _ _ _ _ _ p. 18

Partie mécanique :                                                    _ _ _ _ _ _ _ _ _ p. 18

                        Partie électrique :                                                    _ _ _ _ _ _ _ _ _ p. 18

            Stratégie :                                                                 _ _ _ _ _ _ _ _ _ p. 18

 

4 Améliorations Envisagées :                                                   _ _ _ _ _ _ _ _ _ p. 19

 

_ Pour les capteurs :                                                            _ _ _ _ _ _ _ _ _ p. 19

_ Partie électrique :                                                                         _ _ _ _ _ _ _ _ _ p. 19

_ Stratégie :                                                                         _ _ _ _ _ _ _ _ _ p. 19

 

5 Conclusion :                                                                                 _ _ _ _ _ _ _ _ _ p. 20

 

6 Description du  programme et des fonctions :                          _ _ _ _ _ _ _ _ _ p. 21

 

            _ Main.c                                                                                 _ _ _ _ _ _ _ _ _ p. 21

            _ Démarrage.c                                                                      _ _ _ _ _ _ _ _ _ p. 23

            _ Arrivée.c                                                                            _ _ _ _ _ _ _ _ _ p. 23

            _ Direct.c                                                                              _ _ _ _ _ _ _ _ _ p. 24

            _ PWM.c                                                                                _ _ _ _ _ _ _ _ _ p. 27

            _ Can.c                                                                                   _ _ _ _ _ _ _ _ _ p. 29

            _ I2C.c                                                                                   _ _ _ _ _ _ _ _ _ p. 31

            _ Télémètre.c                                                                      _ _ _ _ _ _ _ _ _ p. 38

            _ Raccourci.c                                                                       _ _ _ _ _ _ _ _ _ p. 40

 

6 Annexes :

 

            _ Programme de la web-cam

 

            _ Règlement du concours 2003

 

            _ Documentation sur le 16F877

            _ Documentation sur les capteurs de piste

            _ Documentation sur le télémètre à ultra son

            _ Documentation sur la web-cam

            _ Documentation sur la base roulante

            _ Documentation sur les moteurs

            _ Documentation sur la commande moteur : L6201

            _ Documentation sur le LM628

 

_ Cours de java

_ Support these robot mobil 1

 

 

1 introduction :

 

 

            _ Présentation du concours

                                  

Le challenge inter IUT, réservé aux étudiants d’I.U.T. GEII, se déroulera à Vierzon du 06/06/03 au 09/06/03 et est organisé par Car Tch-Inno.

Ce concours se veut avant tout un challenge entre étudiants. Il se déroulera sous forme de passage simultané de deux robots qui doivent évoluer de façon totalement autonome, c’est à dire sans aucune aide extérieure.

Le design est libre : il donnera lieu à un prix du design, indépendamment de la course.

 

 

            _ Présentation du règlement   (CF Programme Car Tech-Inno)

 

Le robot sera construit à partir d'un kit imposé par le comité d'organisation, comprenant le châssis, les moteurs, les roues et la batterie.

Le robot doit être capable de suivre une piste le plus rapidement possible. En cas de risque de collision entre deux robots, la règle est la priorité à droite.

A la fin de la piste, il faut faire tomber une première barre et laisser en place une seconde barre, distante de 20cm de la première.

Le but est de finir le premier, si un des robots ne respecte pas ces règles il recevra des points de pénalités traduit par des temps supplémentaires.

 

Exemple de parcours :                                         

 

     

 

 

_ Résultat envisagé

           

            Notre but est de participer au concours avec un robot le plus opérationnel possible. N’ayant aucune expérience dans ce domaine nous espérons tout de même ne pas finir dernier !!!

 

2 Cahier des charges :

 

            Le cahier des charges est à séparer en deux parties. Premièrement la «partie imposée » par le règlement du concours, ce qui permet de créer une compétition équitable, sur des bases identiques, basée  seulement sur la programmation et l’électronique. Ensuite la «partie libre » dans laquelle l’imagination de chacun entre en jeu.

 

            _ La partie imposée par le règlement

 

Le robot est constitué d’une «base roulante universelle » de 240mm*240mm*70mm.

 

 

Équipé de deux moteurs à courant continu de  fabrication spéciale, dont les caractéristiques sont proches du moteur G42x25. Tension nominale 12 Volts pouvant être alimentés en 15V (tension maximale), le courant en charge nominale est de 1.45 A avec un Imax égale à 11 A. Sa vitesse nominale est de 2640 Tr/mm à 12 Volts  et 3300 Tr/mm à 15 Volts.

                                   « moteur.tif »

Fabriquant dunkermotoren

Distributeur MDP

 

                    

 

 

 

 

La partie puissance doit être alimentée par une batterie au plomb de 12 Volts d’une capacité 1,2 A.H.

Constructeur YUASA

Référence constructeur NP 1,2-12

Référence Farnell 147 472

 

         

 

            _ La partie libre

 

            Le cahier des charges qui nous a été présenté en début d’année était le règlement du concours.

C’est à dire qu’il fallait tout d’abord suivre une ligne blanche avec la plus grande vitesse possible. Nous avons opté pour un PIC 16F877 pour commander le robot, et trois capteurs (phototransistor) pour détecter la ligne, et pour la partie puissance  des commandes motrices d’un pont en H : L6203 (full bridge driver for motor control).

Ces composants ayant été testés et validés par un étudiant allemand en stage dans notre IUT durant l’année 2001/2002.

            Par la suite nous avons fait des modifications et des ajouts, tel qu’un télémètre à ultra son, pour détecter la priorité à droite, un «pare choc » pour détecter la fin du parcours et deux capteurs supplémentaires pour les raccourcis et pour les croisements. Nous envisageâmes ensuite d’installer une web-cam à la place des capteurs infrarouges afin d’améliorer la rapidité d’action du robot par anticipation.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 Description, utilisation et problème rencontré avec les divers éléments.

 

            _ Schéma synoptique du robot

 

 

 

 

 

_ Algorithme de fonctionnement général

 

_ Avant le concours

 

            Partie mécanique :

 

                        ~ Base roulante :

 

                                   Le châssis est en plastique thermoformé blanc.

- Dimensions (mm) : 240 x 240 x 70 

- Masse à vide : 2 Kg (avec moteur et batterie)

- Charge utile : 2 Kg

- Résolution théorique avec quadrature : ±0.24mm

 

 

 

~ Carrosserie :

 

La carrosserie est en fibre de verre et polyester. Elle supporte le télémètre à ultra son, le pare chocs, le jack de démarrage et l’interrupteur d’arrêt d’urgence.

- Dimensions (mm) : 250 x 360 x 150

- Masse à vide : ~ 500 g

 

 

 

 

 

                        ~ Moteur

 

Deux moteurs à courant continu alimentés en 12V.

-Inom= 1.45 A avec Imax 11 A

-2640 Tr/mm à 12 Volts et 3300 Tr/mm à 15 Volts

- Vitesse linéaire max. :1,3m/s

- Diamètre des roues : Ø50mm

- Voie : 230 mm

- Effort de poussée : 30 N ( »2 Kg )

 

 « moteur.tif »

Fabriquant dunkermotoren

Distributeur MDP

 

Partie électrique     

           

                        ~ Carte mère

 

                                   Cette carte contient la partie puissance. Elle permet d’alimenter le micro-contrôleur et les capteurs en 5V et gère l’alimentation des moteurs en 12V.

 

 

 

 

 

 

 

 

 

. Commande moteurs

 

 

 

                                   . Régulateur

 

                        Il nous permet de générer une tension de +5V pour le PIC.

 

                       

 

 

~ Carte micro

 

Elle supporte le micro contrôleur avec son quartz ainsi que de multiples borniers pour toutes les entrées sorties et connecteurs pour la liaison avec l’ICD*.

 

 

                                   . Oscillateur

 

Le microcontrôleur travaille à une fréquence de 20Mhz. Pour générer ce signal nous utilisons un quartz de 20Mhz selon le montage suivant :

 

                                  

 

                                   . PIC 16F877

 

Nous utilisons ce microcontrôleur pour commander le robot, car il peut créer deux signaux carrés de rapport cyclique variable, il gère une liaison I2C, il travaille à une fréquence de 20Mhz ce qui est relativement rapide. Et comporte une importante mémoire.

 

                        à Signal PWM          (cf. p. 57 de l’annexe 1).

 

                        On le retrouve sur les sorties RC1 et RC2.

Pour créer un signal PWM il faut choisir le mode PWM en écrivant dans le(s) registre(s) CCP1CON (CCP2CON) (cf. p. 58 de l’annexe 1). On précise la période du signal souhaité en écrivant dans PR2  valeur a calculer selon la formule :                 PWMperiode= [PR2+1]*4*Tosc             (cf. p.62 de l’annexe 1)

            Dans notre cas PR2=82, nous avons calculé PR2= 100 % du rapport cyclique du signal de 15khz (fréquence à laquelle les moteurs ne vibrent pas d’après le stagiaire allemand).

 Pour le mode PWM on indique la valeur du temps haut voulue dans CCPR1L (CCPR1L). Puis on observe le signal sur RC1 (RC2).

Nous générerons les deux signaux grâce à la fonction setdutycycle() qui se trouve dans le fichier PWM.c.

 

 

 à Convertisseur A.N.         (cf. p. 111 de l’annexe 1).

 

Pour convertir une tension analogique, il faut configurer le port A en entrée, choisir le canal à convertir, démarrer l’horloge et le convertisseur en écrivant dans ADCON1. On configure les interruptions avec les bits ADIF, ADEI et GEI (cf. p. 117 de l’annexe 1).

Ensuite il faut attendre un temps requis (cf. Equation 11-1 p. 111 de l’annexe 1), qui est d’environ 20µs. Démarrer la conversion attendre le temps d’acquisition et lire la valeur dans ADRESH ADRESL. Nous avons choisi de travailler seulement sur 8 bits donc notre résultat se trouve dans ADRESH (nous nous ne préoccupons pas des bits de poids faible : ADRESL(cf. REGISTER 11-2p. 112).

                        Pour convertir nous utilisons la fonction convcapt() dans le fichier CAN.c.

 

à Liaison I2C                       (cf. p. 71 de l’annexe 1).

 

                        Pour la liaison I2C nous utilisons les fonctions dans I2C.c

 

                                   . Liaison ICD

                        Cette liaison permet de programmer et de discuter (debug mode) avec le PIC par l’intermédiaire du logiciel MPLAB

 

 

 

 

 

 

 

 

                                   Carte ICD :

 

           

Connecteur :

 

 

~ Carte capteur de piste    (OPB704)

 

            Elle supporte cinq capteurs infrarouges alimentés en +5V. Ces capteurs sont utilisés pour détecter le scotch blanc grâce à l’émission et à la réception de lumière infra rouge.

                                     OPB704

            Nous avons été confrontés à plusieurs problèmes. La détection ne fut pas facile car le sol sur lequel nous avons fait les essais était plus ou moins gris, la valeur du seuil choisie afin de définir si oui ou non le robot se trouve au-dessus de la piste a été trouvée  à la suite de multiples essais. Cette valeur fut confirmée par la suite lorsque nous avons pu faire les essais sur la moquette.

 

             Nous disposons de cinq capteurs dont trois servent pour le suivi de ligne et les deux autres pour détecter les croisements et les raccourcis. Pour éviter d’utiliser le convertisseur analogique (donc pour gagner du temps et obtenir une valeur instantanée) nous utilisons des trigger de Schmitt afin de déterminer par un +5V ou un 0V (valeurs logiques) si le robot est sur la piste ou non.

 

 

 

 

 

~ Carte télémètre à ultra son        (SFR08)

 

                        C’est un système complet et autonome, il possède sa propre horloge.

Le télémètre à ultra son permet de mesurer une distance entre 43mm et 11m    (11 008mm). Il communique par liaison I2C. Il renvoie directement des valeurs en mètres, pouces et microsecondes, jusqu’au 17ème écho. Il est complété par un capteur lumineux qui est utile pour vérifier le bon fonctionnement de la liaison I2C et du module.

 

Ce capteur nous est nécessaire pour vérifier la présence d’un autre robot lors d’une intersection avec priorité à droite.

 

 

Location

Read

Write

0

Softwear

Revision

Command

Register

1

Ligth Sensor

Gain Register

2

1st Eco Hight

Byte

Rang Register

3

1st Eco low

Byte

N/A

~

~

~

34

17st Eco Hight

Byte

N/A

35

17st Eco Hight

Byte

N/A

 

Dans un premier temps nous n’arrivions pas à établir la liaison entre le télémètre et le µc, car le télémètre, étant fixé sur le toit de la carrosserie, engendrait trop de pertes dans le câblage de l’horloge. Il fallait placer un condensateur de 100pf entre l’horloge et la masse.

       

(SFR08)

 

~ Carte capteur tactile       (QT110)

 

Ce capteur est capable de détecter une proximité ou un contact par une variation de la capacité d’une électrode.

 

 

Principe de fonctionnement du QT110

Ce système est auto calibrée, cela évite d’avoir à le régler pour tout type d’utilisation. Un réglage de la sensibilité est tout de même possible, pour cela il suffit de changer la capacité Cs.

            

 

 

La figure précédente nous montre le schéma de câblage le plus simple. Nous avons rajouter une diode afin d’observer la valeur de la sortie qui est soit de +5V soit de 0V.

 

            Ce détecteur nous est utile pour la détection de la barre en bois situer en fin de parcours. Nous pouvons le câbler directement sur le PIC mais son signal de sortie n’étant pas réellement parfait, le PIC considère par foi que le capteur a détecté un objet et vie et versa. Ceci nous pose problème, car programmé sous IT (Interruption) cela forcé le programme sur la fonction d’arrivée, donc le robot coupe les moteurs. Pour remédier à cela il reste la solution du capteur de fin de course qui lui fonctionne comme un interrupteur mais il est plus complexe à installer car seule la partie mobile est de ~10cm par ~0.5cm.               

Pare choc.

Pare choc.

 

~ Carte AOP

 

 

Cette carte a été développé afin d’améliorer les temps de réponse du robot vis-à-vis de la correction des virages. Elle permet de fournir directement au PIC une valeur logique au lieu de passer par le convertisseur analogique. Elle n’a pas été retenu dans la configuration final pour les capteurs servant au suivi de ligne, mais pour les capteurs optionnels : raccourci et croisement.

 

Ce sont cinq AOP montés en comparateurs de tension avec un Hysteresis qui permet de régler le seuil analogiquement à l’aide des résistances variables.

 

~ Web-cam

 

Elle a pour utilité d’améliorer les temps de réaction du robot.

Commandé via Internet, elle a pour fonction d’analyser la piste suite à un traitement d’image. Elle remplace donc la carte des capteurs de piste.

Elle piloté par une carte qui contient le micro processeur C3088. Le tout étant indépendant.

 

 

Carte :

 

                        Micro processeur :

                       

 

Les plus :

Le grand plus de ce système est l’anticipation, car si on peut découvrir la piste avant d’avoir « le nez dessus », on pourra répartir les corrections de vitesse plus harmonieusement.

Elle fourni directement les corrections nécessaires. Elle dispose pour cela d’une sortie permettant de commander un cerveau moteur (CF Annexe Camera).

Programmé et testé sur le port série, directement reliée à un ordinateur et gérée par l’Hyper Terminal ou les commandes qu’offre MS-DOS, elle a le grand avantage d’être entièrement autonome.

Le traitement d’image étant fait par son propre micro contrôleur, cela allége de beaucoup notre PIC.

 

Les moins :

Développer en Java, c’est là où résidé le plus gros problème vu qu’aucune formation nous a été fourni (hors mis les documentations et les cours récupérés sur Internet (CF fichiers zip : cours de java )).

Avec une cadence de 6 images par seconde, cela reste limite.

Une alimentation spécifique comprise entre 6 et 7volts.

Les vibrations engendrées par le déplacement du robot laisse place à quelques centimètres d’incertitude.

 

Mise en place :

Tout d’abord il faut lancer le logiciel fourni avec celle-ci afin de régler le focus de la camera. Pour cela il faut tout simplement tourner l’objectif, faire des prises de vue, et vérifier si l’image obtenue est correcte (absence de flou).

Puis positionnement sur le chassi. Attention, il faut qu’elle soit exactement alignée avec l’axe du robot.

 

 

_ Pendant le concours

 

Partie mécanique :

 

            Lors du concours, notre carrosserie c’est avérée trop lourde alors on la supprimée. L’inertie du robot était trop importante, donc le robot oscillait sur la piste.

            Par ce fait, il a fallu trouvé un moyen rapide et efficace pour remplacer le par-choc. On a donc acheté, chez Farnell, un micro capteur type fin de course. Placé à une distance de 10cm devant le robot, il fut plus efficace que le par choc. Evitant un réglage fastidieux pour les enclenchements parasites dû aux vibrations et secousses que le robot connaît lors de ces déplacements.

 

            Un problème avec une roue, la liaison par encastrement ne tenait plus, nous obligea à changer celle-ci, du même coup, nos réglages du départ en aveugle fûent modifiés.

           

                        Partie électrique :

 

            On a supprimer le capteur à infra son qui communique par liaison i2c avec le PIC. Ayant des problèmes de dialogue avec celui-ci, cela ne nous permettait pas d’être fiable pour le parcours du robot et nous faisait rentrer en mode d’attente permanent.

 

            Stratégie :

 

Comme dit au par avant, on a opté pour la fiabilité du robot. Donc, perdant les quatre premières manches de la compétition, on a laissé de côté les gains de temps de 10s en partant à 20cm de la ligne (départ en aveugle), en supprimant la fonction raccourci et en travaillant uniquement sur le suivi de piste et l’arrivée.

 

4 Améliorations Envisagées :

 

_ Pour les capteurs 

 

Il faut absolument que les capteurs « collent » à la piste indépendamment du chassi du robot. La piste étant placée sur une estrade en bois, elle subissait des déformations suite aux grosses chaleurs du moi de juin. Donc, tous les réglages effectués sur les capteurs aux niveaux des seuils (capteurs analogiques) ont été faussés. Ce qui même aussi à proposer une fonction de calibrage des capteurs avant le départ.

 

Un positionnement dit en « râtelier » permettrait un balayage plus efficace et plus précis. Avec un nombre de huit capteurs indépendants, gérés par un PIC servant uniquement pour la conversion de tension et le renvoie permanent des informations de ces derniers. Positionner en arc de cercle, ils épouserons parfaitement les virages et seront, d’après moi, d’une efficacité redoutable.

 

De plus, ne surtout pas omettre l’éclairage du parcours. Pour cela un simple cache couvrant la totalité des capteurs sera valable.

 

Une caméra pourra être utilisé allégrement. Pour cela, réduire au maximum les temps d’analyse d’images en supprimant une bande sur deux ou plus. Pareillement, il faudra à tout prie, s’affranchir des problèmes de luminosités.

 

_ Partie électrique 

 

Un élévateur de tension sera le bienvenu. La piste ayant de grandes lignes droites, un temps important sera gagné, malgré tout, attention aux virages. Une accélération progressive et un net ralentissement en fin et en début de virage serra nécessaire.

 

De plus, pour une modularité optimale, un système d’insertion de carte enfichable serait adéquat. Type PCI ou nappe IDE.

 

_ Stratégie :

 

Il faut absolument avoir un robot fiable. Cette faille causa notre défaite lors du concours. S’affranchir du moindre problème, si nécessaire, supprimer des composants, des options. Car, un parcours non bouclé donne un temps de 240 secondes au lieu d’un parcours verrouillé environ en trente secondes. Un seul plantage du robot sur le circuit se paye cher. Majoré de 240s, cela a vite fait de nous donné les dernières places à se disputer.

 

Pour les essais, il faut tenir compte des différences entre les pistes d’essais et le parcours officiel. Le parcours officiel est plus éclairé, il présente des bosses et des parasites permanents (personnes proches de la piste, bordures, passage proche de l’autre robot).

 

Pour bluffer les autres robots : la couleur, les ultra sons.

Pour les robots utilisant des caméras, une couleur identique à la moquette ne leur permettront pas de faire le distinguo.

Pour les robots utilisant l’ultra son, des émetteurs renverront un signal simulant la présence du robot.

 

 

 

5 Conclusion :

 

 

            C’est un projet dans lequel il faut s’investir et être motivé.

            Il est intéressant par le fait que chaque équipe se doit de réaliser son propre robot, autant dans la partie programmation que fabrication comme l’implantation des différèrent capteurs ou la décoration. Il y a aussi la découverte de nouveau composant comme le QT110 ou le télémètre qu’il faut réussir à mettre en place et à utiliser. Et la découverte de nouveau langage (java), qu’il a fallu acquérir en un mois.

            De plus, le fait d’être autonome, nous laisse une large plage de manœuvre

            Enfin il faut se servir de sa tête pour trouver la panne, car bien souvent le robot ne réagit pas comme prévus à cause de la surface sur laquelle il roule, la luminosité...

 

Enfin, ce projet m’a montré à quel point la répartition des divers travaux est importante, en effet je pense que nous aurions pu approfondir notre travail et améliorer les performances du robot s’il y avait eu réellement répartition des tâches au sein de notre équipe.

 

 

Nous tenons à remercier tous les professeurs qui ont pu nous éclairer et surtout M ARLOTTO qui fut un tuteur fort sympathique, ainsi que notre magasinier qui a bien voulu accepter l’absence de bon de commande tout au long de cette année.

 

 

 

 

 

 

 

 

 

 

 

 

 

6 Description du  programme et des fonctions :