CageBut2013-1 : Différence entre versions

De Wiki de bureau d'études PeiP
Ligne 97 : Ligne 97 :
 
     que nous pouvons renvoyer la balle.<br/>  
 
     que nous pouvons renvoyer la balle.<br/>  
 
     Si ces trois messages sont envoyés à notre cage, nous renvoyons la balle.
 
     Si ces trois messages sont envoyés à notre cage, nous renvoyons la balle.
 +
 +
<h2> Fonctionnement des LEDs <h2>
 +
 +
voici le programme faisant fonctionner les LEDs
 +
    -int ledIR = 2;
 +
int ledCol = 3;
 +
 +
void setup(){
 +
  pinMode(2, OUTPUT);
 +
  pinMode(3, OUTPUT);
 +
};
 +
 +
void loop(){
 +
 +
  digitalWrite(2,HIGH);
 +
 +
  digitalWrite(3,HIGH);
 +
  delay(250);
 +
  digitalWrite(ledCol,LOW);
 +
  delay(250);
 +
};

Version du 6 avril 2014 à 17:19

Les étapes de la construction

1ere étape : la barre transversale

La barre transversale

Nous avons décidé de construire le but entièrement en lego mindstorm.
Le premier problème avec la barre était la taille. En effet dans un premier temps le but était prévu pour accueillir une boule de la taille d'une balle de ping-pong. La balle faisant 7,5 centimètres de diamètre nous avons été contraint d'augmenter la taille de cette barre. L'émetteur infrarouge (symbolisé par le détecteur de couleurs) a été placé dans un premier temps sur cette barre. A cette première étape le poids que devait supporter la barre n'était pas encore énorme, nous verrons ensuite que le poids devenant considérable nous avons du apporter quelques modifications a cette barre transversale.

2eme étape : les poteaux

L'armature du but

Les poteaux ont été construits dans la même optique que la barre, c'est à dire laisser passer une balle assez grosse. Les buts sont donc construits avec une hauteur d'environ 1 fois et demi la taille de la balle et une largeur de deux fois la taille de la balle. Un des problèmes récurrent sur la barre transversale et les poteaux était surtout la solidité de ceux-ci. En effet si au début nous n'avions qu'une barre simple pour symboliser le poteaux nous avons décidé de les renforcer avec une double barre fixée en parallèle. De ce fait la solidité était augmentée et le poteaux pouvait alors supporter le poids de la barre sans menacer de casser.

3eme étape : la stabilité des buts

C'est à cette étape que le premier gros problème est apparu : la stabilité des buts.
En effet premièrement nous avons utilisé des pièces de légo en forme de L (première image). Cependant la taille et le poids du but nous ont obligés à changer notre moyen de rendre le but stable nous avons donc opté pour une petite construction de pied en longueur (deuxième image). Mais la stabilité du but était encore insuffisante par rapport a la taille et au poids de la balle utilisée. Nous avons donc finalement opté pour un système de stabilisation à base de chenilles bloquées (troisième et quatrième images). L'avantage de cette dernière méthode est l'adhérence, en effet si la balle vient taper assez fort dans le fond du but ou sur le côté, celui-ci ne se déplace pas.

4eme étape: Le système de remise en jeu

Nous avons premièrement pensé à un système de remise en jeu façon "flipper", mais cette solution présentait plusieurs inconvénients:
Un problème de portée, en effet si la balle s'arrêtait au milieu du but, les bras ne pouvaient pas atteindre la balle. Le second problème était que les bras pouvaient plaquer la balle sur les côtés intérieurs du but, cette première solution était donc inefficace.
Notre choix s'est donc orienté sur un système de râteau actionné par deux moteurs, fixés à la barre transversale.
Le premier problème de ce dispositif a été le poids supporté par la barre. Ne pouvant pas apporter de modification majeur a ce dispositif nous avons d'abord décidé de renforcer la barre.

5ème étape: Le système de blocage de la balle

Le deuxième problème a été le système qui était censé retenir la balle. Nous avons d'abord pensé a faire une sorte de mains a griffe qui retiendrait la balle le temps que les robots se replacent. Ce système a été très vite laissé sur le côté du fait du manque de matériel disponible pour la construction de la main et la complexité du positionnement se cette main ainsi que sa programmation. Il était également impossible de calculer une probabilité assez haute que la balle soit retenu par cette main pour que cette méthode soit accepté.
Nous avons alors décidé d'apporter un changement majeur au fonctionnement du but. En effet le râteau ne fonctionne plus qu'avec un seul moteur suffisant pour faire fonctionner ce râteau. Nous avons donc opté pour un système de blocage de la balle qui fonctionnerait sur le même principe qu'un flipper inversé. C'est à dire, dès que la balle tape une des deux capteurs de contact les deux bras fixés de chaque côté du but se referment et empêche la balle de sortir du but pour une remise en jeu trop rapide par rapport au placement des robots sur le terrain.


Les étapes de la programmation

Premier programme

Le premier programme consistait au renvoi de la balle par le râteau. Pour celui ci nous avons premièrement programmé le renvoi avec déclenchement manuel. Programme 1.png

  une fois le bouton du NXT appuyé, la balle est renvoyée puis après une temporisation de 3 secondes le râteau se repositionne

Ce programme était un test pour nous familiariser avec le fonctionnement du boitier NXT ainsi qu'avec le logiciel. Nous avons par la suite imaginé un système avec des capteurs de contact et un compteur du nombres de buts encaissés

Vidéo du déclenchement manuel Comme dit précédemment le premier programme consistait à renvoyer la balle manuellement à l'aide d'une pression sur le bouton du NXT suivie d'une temporisation qui permet au râteau de ne pas s'actionner immédiatement. Après cela un problème s'est présenté : La position du capteur de contact.

Le capteur de contact

La première idée était de placer un seul capteur de contact centré au fond du but sur lequel tape le râteau quand la balle touche celui-ci. Cette idée a vite été abandonnée du fait du manque de sensibilité du capteur de pression. Premièrement nous en avons placés deux à l'arrière du but, à chaque extrémité, de sorte que la balle puisse taper n'importe quelle partie du râteau en déclenchant le programme. Deuxièmement nous avons construit des sortes des "bumpers" fixés sue les capteurs pour avoir une plus grande surface de contact entre le capteur et le râteau.

deuxième programme : Introduction des capteurs de contact

Ce programme renvoie la balle après une temporisation de 3 secondes. Cette solution inclut les deux capteurs de contact. Explication du programme:

Programme2.png

  SI le capteur 1 est enfoncé : 
une temporisation de 3 secondes est déclenchée, puis le râteau s'actionne afin de renvoyer la balle
une variable qui compte le nombre de but encaissés est alors incrémentée puis affichée sur l'écran du NXT, le râteau se
repositionne ensuite. SINON SI le capteur 2 est enfoncé Le système se comporte de la même façon que précédemment SINON il ne se passe rien et le programme attend une information venant d'un des deux capteurs.

Ce programme présentait plusieurs problèmes:
-la balle pouvait rebondir sur le râteau et sortir du but, rendant le renvoi impossible. Nous avons donc du installer un système afin que la balle reste dans le but le temps de la renvoyer
-la temporisation n'est pas viable, il faut que le but renvoie la balle une fois que les robots sont repositionnés. Ils nous a donc fallu créer un programme de communication via Bluetooth avec les robots et l'autre but.

troisième programme : Mise en marche du système de blocage de la balle

Ce troisième programme reprend le schéma du précédent mais en incluant cette fois deux barres qui maintiennent la balle à l'intérieur du but. La temporisation modélise le temps de replacement des robots d'attaque, le système de communication sera mis en place plus tard.

Programme 3.png

Media : Renvoi_auto.mp4

Quatrième programme : introduction du bluetooth

La quatrième version du programme consistait à introduire l'envoi d'un message par bluetooth entre les deux buts. En effet pour savoir si tout les robots sont replacés sur le terrain avant de renvoyer la balle, il nous faut les informations des 4 robots. Le problème de cette partie a été le nombre de connexions possibles. Comme nous n'avons droit qu'à 3 connexions bluetooth par NXT nous avons été contraint de diviser les robots en deux équipes. A partir de ce point de vue la nous avons définit un défenseur et un attaquant par équipe. Chaque but communique avec deux robots. Programme final.png

  - Si nous encaissons un but, nous communiquons à nos robots l'information et ceux-ci vont se replacer. Une fois qu'il sont replacés
ils nous renvoient un message pour nous indiquer que nous pouvons renvoyer le balle.
Dans le même temps nous communiquons le message de but à la cage adverse. Celle-ci démarre le même procédé que nous :
C'est à dire qu'elle prévient ces robots qu'il faut se replacer et ceux-ci leur envoie un message quand ils le sont.
Une fois que les robots adverse sont replacés, la cage de l'adversaire nous envoie un message pour nous signaler
que nous pouvons renvoyer la balle.
Si ces trois messages sont envoyés à notre cage, nous renvoyons la balle.

Fonctionnement des LEDs <h2> voici le programme faisant fonctionner les LEDs -int ledIR = 2; int ledCol = 3; void setup(){ pinMode(2, OUTPUT); pinMode(3, OUTPUT); }; void loop(){ digitalWrite(2,HIGH); digitalWrite(3,HIGH); delay(250); digitalWrite(ledCol,LOW); delay(250); };