Capteur de distance infrarouge Gravity DFRobot utilisé par exemple pour détecter le rebord d'une table et éviter que votre robot ne tombe. %             '             ;8; " 8                9&:;8                              8'                      ; " 8              ) ! La singularité de ce sujet nous a permis d’acquérir des connaissances dans des domaines techniques variés, de développer de nouvelles compétences et surtout de faire appel sans cesse à notre créativité et notre esprit scientifique pour répondre aux exigences de cette grande compétition. En 4. Notre alimentation externe est montée sur la carte en connectant les bornes de la batterie aux les fils qui conduisent l’alimentation aux bornes à vis-Vin et GND, en prenant soin de respecter les polarités. Nous avons pu ainsi acquérir plus rapidement les connaissances nécessaires et réutiliser une partie de leur travail pour notre projet, comme l’algorithme du calcul de chemin. Nous avons pour cela pensé à utiliser un capteur de distance qui s'orienterait dans toutes les directions, nous donnant ainsi un "nuage de point" utilisable par la suite pour reconstituer les formes présentes dans la pièce. Il y aura quelques lectures redondantes, mais il s'agit d'assurer la détection correcte si quelque chose est en mouvement. La méthode utilisée ici est la suivante : Chronogramme des signaux de sortie du codeur rotatif. En ce qui concerne le capteur laser ToF lui-même, il n'a pas répondu à mes attentes et a dû opter pour une autre solution. Notre groupe de projet transverse apprécie particulièrement de travailler sur cette coupe de robotique. La conclusion que l’on peut tirer de ces données est que le capteur IR est très directif. Nous avons également appris au fur et à mesure à nous organiser en tant que groupe soudé alors que nous n’avions pas les mêmes affinités et centres d’intérêt au départ. Pour déterminer le gain KI, nous avons tracé de manière expérimentale et en étude statique I en fonction de Sr (vitesse demandée à l’entrée). directe de la mesure issue du capteur de vitesse dans des applications d’entrainements électriques. Minimaliste comme montage non ? int etat_gauche_droite; boolean obstacle_avant; #define GAUCHE 0 #define DROITE 1 long tempo_gauche; long tempo_droite; boolean trig_tempo_gauche; boolean trig_tempo_droite; int arrayIndex2 = 0;                        int total1 = 0; int averageDistance1 = 0; int averageDistance2 = 0; int echoPin1 = 2; int initPin1 = 3; int echoPin2 = 4; int initPin2 = 5; unsigned long pulseTime1 = 0; unsigned long distance1 = 0; unsigned long pulseTime2 = 0;                    unsigned long distance2 = 0; pinMode(initPin1, OUTPUT);                     // définit init pin 3 comme une sortie pinMode(echoPin1, INPUT);                      // définit echo pin 2 comme une entrée   pinMode(initPin2, OUTPUT);                     // définit init pin 5 comme une sortie   pinMode(echoPin2, INPUT);                      // définit echo pin 4 comme une entrée, for (int thisReading = 0; thisReading < numOfReadings; thisReading++) { readings1[thisReading] = 0; readings2[thisReading] = 0;  }, // initialise le port série, pour permettre l'affichage, etat_gauche_droite = GAUCHE;      trig_tempo_gauche = false;      tempo_gauche = 0; trig_tempo_droite = false;      tempo_droite = 0;  }. Nous pouvons mesurer le courant traversant le moteur à courant continu en lisant les broches SNS0 et SNS1. Capteur pyroélectrique à lentille de Fresnel conçu pour détecter la présence de personnes et/ou d’animaux. Il y a deux broches pour diviser la fréquence de la place des vagues S0 et S1, et deux épingles pour sélectionner la couleur du filtre S2 et S3. % %                                                                                                                                                     $                  %                   . V=f(Sr). Ainsi, le robot principal aura pour tâche de : (par ordre de priorité), 2. Remarque : Les calculs de la distance restante d et de l’orientation ? Nous avons gardé le matériel de l’année dernière à savoir : –    un microcontrôleur Arduino AT MEGA 2560, Figure 6.1 – Odomètre utilisé (celui de l’année dernière). Chaque verre dans sa zone rapporte 4 points à l’é : Les robots sont encouragés à réaliser des pyramides avec les verres. Compte-tenu de ces observations, nous allons placer 2 capteurs ultrasons à l’avant et un capteur IR à l’arrière pour chaque robot. C’est pour quoi, et puisque l’utilisation de deux robots est autorisée, notre groupe a décidé de concevoir deux robots, et de leur répartir les tâches. Le rôle du processeur, en fait du programme associé est donc double : Il doit générer les consignes de position et assurer l’asservissement avec une correction PID ( toutes les 5 ms).Jusque là, rien d’original et une solution matérielle classique consiste à utiliser le composant spécialisé LM629 Precision Motion Controller qui permet de décharger le processeur central de cette double tache. // Ports de communication   pinMode(led, OUTPUT); Serial.begin(19200); // ouverture + débit du port série (usb) en bauds, Serial1.begin(9600);  // ouverture + débit du port série 1. pinMode(DIRA,OUTPUT);   pinMode(DIRB,OUTPUT);   digitalWrite(DIRA,HIGH);   digitalWrite(DIRB,HIGH); pinMode(PWMA,OUTPUT);   pinMode(PWMB,OUTPUT);   analogWrite(PWMA, 0);   analogWrite(PWMB, 0); pinMode(BRAKEA,OUTPUT);   pinMode(BRAKEB,OUTPUT);   digitalWrite(BRAKEA,LOW);   digitalWrite(BRAKEB,LOW); Serial.println("Console du programme du super automate :"); Serial.println("-------------------------------------------- "); // **************************************************************** // FONCTIONS. On voit que la tension n’est pas une fonction monotone de la distance. Contrairement aux capteurs IR, ils sont capables de détecter un obstacle situé à quelques centimètres (environ 3cm), avec une précision beaucoup plus appréciable. J’ai utilisé une led rgb KY-016 pour montrer ce que l’on peut faire avec un capteur infrarouge, ici récupérer une information donnée par la télécommande et l’utiliser dans notre programme. –    Les arbitres se réservent le droit d’attribuer, à tout instant, une pénalité de -30 points à une équipe en cas d’incident découlant du non-respect des règles (comme par exemple, heurter et renverser le robot adverse). Figure 6.4 – Schéma bloc des deux boucles fermées (source RCVA). Au vu du travail conséquent à réaliser et du nombre d’heures consacrées au projet, nous ne pouvons produire et présenter un robot prêt et fonctionnel pour le 11 janvier; notre objectif principal est donc d’achever la conception du robot et l’usinage des pièces dans le temps imparti. Nous comptons éprouver nos modèles avec davantage d’expériences et de tests et continuer à nous préparer pour la coupe du 08 Mai. %, %                                                               /                                        %, #                                                                                                         #, 0 #                       #                                                                                 0 #, #                                                                                   &                                                0 #, #          #                                                                           &                   !$ #                       #, ##                                                                           &                                                        #, &                %                      #                       $           -, %                                                                                                                                                                % ) -, 0 #                                          !         " L’assemblage du robot, les tests et sa finalisation se feront en vue de la Coupe de France le 20 Mai. (position_roue_D + position_roue_G), ?n= ?o + (position_roue_D - position_roue_G). Cette édition spéciale constitue un challenge intéressant pour nous et nous a amené à chercher de nouvelles solutions techniques afin d’optimiser l’exécution des tâches de base des robots et de leur laisser assez de réactivité pour marquer des points. La pièce en bois représentant le cadeau basculera et révèlera la face « cadeau ouvert ». Néanmoins, rares sont les capteurs de distance satisfaisants, souvent en raison d'une portée maximale trop faible. On note que suite à la, phase précédente, le robot est capable d’atteindre la vitesse souhaité. Figure 4.8 – Dispositif de lancer de cerises du petit robot, Figure 4.9 – Membre articulé motorisé pour éteindre les bougies (jambe Lynxmotion THLEG3BLK). A noter qu’une bande noire sera tracée au sol afin de permettre aux robots, s’ils disposent des capteurs et de la programmation adaptée, de se repérer. –    Chaque match se joue entre deux équipes, et dure 90 secondes. –    Chaque robot doit être parfaitement autonome et aucune intervention humaine n’est autorisée pendant les 90 secondes. ', %         '                          8               :8                                                    ! ' (zones bleue et rouge) : Les zones de départ : chaque robot commence dans une des 5 cases que comporte sa zone, il doit être en contact avec le rebord et ne pas dépasser de celle-ci. –    2 TinkerKit connecteurs pour la DHT interface (en blanc à 4 broches), l’un pour l’entrée et l’autre pour la sortie, pour la communication avec notre carte BeagleBone. –    Chaque robot doit respecter des limitations de taille. Les coordonnées du robot sont prises au milieu de l’essieu des roues, l’orientation ? Avant cette étape, nous avons reçu un premier robot, les tests ont donc eu lieu sur celuici. %, %                                                                                                       %, #                                                        1 %                                        # $, 9 &                                                            #                                                                  9 &, %                           %          4         :%                                                                         ;                                                                 #, ! Le code déterminant la présence d’obstacle a été bien avancé et des tests sur le terrain permettront de placer les capteurs de façon plus précise. Cette carte a l’avantage d’offrir une rapidité de calcul très performante et une connectivité très diverse : Ethernet, USB, Série C’est l’équivalent d’un micro-ordinateur. Chaque cerise blanche dans un panier rapporte 2 points à l’équipe de la même couleur. Suivant la distance à laquelle se trouve l’obstacle, le récepteur recevra plus ou moins de lumière infra-rouge réfléchie. 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. En effet, par exemple, les conditions pour réaliser la fiche Ouvrir un Cadeau ne sont pas les mêmes que pour réaliser la fiche Ramasser un Verre. Ce récipient a été conçu avec un trou vers le bas excentré pour favoriser l’« écoulement des balles ». Annexe. #                                                                                 &, ##                      &           &             !              " Cela peut aussi permettre de repérer un contact avec un obstacle. Il existe quatre types de filtres : un filtre clair, vert, rouge et bleu. Par exemple, FAOuvrirCadeau contient les même fonctions que la classe mère, avec un attribut supplémentaire un Cadeau, correspondant au Cadeau à ouvrir. L’écart entre ces 2 valeurs est appliquée à un correcteur PID (Proportionnel Intégral et Dérivé) qui calcule la commande appliquée au moteur par l’intermédiaire de l’amplification de puissance. Ce qui permettra de baisser le module d’aspiration puis de le remonter au-dessus de la cuve de récupération des cerises/balles de Pingpong. %          %                                                                                                ;                                                            ! %                                                    :                                                                                                                 # ! Sur le plan matériel, l’Ecole Centrale Marseille nous fournit les ressources nécessaires. Figure 9.1 – Représentation du chemin calculé pour aller ouvrir un cadeau depuis une position initiale sans prendre en compte la taille du robot (à gauche) et en prenant en compte la taille du robot (à droite). Cette structure de ventouse a deux degrés de liberté (translation et rotation en direction z) réalisés par deux moteurs. Nous avons choisi d’utiliser une BeagleBone. Une LED bleue est directement branchée avec la sortie 13 de la carte Arduino, la LED clignote pour N foies lorsque on détecte une personne (N ajustable par l’utilisateur). •    La variable de comptage contiendra donc le nombre de pas angulaire relatif effectué par le codeur rotatif depuis le début de l’exécution du programme Arduino. La forme générale d’une fonction de calcul de score est un nombre proportionnel aux points que l’on gagne en réalisant l’action et inversement proportionnel au temps qu’il faut pour réaliser l’action. %                                          :                                                                                                            $, %             4         :                  %                                              & $                    %, %                                       8               :8                                                                                                          #. Les solutions techniques retenues pour les réaliser seront détaillées dans une autre partie. Conclusion des matchs : Lors des phases qualificatives (comportant entre 3 et 5 matches selon la rapidité de l’équipe à passer l’homologation de ses robots), l’équipe qui aura plus de points que son adversaire sera déclarée gagnante.Ensuite, pour le classement global, seront attribués : –    3 points bonus à chaque équipe en cas d’égalité, –    0 point à une équipe déclarée forfait. switch (etat_gauche_droite){     case GAUCHE: digitalWrite(initPin1, HIGH);                    // envoie une impulsion de 10 microsecondes delayMicroseconds(10);                  // attend 10 microsecondes avant de s'arrêter         digitalWrite(initPin1, LOW);                     // arrête d'envoyer l'impulsion, pulseTime1 = pulseIn(echoPin1, HIGH);             // mesure le temps de l'impulsion retour         distance1 = pulseTime1/58;                        // Distance = pulse time / 58 (pour avoir des cm)          total1= total1 - readings1[arrayIndex1];           // soustrait la dernière distance readings1[arrayIndex1] = distance1;                // ajoute la distance lue à la liste         total1= total1 + readings1[arrayIndex1];            // ajoute la valeur au total         arrayIndex1 = arrayIndex1 + 1;                    // va au prochain élément de la liste. Par exemple, on a créé une classe Cadeau représentant les cadeaux avec comme caractéristique un point pour sa position, un booléen pour savoir s’il est ouvert ou non et une chaîne de caractère pour modéliser sa couleur. On parle aussi de capteur Pyroélectrique ou PIR. %, %                                                #                                                                                      ! Difficulté : 1/5 Temps d'exécution : 15 min Matériel nécessaire : Un capteur PIR HC-SR501 Une carte arduino Uno 3 fils mâle femelle Le capteur de mouvent ou PIR ( )HC-SR501 que nous allons utiliser ensemble est un capteur capable de détecter les mouvements. %               '                            %, %                                                                                                                                                                             %. Dans le grand robot, il existe trois structures cylindriques pour mettre trois verres dans chaque cylindre les uns sur les autres. Grâce à ces deux courbes, nous avons l’expression de la fonction de transfert moteur + pont en h en étude statique. &                                         ', %         '                                   :                                                                ! ' Minimaliste comme montage non ? représentant l’angle orienté formé par l’axe longitudinal du robot par rapport à l’axe des Y. Cependant les cartes doivent être alimentées sous 5v. ... Ce module communique avec un microcontrôleur type Arduino ou une carte Raspberry Pi via une sortie digitale. 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.