La répartition du travail au sein de notre groupe de PT se fait comme suit : La CAO, la partie mécanique et programmation bas niveau - cartes Arduino - sont assurées par Sara El Afia, Yuan Tian ainsi que Axel Jardin. Pour optimiser l’intelligence artificielle, on améliore ces fonctions de calcul de score en testant et simulant des matchs de 90 secondes pour déterminer les coefficients pour augmenter le nombre de points obtenus à la fin et ainsi les chances de victoires. Une lumière émise par une Led traverse les fentes et éclaire des capteurs optiques (phototransistors) . Capteur Infra-rouge Passif. L'image infrarouge est ensuite transmise par bluetoth au téléphone pour affichage. Les deux lignes suivantes permettent de configurer le fichier ttyO1 utilisé pour la réception et l’émission des caractères en C. Enfin la commande ./start permet de lancer le programme au démarrage. Solution qui a le mérite de la simplicité avec toutefois des limites en performance. Nous avons déterminé, les coefficients du correcteur (PI au début) grâce à la méthode de Ziegler-Nichols. #define encoder0PinA 2 #define encoder0PinB 4 volatile unsigned int encoder0Pos = 0; void setup() { pinMode(encoder0PinA, INPUT); pinMode(encoder0PinB, INPUT); attachInterrupt(0, doEncoder, CHANGE); // L'interruption externe 0 est affectée à la broche 2 de l'Arduino, void loop(){ if (encoder0Pos!=encoder0Pos_prev){ Serial.println(encoder0pos,DEC); encoder0Pos_prev = encoder0Pos;}}} void doEncoder() {, /* Si le signal A et le signal B sont tous les deux à 1 ou à 0, * la rotation a lieu dans un sens (sens horaire par exemple). Nous avons pris ces éléments en compte, nos nouvelles cartes et matériaux nous permettront un gain de place non négligeable dans le robot et des coûts réduits. Si on est suffisamment rapide pour récupérer les 9 verres. Il suffit alors d’intégrer le vecteur vitesse à chaque période d’échantillonnage pour connaître la position du robot. Réalisation : Création d’une classe mère FicheAction (avec comme paramètre le robot sur lequel porte l’IA ainsi que le Plateau. (cf.annexe Localisation). //tout droit printf(" Dans E "); aAjouter = 3; //tout droit printf(" Dans S "); aAjouter = 3; //demi-tour + avance printf(" Dans S "); aAjouter = 1; //liste_variable[i] = 't'; ajouterDansListeVariable(); orientation = 'N'; printf("puis dans N "); //tourne droite + avance printf(" Dans S "); aAjouter = 2; //liste_variable[i] = 'd'; ajouterDansListeVariable(); orientation = 'O'; printf("puis dans O "); //tourne gauche + avance printf(" Dans S "); aAjouter = 4; //liste_variable[i] = 'g'; ajouterDansListeVariable(); orientation = 'E'; printf("puis dans E "); //tourne gauche + avance printf(" Dans O "); aAjouter = 4; //liste_variable[i] = 'g'; ajouterDansListeVariable(); orientation = 'S'; printf("puis dans S "); //tourne droite + avance printf(" Dans O "); aAjouter = 2; //liste_variable[i] = 'd'; ajouterDansListeVariable(); orientation = 'N'; printf("puis dans N "); //tout droit printf(" Dans O "); aAjouter = 3; //demi-tour + avance printf(" Dans O "); aAjouter = 1; //liste_variable[i] = 't'; ajouterDansListeVariable(); orientation = 'E'; printf("puis dans E "); printf(" --> %c <--\n",liste_variable[i]); if (i==Get_tailleFermee()) {condition = 0; printf("Le robot est arrive a destination : [%d; %d]",abs,ord);}, # $ $ ! Mais nous avons remplacé les deux hacheurs par notre carte Arduino Motor Shield présenté à la partie 5. #, & $ !8, % : & $ $ !8, % ' % 4 :4 ! ' Pour chaque type d’action, on crée une classe avec les fonctions virtuelles héritées de la classe mère et des attributs qui leur sont propres. Comme nous n’utilisons pas de balises pour rafraîchir la position du robot par odométrie externe car ces balises restent brouillables comme tout système externe et car les temps de mesure sont souvent excessifs et incompatibles avec les déplacements rapides durant un match de 90 secondes, nous avons donc besoin de pouvoir corriger les erreurs de l’odométrie interne lors des glissements du robot. On a réalisé l’adaptation de la fonction traceObstacles() permettant de tracer les obstacles fixes en modifiant le code pour prendre en compte le terrain de jeu de cette année. Afin d’obtenir la communication la plus simple et efficace possible, nous avons créé un programme supplémentaire, appelé lancerConversion(). (zone jaune) : La zone centrale, où seront disposés les verres. Les tâches du Petit Robot sont de rassembler les cerises, de les lancer au-dessus du gâteau dans le panier de points et éteindre les bougies de la couleur de notre zone de jeu et les bougies blanches qui rapportent des points aux deux équipes et un bonus non négligeable de 20 points si elle sont toutes éteintes à l’issue du match. La table de jeu se présentera comme ce qui suit : Soit une table rectangulaire de 3m par 2m avec des bordures. Ainsi, tout le terrain sera modélisé. Ceci nous a permis de collecter diverses informations : nous avons ainsi noté que la plupart des équipes utilisaient des matériaux bon marché et facilement usinables tels que le plexiglas, PVC, le bois Une grande partie d’entre eux possédait également un nombre de cartes électroniques réduit par rapport à nous. Pour la simulation, elle sert à savoir quel chemin adopter pour aller d’un point A à un point B de la façon la plus rapide en évitant les obstacles, avec la fonction passage() qui ressort les points par lequel le robot doit passer pour atteindre son objectif.
Thibaut Vion Linkedin, Rtl2 Double Expresso Justine, Citation Sur Le Passé Et L'amour, Chronique Littéraire Radio, Origine Expression Bête De Somme, Mon Très Cher En Anglais, Dresser Un Portrait Définition, Lettre De Contestation Amende Covid, Canal Football Club Samedi, Le Référé-liberté Dissertation, Outil Chirurgical 5 Lettres, Malacia Fifa 21,