Soutenance de rapport de stage de Horace Gandji ASSOCIATION DU GOLF DE MESNIL CONCEPTION, DEVELOPPEMENT ET INTEGRATION DES SYSTEMES EMBARQUES DU ROBOT GOLF Soutenance de rapport de stage de Horace Gandji
PLAN Introduction Objectifs Architecture électronique du robot Travaux réalisés Bilan Conclusion
INTRODUCTION
OBJECTIF Faire ramasser des balles de golf par le robot de façon autonome sur un terrain
ARCHITECTURE ELECTRONIQUE DU ROBOT Boussole Détection d’obstacle Contrôle des moteurs BUS CAN PC embarqué ? Gestion des batteries GPS embarqué Contrôle réservoir de balles
TRAVAUX REALISES Implantation du CAN sur les différents modules Mise en œuvre de Linux sur le PC embarqué Conception et programme de localisation dGPS Intégration des différentes cartes au robot
Implantation du CAN 3 types de microcontrôleurs PIC18F458 dsPIC6014A 60LF2407 SJA1000
Implantation du CAN Structure générale des ID xxxxxxxx eeeee cccccccc yyyyyyyy 3 types d’identifiant Commande de type carte Trame pour les message d’erreur entre cartes Trame signal
Implantation du CAN Commande de type carte cccccccc 01010 ssssdddd rppppppp Paramètre Réseau Destinataire Émetteur Extension de la commande Commande
Implantation du CAN Trame d’erreur 10000000 00001 00000000 nnnnnnnn Trame signal cccccccc 0110 nnnnnnnn rppppppp
Implantation du CAN Start of frame : 1 bit Arbitration Field : 32 bits Charge du bus et choix du débit Start of frame : 1 bit Arbitration Field : 32 bits Contrôle Field : 6 bits Data Field : 0 à 8 octets CRC Field : 16 bits ACK Field : 2 bits End Of Frame : 7 bits
Implantation du CAN m : Nombre maximum de trame par seconde n : Nombre d’octets de données Pour n = 8 et m = 17 on obtient 1545 bits/s
Mise en œuvre de Linux sur le PC embarqué Outils nécessaires Hôte vi Arm-linux-gcc Minicom Serveur NFS Serveur SSH Cible Support des fichiers NFS Client SSH Cible Liaison série Hôte Liaison éthernet
Modification et intégration du driver Can4linux 3 fichier à modifier dans les sources de Can4linux: Makefile DCAN_SYSCLK = 16 (qwartz) core.c #if defined(ATCANMINI_PELICAN) Base[i] = 0xF1000300; IRQ[i] = 106; Baud[i]=1000; Outc[i] = 0x8a; #endif
sja1000.h #if CAN_SYSCLK == 16 /* these timings are valid for clock 16Mhz */ #define CAN_TIM0_125K 0x43 #define CAN_TIM1_125K 0x1C #define CAN_TIM0_250K 0x41 #define CAN_TIM1_250K 0x1C #define CAN_TIM0_500K 0x40 #define CAN_TIM1_500K 0x1C #define CAN_TIM0_1000K 0x40 #define CAN_TIM1_1000K 0x14 #define CAN_SYSCLK_is_ok 1 #endif
Deux fichiers à modifier dans les sources du noyau nom_noyau/driver/char/Makefile $(CONFIG_CAN4LINUX)+=Can4linux/ Nom_noyau/driver/char/Kconfig Source ‘’driver/char/Can4linux/Kconfig’’ Copier enfin les sources du module dans nom_noyau/driver/char
Conception et programme de localisation dGPS Trame GPGGA ZigBee Balise GPS GPS embarqué Bus CAN Traitement des 2 trames GPGGA Latitude et longitude sur le bus CAN
Balise GPS GPS embarqué Puce GPS SIRF 3 Module ZigBee Module ZigBee UART 1 UART 2 Balise GPS Microcontrôleur Bus CAN GPS embarqué
Intégration des cartes Conception et réalisation d’une carte de fond de palier
BILAN
Bilan logiciel de localisation par dGPS Réalisés et testés - Sauvegarde et traitement de la trame GPS - Envoie (sur demande ou à intervalle de temps régulier) par le bus CAN de la latitude et la longitude, ou les écarts latitudes ou longitude Reste à faire - Tester la réception d’une bonne trame GPGGA avant le traitement
Bilan logiciels supervisions Réalisé et testé: - Démarrage automatique du logiciel de supervision au reset du PC embarqué - Menu de dialogue avec chacun des modules - Sauvegarde des trames circulant sur le bus CAN - Mission préprogrammée Reste à faire: - Implanter le modèle du terrain - Développer le logiciel de supervision - Développer le programme de correction de trajectoire en cas de glissement du robot - Interprétation les trames de messages d’erreur de fonctionnement et envoie par le web
Bilan logiciel carte à ultrason Réalisés et testés par ERLEM et SISSI - Calcul de la distance de l’obstacle au robot - Calcul de l’angle entre la direction de l’obstacle et l’axe du robot - Pilotage de la tourelle Reste à faire - Concevoir l’architecture logiciel de communication avec le superviseur en respectant la convention relative au ID
Bilan logiciel contrôle réservoir de balles Réalisés et testés - Menu de commande du moteur pour déterminer l’offset PWM - Un programme de contrôle du réservoir Reste à faire - Amélioration programme de contrôle du réservoir afin de gérer efficacement le capteur de détection du niveau de remplissage du réservoir - Concevoir l’architecture logiciel de communication avec le superviseur en respectant la convention relative au ID
Bilan logiciel contrôle moteurs Réalisés et testés - Fonctions de régulation et d’asservissement de vitesse et de position - Contrôle du déplacement du robot en gardant un cap - Menu de commande à distance du déplacement du robot Reste à faire - Concevoir l’architecture logiciel de communication avec le superviseur en respectant la convention relative au ID
Bilan carte gestion des batteries Réalisé et testé - Premier prototype de la carte - Développement des fonctions de mesure de courant et tension Reste à faire - Reprise de la conception et la réalisation de la carte - Conception et développement du logiciel embarqué de gestion des batteries et de dialogue avec la supervision
Bilan logiciel boussole Réalisé et testé - Programme d’étalonnage - Programme de cal cul du cap
Conclusion Avancement du projet - Tout ce qui est bas niveau est fait à 80% - Le logiciel de supervision est à l’état embryonnaire Le plus dur est fait, reste un gros travail pour la supervision: - implanter le modèle du terrain - Interprétation les trames de messages d’erreur de fonctionnement et envoie par le web
Démo