CageBut2013-1 : Différence entre versions

De Wiki de bureau d'études PeiP
 
(78 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
<include nopre noesc src="/home/pedago/ppeip/include/video-But1-2013-iframe.html" />
 +
__TOC__
 +
<br style="clear: both;">
 
<h1>Les étapes de la construction</h1>
 
<h1>Les étapes de la construction</h1>
  
 
<h2>1ere étape : la barre transversale</h2>
 
<h2>1ere étape : la barre transversale</h2>
 +
 +
[[File:barre 1.0.jpeg|vignette|upright=1,5|right|La barre transversale]]
  
 
Nous avons décidé de construire le but entièrement en lego mindstorm.<br/>
 
Nous avons décidé de construire le but entièrement en lego mindstorm.<br/>
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.
+
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.
 
 
[[File:barre 1.0.jpeg|vignette| upright=2|La barre transversale]]
 
  
 
<h2>2eme étape : les poteaux</h2>
 
<h2>2eme étape : les poteaux</h2>
  
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.
+
[[File:aramature but.jpeg|vignette|upright=1,5|L'armature du but]]
  
[[File:aramature but.jpeg|vignette|upright=2|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.
  
 
<h2>3eme étape : la stabilité des buts</h2>
 
<h2>3eme étape : la stabilité des buts</h2>
Ligne 28 : Ligne 31 :
 
<h2>4eme étape: Le système de remise en jeu </h2>
 
<h2>4eme étape: Le système de remise en jeu </h2>
  
Nous avons premièrement pensé à un système de remise en jeu façon "flipper", mais cette solution présentait plusieurs inconvénients:
+
Nous avons premièrement pensé à un système de remise en jeu façon "flipper", mais cette solution présentait plusieurs inconvénients:<br/>
 
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.
 
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.
+
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.<br/>
Notre choix s'est donc orienté sur un système de râteau actionné par deux moteurs, fixés à la barre transversale.
+
Notre choix s'est donc orienté sur un système de râteau actionné par deux moteurs, fixés à la barre transversale.<br/>
 +
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.
 +
 
 +
<h2>5ème étape: Le système de blocage de la balle</h2>
 +
 
 +
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é.<br/>
 +
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.  
 
    
 
    
  
Ligne 37 : Ligne 46 :
 
<h1>Les étapes de la programmation</h1>
 
<h1>Les étapes de la programmation</h1>
  
<h2>1ere étape</h2>
+
<h2> Premier programme </h2>
  
 +
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.
 +
[[fichier: programme_1.png|800px]]
 +
  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<br/>
 +
<br/>
 +
[[Media:rejet_manuel.mp4|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.
 
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.
  
<h3>Le capteur de contact</h3>
+
<h2>Le capteur de contact</h2>
  
 
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.
 
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.
 
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.
  
<h3> Premier programme </h3>
+
<h2> deuxième programme : Introduction des capteurs de contact </h2>
 +
 
 +
Ce programme renvoie la balle après une temporisation de 3 secondes.
 +
Cette solution inclut les deux capteurs de contact.
 +
Explication du programme: <br/>
 +
 
 +
[[fichier:programme2.png|800px]]
 +
  '''SI le capteur 1 est enfoncé''' : <br/>  une temporisation de 3 secondes est déclenchée, puis le râteau s'actionne afin de renvoyer la  balle <br/>  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 <br/>  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: <br/>
 +
-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 <br/>
 +
-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. <br/>
 +
 
 +
<h2> troisième programme : Mise en marche du système de blocage de la balle </h2>
 +
 
 +
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.
 +
 
 +
[[file: programme_3.png|1000px]]
 +
 
 +
[[Media : Renvoi_auto.mp4]]
 +
 
 +
<h2> Quatrième programme : introduction du bluetooth </h2>
  
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.
+
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.
 +
[[file: Programme_final.png| 1000px]]
 +
 
 +
  - Si nous encaissons un but, nous communiquons à nos robots l'information et ceux-ci vont se replacer. Une fois qu'il sont replacés<br/>
 +
    ils nous renvoient un message pour nous indiquer que nous pouvons renvoyer le balle.<br/>
 +
    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 :<br/>
 +
    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.<br/>
 +
    Une fois que les  robots adverse sont replacés, la cage de l'adversaire nous envoie un message pour nous signaler <br/>
 +
    que nous pouvons renvoyer la balle.<br/>
 +
    Si ces trois messages sont envoyés à notre cage, nous renvoyons la balle.
 +
 
 +
<h2> Fonctionnement des LEDs </h2>
 +
 
 +
Nous avons une LED jaune branchée sur le port 3 de la carte Arduino, elles clignotent à une fréquence de 2Hz, cette LED, placée au centre de la barre transversale à une fonction purement décorative, elle nous a permit également de nous familiariser avec le langage de programmation de la carte Arduino  <br/>
 +
Voici le programme de son fonctionnement: <br/>
 +
 +
  int ledCol = 2;
 +
  void setup(){
 +
  pinMode(2, OUTPUT);
 +
  };
 +
  void loop(){
 +
  digitalWrite(2,HIGH);
 +
  delay(250);
 +
  digitalWrite(ledCol,LOW);
 +
  delay(250);
 +
  };
 +
 
 +
 
 +
 
 +
Les LEDs infrarouges sont quant à elles reliées à une alimentation stabilisée, qui empêche les fluctuations de courant qui pourraient endommager les diodes.
 +
Voici une photo du circuit:
 +
 
 +
[[fichier: STAB.jpg|600px]]
  
<include src="C:\Users\pifou\Desktop\barre.ogg" />
 
  
<h3> deuxième programme </h3>
+
<h1> Conclusion </h1>
  
Ce programme renvoie la balle après une temporisation de 3 secondes.
+
Ce projet nous à plu car il nous a permis d'aborder tous les aspects de la section IMA: électronique et informatique de façon ludique.
Cette solution inclut les deux capteurs de contact.
+
En effet on n’imaginait pas utiliser des Lego dans un projet d'école d'ingénieurs.
Explication du programme:
+
Nous avons beaucoup appris sur la gestion des délais et le travail en équipe, choses essentielles au bon travail d'un ingénieur.
<style : bold>SI le capteur 1 est enfoncé</style>: 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.
 

Version actuelle datée du 21 mai 2014 à 11:51


Vidéo HD


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

Nous avons une LED jaune branchée sur le port 3 de la carte Arduino, elles clignotent à une fréquence de 2Hz, cette LED, placée au centre de la barre transversale à une fonction purement décorative, elle nous a permit également de nous familiariser avec le langage de programmation de la carte Arduino
Voici le programme de son fonctionnement:

 int ledCol = 2;
 void setup(){
 pinMode(2, OUTPUT);
 };
 void loop(){
 digitalWrite(2,HIGH); 
 delay(250);
 digitalWrite(ledCol,LOW);
 delay(250);
 };


Les LEDs infrarouges sont quant à elles reliées à une alimentation stabilisée, qui empêche les fluctuations de courant qui pourraient endommager les diodes. Voici une photo du circuit:

STAB.jpg


Conclusion

Ce projet nous à plu car il nous a permis d'aborder tous les aspects de la section IMA: électronique et informatique de façon ludique. En effet on n’imaginait pas utiliser des Lego dans un projet d'école d'ingénieurs. Nous avons beaucoup appris sur la gestion des délais et le travail en équipe, choses essentielles au bon travail d'un ingénieur.