Binome2015-3

De Wiki de bureau d'études PeiP
Révision datée du 7 mai 2016 à 23:14 par Aknockae (discussion | contributions) (Assemblage du robot)

Introduction

Dans le cadre de ce bureau d'étude, nous avons pour rôle la réalisation d'un robot capable de participer à un match de foot particulier.

Ce wiki relatera les tâches accomplies à chaque séance dans le journal de bord, le raisonnement suivit pour la réalisation des différents éléments du robot ainsi que les difficultés que nous avons rencontrées.

Aptitudes du robot compétiteur

  • Le robot doit éviter des obstacles (autres robots,buts,...)
  • Le robot doit repérer les lignes du terrain (les suivre pour sortir/rentrer dans le garage, ne pas sortir du terrain)
  • Le robot doit reconnaître la balle
  • Le robot doit savoir récupérer la balle
  • Le robot doit savoir envoyer la balle
  • Le robot doit savoir communiquer avec le ramasseur, les buts et le robot adverse.

Journal de Bord

Séance 1

  • Présentation du projet
  • Choix des composantes du robot joueur: châssis deux roues pour faciliter les rotations
  • Début de l'assemblage du châssis.

Séance 2

  • Finalisation montage moteur + boite piles + roue libre sur le chassis
  • Découverte de la programmation arduino + fonctionnement moteur

Séance 3

  • Première mise en marche des moteurs : direction + vitesse de rotation

Séance 4

  • Imagination de la pince

Séance 5

  • Prise en main du logiciel Free Cads pour modéliser la pince

Séance 6

  • fin de la modélisation de la pince avec Free Cads

Séance 6

  • Première utilisation des phototransistors et détermination de la résistance nécessaire (3000 ohm)
  • Première utilisation du servo-moteur à l'aide d'Arduino
  • réflexion sur le train d'engrenages à utiliser pour faire fonctionner la pince

Séance 7

  • modélisation sur Free Cads du train d'engrenage
  • modélisation sur Free Cads des supports nécessaire au maintien de la pince

Séance 8

  • Début de la modélisation du PCB sur Fritzing
  • Pince robot imprimée
  • Création du programme de détection de la balle par les 5 capteurs infrarouges placés devant le robot.

Séance 9

  • Modélisation du PCB moteur qui sera placé au dessus de la carte Arduino.
  • Suite de la programmation du programme de détection de la balle

Séance 10

  • Retour sur décision. il faut placer 2 capteurs de lignes sur le PCB, il est beaucoup plus difficile de faire suivre une ligne au robot avec un unique capteur de ligne.
  • suite de la programmation du programme de détection de la balle

Séance 11

  • fin de la programmation du programme de détection de la balle

Séance 12

  • Fin de la modélisation du premier PCB, début de la modélisation du second PCB
  • Tests du programme de détection de la balle peu concluant : problèmes de court-circuits entre les LED et la carte Arduino. Il faudra refaire des tests lorsqu'on aura les deux PCB

Séance 13

  • Programme pour éviter les obstacles

Séance 14

  • amélioration du programme de détection de la balle

Séance 15

  • programmation du mouvement du servomoteur pour ouvrir, fermer et tirer avec la pince

Séance 16

  • obtention du train d'engrenage : trop de frictions entre les engranges, ils ne tournent pas correctement ==> nouvelle impression du support des engrenages

Séance 17

  • Test du train d'engrenage : les roues dentée rengrènement correctement.
  • programmation du suivi d'une ligne par le robot à l'aide des deux capteurs de lignes.

Séance 18 : 18/04/2016

  • obtention du second PCB : soudure
  • programmation du suivi d'une ligne par le robot à l'aide des deux capteurs de couleur

Séance 19

  • obtention des supports de la pince

Séances du 02/05 au 04/05

  • fin de l'assemblage du robot avec les PCB fonctionnels et la pince fixé
  • rectification des programmes et tests sur le robot : capable de suivre la ligne, de ne pas sortir du terrain, de suivre la balle, de l'attraper et de tirer et d'éviter un obstacle

Séance 20 : 09/05/2016

Photos Chassis

Pince

Le système utilisé pour prendre et propulser la balle infrarouge est une pince qui éjecte la balle, lors de son ouverture.

La motorisation de cette pince est réalisé par un unique servomoteur. Un train d'engrenage servira à transmettre la rotation du servomoteur aux 2 parties de la pince.


Nous avons choisi un tel dispositif car cela ne nécessiterai qu'un seul servomoteur, ce qui nous permet d'économiser de l'espace à l'avant du robot, les servomoteurs étant plutôt volumineux. En effet les phototransistors, les capteurs de couleurs ainsi que le capteur ultrason se trouvent à l'avant du robot.

Pour réaliser la pince, nous avons d'abord dû effectuer des recherches afin de sonder les différents mécanismes que nous pourrions utiliser. Ayant quelques connaissances sur le fonctionnement des engrenages, nous nous sommes dis qu'un système peut être plus compliqué mais plus ergonomique serait préférable.

Pour réaliser la pince nous avons d'abord dû apprendre à prendre en main le logiciel de modélisation 3D Free Cads. C'est à ce moment que nous avons effectuer une première répartition des tâches au sein de notre groupe : l'un s'occupait des deux troncs principaux de la pince et des supports, l'autre des engrenages nécessitants plus de recherche.

Nous avons souvent dû effectuer des transformations, notamment sur la taille des éléments de la pince afin que tout les éléments du robot puissent fonctionner ensemble. En effet, nous avons choisis de tester tout le matériel mis à notre disposition le plus tôt possible afin d'estimer quel serait leur meilleur placement sur le robot, leur nombre nécessaire avant de finaliser la pince, que nous pouvions alors adapter à nos besoins.

Le principal soucis que nous avons rencontré fut le peu de disponibilité de l'imprimante 3D nécessaire à l'impression de le pince et de ses composantes. Il nous aura fallut parfois un mois avant de ppuvoir imprimer une pièce. C'est pourquoi nous avons commencé par réaliser la pince avant tout autre chose.

PCB

Oublie pas de causer des soudures biloute

Assemblage du robot et problème du PCB

Nous avons commencés à assembler notre robot après l'obtention des PCB et après avoir soudé dessus tous les composants nécessaires. L'utilisation des PCB simplifiait les branchements sur le robot malgré que de nombreux fils étaient toujours nécessaires. Il fallait donc souvent se référer au schéma du PCB et être rigoureux. Après avoir assemblé tous les composants, fils et PCB sur le robot, nous avons constaté un cour-circuit dans le PCB où sont reliés les différents capteurs (capteur ultrason, capteur de ligne, phototransistor, servomoteur). Nous avons donc réinstallé un à un sur le PCB les différents capteurs pour déterminer l'origine du court-circuit. Le capteur ultrason était en effet mal installé : l'emplacement du capteur était inversé. Au lieu d'être orienté vers l'avant, l'emplacement sur le PCB est prévu pour un capteur à ultrasons orienté vers l'arrière du robot.

Bien que le PCB ne soit pas correct nous n'avons pas décidé d'en refaire un. Des fils ont donc été utilisés pour faire la connexion entre le capteur et le PCB.

Programmation capteurs de ligne

A l'aide des capteurs de ligne, notre robot peut suivre une ligne noire ou effectuer une rotation lorsqu'il capte une ligne et qu'il ne doit pas sortir du terrain. Afin de faciliter le suivit de ligne du robot ou d'éviter qu'il sorte du terrain, nous avons eu l'idée d'installer deux capteurs de lignes de chaque côté du robot, juste devant les roues. lors du suivit d'une ligne, le robot pouvait ainsi plus facilement se remettre dans le droit chemin dès qu'un capteur captait une ligne noire. De même, lorsqu'on voulait qu'il ne sorte pas du terrain, l'utilisation de deux capteurs nous permettait de savoir de quel côté tourner pour ne pas sortir du terrain.

Le problème rencontré fut que lorsque le robot allait trop vite, il passait trop rapidement au dessus des lignes, le robot n'avait pas le temps de réagir qu'il était soit déjà sorti du terrain, soit il ne suivait plus la ligne (lorsqu'il arrivait à un croisement).

Programmation des phototransistor afin d'attraper la Balle

Le premier problème rencontré fut de différencier les rayon infrarouges émis par l'environnement du robot de ceux émis par la balle. Comme la balle émet des rayons infrarouges qui varient avec le temps, nous avons réalisé un algorithme qui prend en compte les deux valeurs extrémales perçues par les phototransistors sur un intervalle de temps au moins égale à une période d'émission de la balle. On soustrait alors la valeur minimale à la valeur maximale et si le résultat est très faible c'est que la balle n'a pas été détectée. Sinon c'est que la balle se trouve en face d'un phototransistor.

Nous avons choisi d'utiliser 5 phototransistors placés à l'avant du robot afin de couvrir un angle important tout en permettant de définir avec précision la position de la balle par rapport au robot. En effet, si le robot ne perçoit pas le signal caractéristique de la balle, il effectue une rotation d'environ 40° jusqu’à percevoir la balle. Le phototransistor qui perçoit la balle est alors celui qui est en face de la balle. le robot n'a plus qu'à effectuer de faibles rotations jusqu’à ce que le phototransistor du milieu soit en face de la balle (c'est alors celui qui perçoit le signal le plus fort). Le robot doit alors avancer tout droit dans la direction de la balle.

Un autre problème fut de définir avec précision le distance séparant la balle du robot afin de définir quand fermer les pinces.

Déroulement d'un match

  1. le joueur sort de son garage
  2. il cherche la balle
  3. il prend la balle et demande l'activation de la balise du but
  4. il tire dans le but adverse et demande la désactivation de la balise du but
  5. il y a un but
    1. le robot joueur retourne dans son garage, l'algorithme du robot retourne à l'état 1
  6. il n'y a pas but
    1. l'algorithme du robot retourne à l'état 2

Conclusion

Bien que notre robot ne respecte pas l'algorithme fixé en début de projet, il est pourtant capable de réaliser toute les opérations (excepté la partie communication) définie dans les objectifs. Il est capable de reconnaître et s'orienter dans la direction de la balle infrarouge. Il peut faire fonctionner une pince ainsi qu'expulser la balle. Il est aussi capable d'éviter les obstacles et de suivre une ligne. De plus il est équipé d'une carte à communication sans-fil Xbee, utilisé pour qu'il puisse communiquer avec les buts et le robot ramasseur. Malheureusement le temps nous a rattrapé et n'avons pas pu gérer la partie programmation.

Ce bureau d'étude nous a permit de réaliser un premier projet s'étendant sur un laps de temps aussi important, en équipe. Nous avons alors découvert les aléas du travail en équipe et nous avons pu avoir un aperçu de ce que pourrai être la spécialité IMA à Polytech Lille.