RobotRamasseur2014-2

De Wiki de bureau d'études PeiP
Révision datée du 6 mai 2015 à 10:12 par Tgosse (discussion | contributions) (La pince)

Introduction

Dans le cadre de notre bureau d'étude IMA, nous avions le choix entre plusieurs projets. Les différents projets étaient des robots joueurs, ramasseurs de balles, des buts ainsi qu'un arbitre, la finalité étant d'effectuer un match de football où les différents projets interviendraient. Ayant pris le projet "ramasseur de balle", notre but était de réaliser un robot en Lego, puis de le programmer en NXC (Not eXactly C), afin qu'il aille chercher la balle et la ramène au centre du terrain.

La construction

La construction du robot est la première chose que nous avons faites. Cette étape nous semblait importante pour commencer car nous allions avoir une base matérielle sur laquelle travailler. En effet, savoir où sont placés les capteurs, et sur quelle entrée de notre micro-contrôleur était nécessaire avant de commencer a programmer. Les éléments à notre dispositions étaient :

  • 3 servomoteurs
  • Un capteur de couleurs, un d'ultrasons, un d'infrarouge et un de pression
  • Un micro-contrôleur MindStorm
  • Des pièces de Lego

Le châssis

Nous avons commencé par monter le "corps" de notre robot, en optant rapidement pour les chenilles étant donné que nous avions entendu que l'utilisation des roues poser problème dans certains cas. Le poids du micro-contrôleur nous a forcé à renforcer notre robot par le bas, en ajoutant des fixations. Nous avons au final réussi à trouver un bon compromis pour l'équilibre du robot, en répartissant uniformément toutes les charges à mettre sur le robot et en compensant le poids de la pince vers l'avant à l'aide d'une base arrière lourde. Nous avons veillé également à ne pas trop espacer les deux chenilles pour éviter que le robot ne s'écrase sous le poids du micro-contrôleur, que nous avons placé au centre du châssis, de façon verticale et légèrement incliné pour pouvoir faire les branchements aux différents capteurs sans encombres.

La pince sous sa première forme

La pince

Notre robot étant un ramasseur de balle, il fallait qu'il soit équipé d'un système pour attraper la balle et la garder. Deux servomoteurs était déjà utilisés pour la mobilité du robot, nous avons alors opté pour une pince dont une partie serait articulée par le servomoteur restant, l'autre partie étant fixe. Par la suite, nous avons ajouté sur la pince des capteurs pour que le robot puisse interagir avec le monde extérieur, à savoir :

  • Un capteur infrarouge
  • Un capteur d'ultrasons
  • Un capteur de pression

La pince avait alors la forme ci à droite.

Après quelque essais, nous nous sommes rendu compte que lorsque le robot avait la balle, cette dernière nous empêchait d'utiliser le capteur d'ultrasons. Il a donc fallu décentrer la pince pour laisser le champ libre au capteur d'ultrasons. Dans sa version finale, la pince se referme de telle façon que la balle se retrouve légèrement sur la gauche du robot en laissant le champ libre au capteur d'ultrasons.

Au final, le robot, avec la nouvelle pince, ressemble donc à cela :

Pince final

Les capteurs

Capteur de couleurs

C'est le seul capteur qui se retrouve sur le châssis. Il nous permet de basculer dans la partie du programme voulue en détectant une certaine couleur, par exemple le robot peut suivre une bande de couleur grâce au capteur. Nous l'avions dans un premier temps fixé sur l'arrière du robot. Cependant, lorsque ce dernier tournait, le capteur n'arrivait plus à détecter la ligne et le robot n'avançait plus. Le capteur de couleurs est donc passé à l'avant du robot.


Capteur d'ultrasons

Ce capteur-ci offre la possibilité de détecter des obstacles qui pourraient se dresser sur le chemin du robot, comme les barrières qui délimitent le terrain. Pour nous, le capteur a une double utilisation étant donné qu'il est complémentaire avec le capteur infrarouge pour attraper la balle, comme le capteur infrarouge est défaillant à faible distance. Il voit si la balle est assez proche ou non pour être capturée. Au départ, le capteur était placé verticalement sur le bout de la partie fixe de la pince, juste pour détecter les obstacles, puis nous l'avons par la suite replacé horizontalement sur la base de la pince, à l'endroit du servomoteur et légèrement incliné vers l'avant, pour qu'il puisse détecter si la balle est au bon endroit.


Capteur infrarouge

Le capteur infrarouge détecte la position de la balle et des buts à l'aide signaux envoyés par ceux-ci. Son rôle est d'orienter le robot vers la balle pour pouvoir aller ensuite la ramasser. La difficulté de cette tâche est de savoir distinguer les signaux envoyés par la balle de ceux envoyés par les buts, qui devront normalement être d'une fréquence différente. Nous avions initialement placé le capteur à la place finale du capteur d'ultrasons, c'est-à-dire au centre de la pince, cependant nous avons pensé qu'il pourrait être gêné par ce qu'il y avait devant. Nous l'avons donc surélevé, en le laissant au centre de la pince, à l'aide d'une tige pour élargir son champ de vision.


Capteur de pression

Ce capteur permet d'annoncer au robot lorsqu'une pression est exercée sur celui-ci ou non. Il n'était pas indispensable au bon fonctionnement du robot, cependant il permet de créer des raccourcis au niveau de la programmation et d'avoir un robot plus complet au moment d'attraper la balle. En effet, le capteur permet de savoir si la balle est attrapée ou non lorsque le programme tourne, et le fait de pouvoir continuer à chercher la balle si le capteur ne détecte aucune pression permet d'éviter au robot d'entamer la suite du programme sans balle. Pour le placement, nous avons réussi à le coincer dans la partie fixe de la pince pour que la balle vienne appuyer dessus lorsque la pince se referme. Cependant c'est un capteur un peu capricieux qui demande la rigueur donc nous avons renforcé l'attache du capteur pour limiter le recul de celui-ci au maximum.


Robot final

METTRE PHOTO


La programmation

La programmation du robot a été réalisée exclusivement en langage NXC car on nous a déconseillé d'utiliser le langage graphique propre au micro-contrôleur, qui est assez limité.

Actions réalisées sans balle

La fonction "Balle"

La fonction "Attrape"

Actions réalisées avec balle

La fonction "Trouve"

La fonction "Suivre"

La fonction "ChercheCouleur"

La fonction "Place"

Tests finaux/Problèmes rencontrés

PARTIE A DEFINIR

Conclusion

A FAIRE