<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://peip-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pgautrea</id>
		<title>Wiki de bureau d'études PeiP - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://peip-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pgautrea"/>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Pgautrea"/>
		<updated>2026-04-24T17:57:53Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Schematic_amelioration.png&amp;diff=9805</id>
		<title>Fichier:Schematic amelioration.png</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Schematic_amelioration.png&amp;diff=9805"/>
				<updated>2018-05-07T05:21:11Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : Pgautrea a téléversé une nouvelle version de Fichier:Schematic.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Schematic_amelioration.png&amp;diff=9804</id>
		<title>Fichier:Schematic amelioration.png</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Schematic_amelioration.png&amp;diff=9804"/>
				<updated>2018-05-07T05:20:25Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9803</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9803"/>
				<updated>2018-05-07T05:20:06Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Élaboration du bouclier */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors, dans le cas d’un Robot Prédateur, de concevoir un robot capable de détecter les proies et de les chasser ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur qui était “''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''” nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela, il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs, nous avons tout de suite pensé aux rapaces et cela nous a donc amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créé une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu listé tous les composants dont nous aurons besoin pour l'élaboration de notre robot pour préciser leur disposition. Ainsi, nous avons pu concevoir notre bouclier de manière optimale en prenant en compte toutes ces informations. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie.&lt;br /&gt;
&lt;br /&gt;
Puis, nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schematic.png|thumb|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de la découpe laser''' : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon en vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
&lt;br /&gt;
Pour les roues, nous les avons fixées sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions enfin une spécificité notable sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y fixer les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera la position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de l'élaboration de la tourelle''' : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
Une fois l'électronique au point, il ne reste plus qu'a créer le meilleur code possible relatif à la configuration matériel.&lt;br /&gt;
La première phase à été une étape de découverte de l'Arduino. Nous avons aussi pas mal testé les différents composants, afin d'en avoir une compréhension suffisante pour la suite.&lt;br /&gt;
&lt;br /&gt;
Une fois les bases acquises, il faut se lancer et visualiser la finalité du code. J'ai séparé le code en différents modules (déplacement, détection, servomoteur) afin de faciliter chaque étape de programmation et surtout pour éviter de perdre trop de temps sur le débogage. Enfin une fois les différents modules au point, il ne reste plus qu'à les imbriqués.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremote.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremoteInt.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// TSOP&lt;br /&gt;
&lt;br /&gt;
char TSOP1 = A0;&lt;br /&gt;
char TSOP2 = A1;&lt;br /&gt;
char TSOP3 = A2;&lt;br /&gt;
&lt;br /&gt;
int cas = 0;&lt;br /&gt;
&lt;br /&gt;
IRrecv IR1(TSOP1); // créer les instances irrecv&lt;br /&gt;
IRrecv IR2(TSOP2);&lt;br /&gt;
IRrecv IR3(TSOP3);&lt;br /&gt;
decode_results results;&lt;br /&gt;
&lt;br /&gt;
void detect()  &lt;br /&gt;
{&lt;br /&gt;
  if (IR1.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 1;&lt;br /&gt;
    IR1.resume(); &lt;br /&gt;
  } &lt;br /&gt;
  else if (IR2.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 2;&lt;br /&gt;
    IR2.resume();&lt;br /&gt;
  }&lt;br /&gt;
  else if (IR3.decode(&amp;amp;results))&lt;br /&gt;
&lt;br /&gt;
  { &lt;br /&gt;
    cas = 3;&lt;br /&gt;
    IR3.resume();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ELECTO-AIMANT&lt;br /&gt;
&lt;br /&gt;
int EA = 53;&lt;br /&gt;
&lt;br /&gt;
// SONAR&lt;br /&gt;
&lt;br /&gt;
int TRIG=41;&lt;br /&gt;
int ECHO=43;&lt;br /&gt;
const unsigned long MEASURE_TIMEOUT = 25000UL;&lt;br /&gt;
const float SOUND_SPEED = 340.0 / 1000;&lt;br /&gt;
&lt;br /&gt;
float sonar()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(TRIG, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG, LOW);&lt;br /&gt;
  &lt;br /&gt;
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */&lt;br /&gt;
  long measure = pulseIn(ECHO, HIGH, MEASURE_TIMEOUT);&lt;br /&gt;
  &lt;br /&gt;
   &lt;br /&gt;
  /* 3. Calcul la distance à partir du temps mesuré */&lt;br /&gt;
  float distance_mm = measure / 2.0 * SOUND_SPEED;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  return distance_mm;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//MOTEURS&lt;br /&gt;
&lt;br /&gt;
int PWM_motorA=10;&lt;br /&gt;
int PWM_motorB=9;&lt;br /&gt;
int AIN1=50;&lt;br /&gt;
int AIN2=48;&lt;br /&gt;
int BIN1=44;&lt;br /&gt;
int BIN2=42;&lt;br /&gt;
int STDY=46;&lt;br /&gt;
unsigned long previous = millis();&lt;br /&gt;
&lt;br /&gt;
// SERVO&lt;br /&gt;
&lt;br /&gt;
class Sweeper&lt;br /&gt;
  {&lt;br /&gt;
    Servo servo;              // the servo&lt;br /&gt;
    int pos;              // current servo position&lt;br /&gt;
    int increment;        // increment to move for each interval&lt;br /&gt;
    int  updateInterval;      // interval between updates&lt;br /&gt;
    unsigned long lastUpdate; // last update of position&lt;br /&gt;
&lt;br /&gt;
  public:&lt;br /&gt;
    Sweeper(int interval)&lt;br /&gt;
    {&lt;br /&gt;
      updateInterval = interval;&lt;br /&gt;
      increment = 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Attach(int pin)&lt;br /&gt;
    {&lt;br /&gt;
      servo.attach(pin);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Detach()&lt;br /&gt;
    {&lt;br /&gt;
      servo.detach();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Update()&lt;br /&gt;
    {&lt;br /&gt;
      if((millis() - lastUpdate) &amp;gt; updateInterval)  // time to update&lt;br /&gt;
      {&lt;br /&gt;
        lastUpdate = millis();&lt;br /&gt;
        pos += increment;&lt;br /&gt;
        servo.write(pos);&lt;br /&gt;
        Serial.println(pos);&lt;br /&gt;
        if ((pos &amp;gt;= 160) || (pos &amp;lt;= 0)) // end of sweep&lt;br /&gt;
        {&lt;br /&gt;
          // reverse direction&lt;br /&gt;
          increment = -increment;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Sweeper servoTour(50);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  IR1.enableIRIn();&lt;br /&gt;
  IR2.enableIRIn();&lt;br /&gt;
  IR3.enableIRIn(); &lt;br /&gt;
  &lt;br /&gt;
  servoTour.Attach(8);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(EA,OUTPUT);&lt;br /&gt;
  digitalWrite(EA,LOW);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(TRIG,OUTPUT);&lt;br /&gt;
  digitalWrite(TRIG,LOW);&lt;br /&gt;
  pinMode(ECHO,INPUT);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(AIN1,OUTPUT);&lt;br /&gt;
  pinMode(AIN2,OUTPUT);&lt;br /&gt;
  pinMode(BIN1,OUTPUT);&lt;br /&gt;
  pinMode(BIN2,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorA,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorB,OUTPUT);&lt;br /&gt;
  pinMode(STDY,OUTPUT);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(AIN1,LOW);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  digitalWrite(BIN1,LOW);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  digitalWrite(STDY,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,0);&lt;br /&gt;
  analogWrite(PWM_motorB,0);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(11,LOW);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{ &lt;br /&gt;
  servoTour.Update();  &lt;br /&gt;
  digitalWrite(STDY,HIGH);&lt;br /&gt;
  digitalWrite(AIN1,HIGH);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,255);&lt;br /&gt;
  digitalWrite(BIN1,HIGH);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorB,255);&lt;br /&gt;
  if(sonar()&amp;lt;50)&lt;br /&gt;
  {&lt;br /&gt;
    digitalWrite(STDY,LOW);&lt;br /&gt;
    digitalWrite(BIN1,LOW);&lt;br /&gt;
    unsigned long tps = millis();&lt;br /&gt;
    while (millis()-tps &amp;lt; 1000)&lt;br /&gt;
    {&lt;br /&gt;
     digitalWrite(STDY,HIGH); &lt;br /&gt;
     digitalWrite(BIN2,HIGH);&lt;br /&gt;
     analogWrite(PWM_motorB,255);&lt;br /&gt;
     previous = millis();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  unsigned long time = millis();&lt;br /&gt;
  detect();&lt;br /&gt;
  switch (cas)&lt;br /&gt;
  { &lt;br /&gt;
    case 1 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(BIN2,HIGH);&lt;br /&gt;
       digitalWrite(BIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorB,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
      if (sonar()&amp;lt; 50)&lt;br /&gt;
      {&lt;br /&gt;
        digitalWrite(EA,HIGH);&lt;br /&gt;
        analogWrite(PWM_motorA,0);&lt;br /&gt;
        analogWrite(PWM_motorB,0);&lt;br /&gt;
        delay (5000);&lt;br /&gt;
      }&lt;br /&gt;
    case 3 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(AIN2,HIGH);&lt;br /&gt;
       digitalWrite(AIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorA,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    default:&lt;br /&gt;
      break;&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- Ayant choisis des moteurs performants, ceux ci nécessite pas mal de tension pour fonctionner. Nous avons sous-estimer ce besoin en début de projet. Or durant la phase de programmation, nous nous sommes rendu-compte que notre robot n'avait pas assez de &amp;quot;jus&amp;quot; pour fonctionner. Cela à donc générer pas mal de soucis et de casses-têtes. Une Solution serai de modifier l'alimentation du robot, et d'en chosir une plus adaptée à la configuration matériel. Nous aurions pu échanger les moteurs par des servos continus, mais cela ne rentrait pas dans notre vision du projet (Conception d'un Robot relativement rapide).&lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. &lt;br /&gt;
Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions garder l'idée de la tourelle mais la perfectionner : lui attribuer par exemple un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils de ceux ci dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. &lt;br /&gt;
De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc, en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond parfaitement à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être toute fois extrêmement précise et elle demande beaucoup de temps : il faut repérer les dimensions exactes que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux (de l'ordre du micromètre). Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embêtés car nous n'avions pas d'appareil pour souder chez nous. Nous avons donc cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver cela. Et nous avons découvert, à Nanterre (92), un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionnés des machines qu'ils ont acquit durant toutes ces années depuis la création de l'association car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
&lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, notre robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons seulement mis le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les petites proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet, nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le Shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux et cela réduira également les erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais que peu de compétences en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu le faire car c'est celui que je trouvais le plus intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. De plus, la mécanique est un domaine qui m'attire depuis longtemps. Ainsi, je me suis donné la mission de concevoir toute la partie mécanique de ce BE c'est-à-dire la réalisation du châssis du robot. J'ai donc créé ses contours, sa forme mais aussi imaginé l'emplacement, de manière précise, de chacun des éléments que nous allions devoir fixer sur le châssis. &lt;br /&gt;
&lt;br /&gt;
Les débuts dans ce BE étaient un peu rudes pour moi car je me suis retrouvée immergée dans un contexte et avec un langage nouveaux. J'ai du donc apprendre un nouveau vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, c'est mon partenaire Pierre qui a réalisé le codage, ce qui m'a permis appréhender la logique et de me familiariser avec cette technique. &lt;br /&gt;
&lt;br /&gt;
Au final, ce BE fut très enrichissant pour moi car il m'a fait sortir de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pierre : Le Monde de la robotique m’était inconnu avant le Bureau d’Etude. La promesse d’un mélange entre électronique,informatique et mécanique, faites par la présentation du BE m’enchantait. C’est donc avec notre peu de connaissances que nous nous sommes lancés avec Clémence dans ce projet .“Vous allez réalisez de bout en bout un robot autonome” nous a t-on dit. Un rêve de Gamin. Les Phases d’électronique et d’informatique éveillaient en moi le plus d’interet.&lt;br /&gt;
&lt;br /&gt;
Les débuts ont étés difficiles. L’autonomie et la liberté accordée m’ont dérouté au commencement. Il fallait à la fois acquérir les connaissances techniques, mais aussi s’organiser autour d’une méthode de Projet jusqu’alors très peu connu pour moi. Mais la bonne ambiance et la bien bienveillance qui régnait dans le BE ont été porteuses.&lt;br /&gt;
&lt;br /&gt;
Les nombreuses découvertes de ce BE me donne aujourd’hui envie de réaliser mes propres projets d’électronique communiquant (pourquoi pas rendre mon frigo intelligent ?). Surtout, la découverte de la philosophie d ”Arduino” m’a ouverte le champ des possibles. Cela renforce aussi mon choix de m’orienter en Section IMA l’année prochaine.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9802</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9802"/>
				<updated>2018-05-07T05:14:16Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors, dans le cas d’un Robot Prédateur, de concevoir un robot capable de détecter les proies et de les chasser ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur qui était “''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''” nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela, il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs, nous avons tout de suite pensé aux rapaces et cela nous a donc amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créé une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu listé tous les composants dont nous aurons besoin pour l'élaboration de notre robot pour préciser leur disposition. Ainsi, nous avons pu concevoir notre bouclier de manière optimale en prenant en compte toutes ces informations. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie.&lt;br /&gt;
&lt;br /&gt;
Puis, nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de la découpe laser''' : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon en vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
&lt;br /&gt;
Pour les roues, nous les avons fixées sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions enfin une spécificité notable sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y fixer les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera la position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de l'élaboration de la tourelle''' : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
Une fois l'électronique au point, il ne reste plus qu'a créer le meilleur code possible relatif à la configuration matériel.&lt;br /&gt;
La première phase à été une étape de découverte de l'Arduino. Nous avons aussi pas mal testé les différents composants, afin d'en avoir une compréhension suffisante pour la suite.&lt;br /&gt;
&lt;br /&gt;
Une fois les bases acquises, il faut se lancer et visualiser la finalité du code. J'ai séparé le code en différents modules (déplacement, détection, servomoteur) afin de faciliter chaque étape de programmation et surtout pour éviter de perdre trop de temps sur le débogage. Enfin une fois les différents modules au point, il ne reste plus qu'à les imbriqués.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremote.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremoteInt.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// TSOP&lt;br /&gt;
&lt;br /&gt;
char TSOP1 = A0;&lt;br /&gt;
char TSOP2 = A1;&lt;br /&gt;
char TSOP3 = A2;&lt;br /&gt;
&lt;br /&gt;
int cas = 0;&lt;br /&gt;
&lt;br /&gt;
IRrecv IR1(TSOP1); // créer les instances irrecv&lt;br /&gt;
IRrecv IR2(TSOP2);&lt;br /&gt;
IRrecv IR3(TSOP3);&lt;br /&gt;
decode_results results;&lt;br /&gt;
&lt;br /&gt;
void detect()  &lt;br /&gt;
{&lt;br /&gt;
  if (IR1.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 1;&lt;br /&gt;
    IR1.resume(); &lt;br /&gt;
  } &lt;br /&gt;
  else if (IR2.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 2;&lt;br /&gt;
    IR2.resume();&lt;br /&gt;
  }&lt;br /&gt;
  else if (IR3.decode(&amp;amp;results))&lt;br /&gt;
&lt;br /&gt;
  { &lt;br /&gt;
    cas = 3;&lt;br /&gt;
    IR3.resume();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ELECTO-AIMANT&lt;br /&gt;
&lt;br /&gt;
int EA = 53;&lt;br /&gt;
&lt;br /&gt;
// SONAR&lt;br /&gt;
&lt;br /&gt;
int TRIG=41;&lt;br /&gt;
int ECHO=43;&lt;br /&gt;
const unsigned long MEASURE_TIMEOUT = 25000UL;&lt;br /&gt;
const float SOUND_SPEED = 340.0 / 1000;&lt;br /&gt;
&lt;br /&gt;
float sonar()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(TRIG, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG, LOW);&lt;br /&gt;
  &lt;br /&gt;
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */&lt;br /&gt;
  long measure = pulseIn(ECHO, HIGH, MEASURE_TIMEOUT);&lt;br /&gt;
  &lt;br /&gt;
   &lt;br /&gt;
  /* 3. Calcul la distance à partir du temps mesuré */&lt;br /&gt;
  float distance_mm = measure / 2.0 * SOUND_SPEED;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  return distance_mm;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//MOTEURS&lt;br /&gt;
&lt;br /&gt;
int PWM_motorA=10;&lt;br /&gt;
int PWM_motorB=9;&lt;br /&gt;
int AIN1=50;&lt;br /&gt;
int AIN2=48;&lt;br /&gt;
int BIN1=44;&lt;br /&gt;
int BIN2=42;&lt;br /&gt;
int STDY=46;&lt;br /&gt;
unsigned long previous = millis();&lt;br /&gt;
&lt;br /&gt;
// SERVO&lt;br /&gt;
&lt;br /&gt;
class Sweeper&lt;br /&gt;
  {&lt;br /&gt;
    Servo servo;              // the servo&lt;br /&gt;
    int pos;              // current servo position&lt;br /&gt;
    int increment;        // increment to move for each interval&lt;br /&gt;
    int  updateInterval;      // interval between updates&lt;br /&gt;
    unsigned long lastUpdate; // last update of position&lt;br /&gt;
&lt;br /&gt;
  public:&lt;br /&gt;
    Sweeper(int interval)&lt;br /&gt;
    {&lt;br /&gt;
      updateInterval = interval;&lt;br /&gt;
      increment = 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Attach(int pin)&lt;br /&gt;
    {&lt;br /&gt;
      servo.attach(pin);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Detach()&lt;br /&gt;
    {&lt;br /&gt;
      servo.detach();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Update()&lt;br /&gt;
    {&lt;br /&gt;
      if((millis() - lastUpdate) &amp;gt; updateInterval)  // time to update&lt;br /&gt;
      {&lt;br /&gt;
        lastUpdate = millis();&lt;br /&gt;
        pos += increment;&lt;br /&gt;
        servo.write(pos);&lt;br /&gt;
        Serial.println(pos);&lt;br /&gt;
        if ((pos &amp;gt;= 160) || (pos &amp;lt;= 0)) // end of sweep&lt;br /&gt;
        {&lt;br /&gt;
          // reverse direction&lt;br /&gt;
          increment = -increment;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Sweeper servoTour(50);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  IR1.enableIRIn();&lt;br /&gt;
  IR2.enableIRIn();&lt;br /&gt;
  IR3.enableIRIn(); &lt;br /&gt;
  &lt;br /&gt;
  servoTour.Attach(8);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(EA,OUTPUT);&lt;br /&gt;
  digitalWrite(EA,LOW);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(TRIG,OUTPUT);&lt;br /&gt;
  digitalWrite(TRIG,LOW);&lt;br /&gt;
  pinMode(ECHO,INPUT);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(AIN1,OUTPUT);&lt;br /&gt;
  pinMode(AIN2,OUTPUT);&lt;br /&gt;
  pinMode(BIN1,OUTPUT);&lt;br /&gt;
  pinMode(BIN2,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorA,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorB,OUTPUT);&lt;br /&gt;
  pinMode(STDY,OUTPUT);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(AIN1,LOW);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  digitalWrite(BIN1,LOW);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  digitalWrite(STDY,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,0);&lt;br /&gt;
  analogWrite(PWM_motorB,0);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(11,LOW);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{ &lt;br /&gt;
  servoTour.Update();  &lt;br /&gt;
  digitalWrite(STDY,HIGH);&lt;br /&gt;
  digitalWrite(AIN1,HIGH);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,255);&lt;br /&gt;
  digitalWrite(BIN1,HIGH);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorB,255);&lt;br /&gt;
  if(sonar()&amp;lt;50)&lt;br /&gt;
  {&lt;br /&gt;
    digitalWrite(STDY,LOW);&lt;br /&gt;
    digitalWrite(BIN1,LOW);&lt;br /&gt;
    unsigned long tps = millis();&lt;br /&gt;
    while (millis()-tps &amp;lt; 1000)&lt;br /&gt;
    {&lt;br /&gt;
     digitalWrite(STDY,HIGH); &lt;br /&gt;
     digitalWrite(BIN2,HIGH);&lt;br /&gt;
     analogWrite(PWM_motorB,255);&lt;br /&gt;
     previous = millis();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  unsigned long time = millis();&lt;br /&gt;
  detect();&lt;br /&gt;
  switch (cas)&lt;br /&gt;
  { &lt;br /&gt;
    case 1 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(BIN2,HIGH);&lt;br /&gt;
       digitalWrite(BIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorB,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
      if (sonar()&amp;lt; 50)&lt;br /&gt;
      {&lt;br /&gt;
        digitalWrite(EA,HIGH);&lt;br /&gt;
        analogWrite(PWM_motorA,0);&lt;br /&gt;
        analogWrite(PWM_motorB,0);&lt;br /&gt;
        delay (5000);&lt;br /&gt;
      }&lt;br /&gt;
    case 3 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(AIN2,HIGH);&lt;br /&gt;
       digitalWrite(AIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorA,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    default:&lt;br /&gt;
      break;&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- Ayant choisis des moteurs performants, ceux ci nécessite pas mal de tension pour fonctionner. Nous avons sous-estimer ce besoin en début de projet. Or durant la phase de programmation, nous nous sommes rendu-compte que notre robot n'avait pas assez de &amp;quot;jus&amp;quot; pour fonctionner. Cela à donc générer pas mal de soucis et de casses-têtes. Une Solution serai de modifier l'alimentation du robot, et d'en chosir une plus adaptée à la configuration matériel. Nous aurions pu échanger les moteurs par des servos continus, mais cela ne rentrait pas dans notre vision du projet (Conception d'un Robot relativement rapide).&lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. &lt;br /&gt;
Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions garder l'idée de la tourelle mais la perfectionner : lui attribuer par exemple un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils de ceux ci dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. &lt;br /&gt;
De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc, en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond parfaitement à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être toute fois extrêmement précise et elle demande beaucoup de temps : il faut repérer les dimensions exactes que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux (de l'ordre du micromètre). Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embêtés car nous n'avions pas d'appareil pour souder chez nous. Nous avons donc cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver cela. Et nous avons découvert, à Nanterre (92), un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionnés des machines qu'ils ont acquit durant toutes ces années depuis la création de l'association car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
&lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, notre robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons seulement mis le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les petites proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet, nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le Shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux et cela réduira également les erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais que peu de compétences en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu le faire car c'est celui que je trouvais le plus intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. De plus, la mécanique est un domaine qui m'attire depuis longtemps. Ainsi, je me suis donné la mission de concevoir toute la partie mécanique de ce BE c'est-à-dire la réalisation du châssis du robot. J'ai donc créé ses contours, sa forme mais aussi imaginé l'emplacement, de manière précise, de chacun des éléments que nous allions devoir fixer sur le châssis. &lt;br /&gt;
&lt;br /&gt;
Les débuts dans ce BE étaient un peu rudes pour moi car je me suis retrouvée immergée dans un contexte et avec un langage nouveaux. J'ai du donc apprendre un nouveau vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, c'est mon partenaire Pierre qui a réalisé le codage, ce qui m'a permis appréhender la logique et de me familiariser avec cette technique. &lt;br /&gt;
&lt;br /&gt;
Au final, ce BE fut très enrichissant pour moi car il m'a fait sortir de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pierre : Le Monde de la robotique m’était inconnu avant le Bureau d’Etude. La promesse d’un mélange entre électronique,informatique et mécanique, faites par la présentation du BE m’enchantait. C’est donc avec notre peu de connaissances que nous nous sommes lancés avec Clémence dans ce projet .“Vous allez réalisez de bout en bout un robot autonome” nous a t-on dit. Un rêve de Gamin. Les Phases d’électronique et d’informatique éveillaient en moi le plus d’interet.&lt;br /&gt;
&lt;br /&gt;
Les débuts ont étés difficiles. L’autonomie et la liberté accordée m’ont dérouté au commencement. Il fallait à la fois acquérir les connaissances techniques, mais aussi s’organiser autour d’une méthode de Projet jusqu’alors très peu connu pour moi. Mais la bonne ambiance et la bien bienveillance qui régnait dans le BE ont été porteuses.&lt;br /&gt;
&lt;br /&gt;
Les nombreuses découvertes de ce BE me donne aujourd’hui envie de réaliser mes propres projets d’électronique communiquant (pourquoi pas rendre mon frigo intelligent ?). Surtout, la découverte de la philosophie d ”Arduino” m’a ouverte le champ des possibles. Cela renforce aussi mon choix de m’orienter en Section IMA l’année prochaine.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9801</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9801"/>
				<updated>2018-05-07T05:14:03Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors, dans le cas d’un Robot Prédateur, de concevoir un robot capable de détecter les proies et de les chasser ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur qui était “''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''” nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela, il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs, nous avons tout de suite pensé aux rapaces et cela nous a donc amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créé une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu listé tous les composants dont nous aurons besoin pour l'élaboration de notre robot pour préciser leur disposition. Ainsi, nous avons pu concevoir notre bouclier de manière optimale en prenant en compte toutes ces informations. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie.&lt;br /&gt;
&lt;br /&gt;
Puis, nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de la découpe laser''' : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon en vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
&lt;br /&gt;
Pour les roues, nous les avons fixées sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions enfin une spécificité notable sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y fixer les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera la position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de l'élaboration de la tourelle''' : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
Une fois l'électronique au point, il ne reste plus qu'a créer le meilleur code possible relatif à la configuration matériel.&lt;br /&gt;
La première phase à été une étape de découverte de l'Arduino. Nous avons aussi pas mal testé les différents composants, afin d'en avoir une compréhension suffisante pour la suite.&lt;br /&gt;
&lt;br /&gt;
Une fois les bases acquises, il faut se lancer et visualiser la finalité du code. J'ai séparé le code en différents modules (déplacement, détection, servomoteur) afin de faciliter chaque étape de programmation et surtout pour éviter de perdre trop de temps sur le débogage. Enfin une fois les différents modules au point, il ne reste plus qu'à les imbriqués.&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremote.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremoteInt.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// TSOP&lt;br /&gt;
&lt;br /&gt;
char TSOP1 = A0;&lt;br /&gt;
char TSOP2 = A1;&lt;br /&gt;
char TSOP3 = A2;&lt;br /&gt;
&lt;br /&gt;
int cas = 0;&lt;br /&gt;
&lt;br /&gt;
IRrecv IR1(TSOP1); // créer les instances irrecv&lt;br /&gt;
IRrecv IR2(TSOP2);&lt;br /&gt;
IRrecv IR3(TSOP3);&lt;br /&gt;
decode_results results;&lt;br /&gt;
&lt;br /&gt;
void detect()  &lt;br /&gt;
{&lt;br /&gt;
  if (IR1.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 1;&lt;br /&gt;
    IR1.resume(); &lt;br /&gt;
  } &lt;br /&gt;
  else if (IR2.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 2;&lt;br /&gt;
    IR2.resume();&lt;br /&gt;
  }&lt;br /&gt;
  else if (IR3.decode(&amp;amp;results))&lt;br /&gt;
&lt;br /&gt;
  { &lt;br /&gt;
    cas = 3;&lt;br /&gt;
    IR3.resume();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ELECTO-AIMANT&lt;br /&gt;
&lt;br /&gt;
int EA = 53;&lt;br /&gt;
&lt;br /&gt;
// SONAR&lt;br /&gt;
&lt;br /&gt;
int TRIG=41;&lt;br /&gt;
int ECHO=43;&lt;br /&gt;
const unsigned long MEASURE_TIMEOUT = 25000UL;&lt;br /&gt;
const float SOUND_SPEED = 340.0 / 1000;&lt;br /&gt;
&lt;br /&gt;
float sonar()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(TRIG, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG, LOW);&lt;br /&gt;
  &lt;br /&gt;
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */&lt;br /&gt;
  long measure = pulseIn(ECHO, HIGH, MEASURE_TIMEOUT);&lt;br /&gt;
  &lt;br /&gt;
   &lt;br /&gt;
  /* 3. Calcul la distance à partir du temps mesuré */&lt;br /&gt;
  float distance_mm = measure / 2.0 * SOUND_SPEED;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  return distance_mm;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//MOTEURS&lt;br /&gt;
&lt;br /&gt;
int PWM_motorA=10;&lt;br /&gt;
int PWM_motorB=9;&lt;br /&gt;
int AIN1=50;&lt;br /&gt;
int AIN2=48;&lt;br /&gt;
int BIN1=44;&lt;br /&gt;
int BIN2=42;&lt;br /&gt;
int STDY=46;&lt;br /&gt;
unsigned long previous = millis();&lt;br /&gt;
&lt;br /&gt;
// SERVO&lt;br /&gt;
&lt;br /&gt;
class Sweeper&lt;br /&gt;
  {&lt;br /&gt;
    Servo servo;              // the servo&lt;br /&gt;
    int pos;              // current servo position&lt;br /&gt;
    int increment;        // increment to move for each interval&lt;br /&gt;
    int  updateInterval;      // interval between updates&lt;br /&gt;
    unsigned long lastUpdate; // last update of position&lt;br /&gt;
&lt;br /&gt;
  public:&lt;br /&gt;
    Sweeper(int interval)&lt;br /&gt;
    {&lt;br /&gt;
      updateInterval = interval;&lt;br /&gt;
      increment = 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Attach(int pin)&lt;br /&gt;
    {&lt;br /&gt;
      servo.attach(pin);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Detach()&lt;br /&gt;
    {&lt;br /&gt;
      servo.detach();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Update()&lt;br /&gt;
    {&lt;br /&gt;
      if((millis() - lastUpdate) &amp;gt; updateInterval)  // time to update&lt;br /&gt;
      {&lt;br /&gt;
        lastUpdate = millis();&lt;br /&gt;
        pos += increment;&lt;br /&gt;
        servo.write(pos);&lt;br /&gt;
        Serial.println(pos);&lt;br /&gt;
        if ((pos &amp;gt;= 160) || (pos &amp;lt;= 0)) // end of sweep&lt;br /&gt;
        {&lt;br /&gt;
          // reverse direction&lt;br /&gt;
          increment = -increment;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Sweeper servoTour(50);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  IR1.enableIRIn();&lt;br /&gt;
  IR2.enableIRIn();&lt;br /&gt;
  IR3.enableIRIn(); &lt;br /&gt;
  &lt;br /&gt;
  servoTour.Attach(8);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(EA,OUTPUT);&lt;br /&gt;
  digitalWrite(EA,LOW);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(TRIG,OUTPUT);&lt;br /&gt;
  digitalWrite(TRIG,LOW);&lt;br /&gt;
  pinMode(ECHO,INPUT);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(AIN1,OUTPUT);&lt;br /&gt;
  pinMode(AIN2,OUTPUT);&lt;br /&gt;
  pinMode(BIN1,OUTPUT);&lt;br /&gt;
  pinMode(BIN2,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorA,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorB,OUTPUT);&lt;br /&gt;
  pinMode(STDY,OUTPUT);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(AIN1,LOW);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  digitalWrite(BIN1,LOW);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  digitalWrite(STDY,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,0);&lt;br /&gt;
  analogWrite(PWM_motorB,0);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(11,LOW);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{ &lt;br /&gt;
  servoTour.Update();  &lt;br /&gt;
  digitalWrite(STDY,HIGH);&lt;br /&gt;
  digitalWrite(AIN1,HIGH);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,255);&lt;br /&gt;
  digitalWrite(BIN1,HIGH);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorB,255);&lt;br /&gt;
  if(sonar()&amp;lt;50)&lt;br /&gt;
  {&lt;br /&gt;
    digitalWrite(STDY,LOW);&lt;br /&gt;
    digitalWrite(BIN1,LOW);&lt;br /&gt;
    unsigned long tps = millis();&lt;br /&gt;
    while (millis()-tps &amp;lt; 1000)&lt;br /&gt;
    {&lt;br /&gt;
     digitalWrite(STDY,HIGH); &lt;br /&gt;
     digitalWrite(BIN2,HIGH);&lt;br /&gt;
     analogWrite(PWM_motorB,255);&lt;br /&gt;
     previous = millis();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  unsigned long time = millis();&lt;br /&gt;
  detect();&lt;br /&gt;
  switch (cas)&lt;br /&gt;
  { &lt;br /&gt;
    case 1 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(BIN2,HIGH);&lt;br /&gt;
       digitalWrite(BIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorB,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
      if (sonar()&amp;lt; 50)&lt;br /&gt;
      {&lt;br /&gt;
        digitalWrite(EA,HIGH);&lt;br /&gt;
        analogWrite(PWM_motorA,0);&lt;br /&gt;
        analogWrite(PWM_motorB,0);&lt;br /&gt;
        delay (5000);&lt;br /&gt;
      }&lt;br /&gt;
    case 3 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(AIN2,HIGH);&lt;br /&gt;
       digitalWrite(AIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorA,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    default:&lt;br /&gt;
      break;&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- Ayant choisis des moteurs performants, ceux ci nécessite pas mal de tension pour fonctionner. Nous avons sous-estimer ce besoin en début de projet. Or durant la phase de programmation, nous nous sommes rendu-compte que notre robot n'avait pas assez de &amp;quot;jus&amp;quot; pour fonctionner. Cela à donc générer pas mal de soucis et de casses-têtes. Une Solution serai de modifier l'alimentation du robot, et d'en chosir une plus adaptée à la configuration matériel. Nous aurions pu échanger les moteurs par des servos continus, mais cela ne rentrait pas dans notre vision du projet (Conception d'un Robot relativement rapide).&lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. &lt;br /&gt;
Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions garder l'idée de la tourelle mais la perfectionner : lui attribuer par exemple un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils de ceux ci dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. &lt;br /&gt;
De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc, en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond parfaitement à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être toute fois extrêmement précise et elle demande beaucoup de temps : il faut repérer les dimensions exactes que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux (de l'ordre du micromètre). Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embêtés car nous n'avions pas d'appareil pour souder chez nous. Nous avons donc cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver cela. Et nous avons découvert, à Nanterre (92), un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionnés des machines qu'ils ont acquit durant toutes ces années depuis la création de l'association car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
&lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, notre robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons seulement mis le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les petites proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet, nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le Shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux et cela réduira également les erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais que peu de compétences en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu le faire car c'est celui que je trouvais le plus intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. De plus, la mécanique est un domaine qui m'attire depuis longtemps. Ainsi, je me suis donné la mission de concevoir toute la partie mécanique de ce BE c'est-à-dire la réalisation du châssis du robot. J'ai donc créé ses contours, sa forme mais aussi imaginé l'emplacement, de manière précise, de chacun des éléments que nous allions devoir fixer sur le châssis. &lt;br /&gt;
&lt;br /&gt;
Les débuts dans ce BE étaient un peu rudes pour moi car je me suis retrouvée immergée dans un contexte et avec un langage nouveaux. J'ai du donc apprendre un nouveau vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, c'est mon partenaire Pierre qui a réalisé le codage, ce qui m'a permis appréhender la logique et de me familiariser avec cette technique. &lt;br /&gt;
&lt;br /&gt;
Au final, ce BE fut très enrichissant pour moi car il m'a fait sortir de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pierre : Le Monde de la robotique m’était inconnu avant le Bureau d’Etude. La promesse d’un mélange entre électronique,informatique et mécanique, faites par la présentation du BE m’enchantait. C’est donc avec notre peu de connaissances que nous nous sommes lancés avec Clémence dans ce projet .“Vous allez réalisez de bout en bout un robot autonome” nous a t-on dit. Un rêve de Gamin. Les Phases d’électronique et d’informatique éveillaient en moi le plus d’interet.&lt;br /&gt;
&lt;br /&gt;
Les débuts ont étés difficiles. L’autonomie et la liberté accordée m’ont dérouté au commencement. Il fallait à la fois acquérir les connaissances techniques, mais aussi s’organiser autour d’une méthode de Projet jusqu’alors très peu connu pour moi. Mais la bonne ambiance et la bien bienveillance qui régnait dans le BE ont été porteuses.&lt;br /&gt;
&lt;br /&gt;
Les nombreuses découvertes de ce BE me donne aujourd’hui envie de réaliser mes propres projets d’électronique communiquant (pourquoi pas rendre mon frigo intelligent ?). Surtout, la découverte de la philosophie d ”Arduino” m’a ouverte le champ des possibles. Cela renforce aussi mon choix de m’orienter en Section IMA l’année prochaine.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9800</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9800"/>
				<updated>2018-05-07T05:03:02Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Ce que ce BE nous a apporté */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors, dans le cas d’un Robot Prédateur, de concevoir un robot capable de détecter les proies et de les chasser ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur qui était “''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''” nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela, il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs, nous avons tout de suite pensé aux rapaces et cela nous a donc amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créé une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu listé tous les composants dont nous aurons besoin pour l'élaboration de notre robot pour préciser leur disposition. Ainsi, nous avons pu concevoir notre bouclier de manière optimale en prenant en compte toutes ces informations. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie.&lt;br /&gt;
&lt;br /&gt;
Puis, nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de la découpe laser''' : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon en vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
&lt;br /&gt;
Pour les roues, nous les avons fixées sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions enfin une spécificité notable sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y fixer les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera la position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de l'élaboration de la tourelle''' : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
#include&amp;lt;Servo.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremote.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremoteInt.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// TSOP&lt;br /&gt;
&lt;br /&gt;
char TSOP1 = A0;&lt;br /&gt;
char TSOP2 = A1;&lt;br /&gt;
char TSOP3 = A2;&lt;br /&gt;
&lt;br /&gt;
int cas = 0;&lt;br /&gt;
&lt;br /&gt;
IRrecv IR1(TSOP1); // créer les instances irrecv&lt;br /&gt;
IRrecv IR2(TSOP2);&lt;br /&gt;
IRrecv IR3(TSOP3);&lt;br /&gt;
decode_results results;&lt;br /&gt;
&lt;br /&gt;
void detect()  &lt;br /&gt;
{&lt;br /&gt;
  if (IR1.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 1;&lt;br /&gt;
    IR1.resume(); &lt;br /&gt;
  } &lt;br /&gt;
  else if (IR2.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 2;&lt;br /&gt;
    IR2.resume();&lt;br /&gt;
  }&lt;br /&gt;
  else if (IR3.decode(&amp;amp;results))&lt;br /&gt;
&lt;br /&gt;
  { &lt;br /&gt;
    cas = 3;&lt;br /&gt;
    IR3.resume();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ELECTO-AIMANT&lt;br /&gt;
&lt;br /&gt;
int EA = 53;&lt;br /&gt;
&lt;br /&gt;
// SONAR&lt;br /&gt;
&lt;br /&gt;
int TRIG=41;&lt;br /&gt;
int ECHO=43;&lt;br /&gt;
const unsigned long MEASURE_TIMEOUT = 25000UL;&lt;br /&gt;
const float SOUND_SPEED = 340.0 / 1000;&lt;br /&gt;
&lt;br /&gt;
float sonar()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(TRIG, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG, LOW);&lt;br /&gt;
  &lt;br /&gt;
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */&lt;br /&gt;
  long measure = pulseIn(ECHO, HIGH, MEASURE_TIMEOUT);&lt;br /&gt;
  &lt;br /&gt;
   &lt;br /&gt;
  /* 3. Calcul la distance à partir du temps mesuré */&lt;br /&gt;
  float distance_mm = measure / 2.0 * SOUND_SPEED;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  return distance_mm;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//MOTORS&lt;br /&gt;
&lt;br /&gt;
int PWM_motorA=10;&lt;br /&gt;
int PWM_motorB=9;&lt;br /&gt;
int AIN1=50;&lt;br /&gt;
int AIN2=48;&lt;br /&gt;
int BIN1=44;&lt;br /&gt;
int BIN2=42;&lt;br /&gt;
int STDY=46;&lt;br /&gt;
unsigned long previous = millis();&lt;br /&gt;
&lt;br /&gt;
class Sweeper&lt;br /&gt;
  {&lt;br /&gt;
    Servo servo;              // the servo&lt;br /&gt;
    int pos;              // current servo position&lt;br /&gt;
    int increment;        // increment to move for each interval&lt;br /&gt;
    int  updateInterval;      // interval between updates&lt;br /&gt;
    unsigned long lastUpdate; // last update of position&lt;br /&gt;
&lt;br /&gt;
  public:&lt;br /&gt;
    Sweeper(int interval)&lt;br /&gt;
    {&lt;br /&gt;
      updateInterval = interval;&lt;br /&gt;
      increment = 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Attach(int pin)&lt;br /&gt;
    {&lt;br /&gt;
      servo.attach(pin);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Detach()&lt;br /&gt;
    {&lt;br /&gt;
      servo.detach();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Update()&lt;br /&gt;
    {&lt;br /&gt;
      if((millis() - lastUpdate) &amp;gt; updateInterval)  // time to update&lt;br /&gt;
      {&lt;br /&gt;
        lastUpdate = millis();&lt;br /&gt;
        pos += increment;&lt;br /&gt;
        servo.write(pos);&lt;br /&gt;
        Serial.println(pos);&lt;br /&gt;
        if ((pos &amp;gt;= 160) || (pos &amp;lt;= 0)) // end of sweep&lt;br /&gt;
        {&lt;br /&gt;
          // reverse direction&lt;br /&gt;
          increment = -increment;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Sweeper servoTour(50);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  IR1.enableIRIn();&lt;br /&gt;
  IR2.enableIRIn();&lt;br /&gt;
  IR3.enableIRIn(); &lt;br /&gt;
  &lt;br /&gt;
  servoTour.Attach(8);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(EA,OUTPUT);&lt;br /&gt;
  digitalWrite(EA,LOW);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(TRIG,OUTPUT);&lt;br /&gt;
  digitalWrite(TRIG,LOW);&lt;br /&gt;
  pinMode(ECHO,INPUT);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(AIN1,OUTPUT);&lt;br /&gt;
  pinMode(AIN2,OUTPUT);&lt;br /&gt;
  pinMode(BIN1,OUTPUT);&lt;br /&gt;
  pinMode(BIN2,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorA,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorB,OUTPUT);&lt;br /&gt;
  pinMode(STDY,OUTPUT);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(AIN1,LOW);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  digitalWrite(BIN1,LOW);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  digitalWrite(STDY,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,0);&lt;br /&gt;
  analogWrite(PWM_motorB,0);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(11,LOW);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{ &lt;br /&gt;
  servoTour.Update();  &lt;br /&gt;
  digitalWrite(STDY,HIGH);&lt;br /&gt;
  digitalWrite(AIN1,HIGH);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,255);&lt;br /&gt;
  digitalWrite(BIN1,HIGH);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorB,255);&lt;br /&gt;
  if(sonar()&amp;lt;50)&lt;br /&gt;
  {&lt;br /&gt;
    digitalWrite(STDY,LOW);&lt;br /&gt;
    digitalWrite(BIN1,LOW);&lt;br /&gt;
    unsigned long tps = millis();&lt;br /&gt;
    while (millis()-tps &amp;lt; 1000)&lt;br /&gt;
    {&lt;br /&gt;
     digitalWrite(STDY,HIGH); &lt;br /&gt;
     digitalWrite(BIN2,HIGH);&lt;br /&gt;
     analogWrite(PWM_motorB,255);&lt;br /&gt;
     previous = millis();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  unsigned long time = millis();&lt;br /&gt;
  detect();&lt;br /&gt;
  switch (cas)&lt;br /&gt;
  { &lt;br /&gt;
    case 1 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(BIN2,HIGH);&lt;br /&gt;
       digitalWrite(BIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorB,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
      if (sonar()&amp;lt; 50)&lt;br /&gt;
      {&lt;br /&gt;
        digitalWrite(EA,HIGH);&lt;br /&gt;
        analogWrite(PWM_motorA,0);&lt;br /&gt;
        analogWrite(PWM_motorB,0);&lt;br /&gt;
        delay (5000);&lt;br /&gt;
      }&lt;br /&gt;
    case 3 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(AIN2,HIGH);&lt;br /&gt;
       digitalWrite(AIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorA,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    default:&lt;br /&gt;
      break;&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- Ayant choisis des moteurs performants, ceux ci nécessite pas mal de tension pour fonctionner. Nous avons sous-estimer ce besoin en début de projet. Or durant la phase de programmation, nous nous sommes rendu-compte que notre robot n'avait pas assez de &amp;quot;jus&amp;quot; pour fonctionner. Cela à donc générer pas mal de soucis et de casses-têtes. Une Solution serai de modifier l'alimentation du robot, et d'en chosir une plus adaptée à la configuration matériel. Nous aurions pu échanger les moteurs par des servos continus, mais cela ne rentrait pas dans notre vision du projet (Conception d'un Robot relativement rapide).&lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. &lt;br /&gt;
Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions garder l'idée de la tourelle mais la perfectionner : lui attribuer par exemple un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils de ceux ci dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. &lt;br /&gt;
De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc, en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond parfaitement à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être toute fois extrêmement précise et elle demande beaucoup de temps : il faut repérer les dimensions exactes que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux (de l'ordre du micromètre). Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embêtés car nous n'avions pas d'appareil pour souder chez nous. Nous avons donc cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver cela. Et nous avons découvert, à Nanterre (92), un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionnés des machines qu'ils ont acquit durant toutes ces années depuis la création de l'association car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
&lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, notre robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons seulement mis le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les petites proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet, nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le Shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux et cela réduira également les erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais que peu de compétences en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu le faire car c'est celui que je trouvais le plus intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. De plus, la mécanique est un domaine qui m'attire depuis longtemps. Ainsi, je me suis donné la mission de concevoir toute la partie mécanique de ce BE c'est-à-dire la réalisation du châssis du robot. J'ai donc créé ses contours, sa forme mais aussi imaginé l'emplacement, de manière précise, de chacun des éléments que nous allions devoir fixer sur le châssis. &lt;br /&gt;
&lt;br /&gt;
Les débuts dans ce BE étaient un peu rudes pour moi car je me suis retrouvée immergée dans un contexte et avec un langage nouveaux. J'ai du donc apprendre un nouveau vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, c'est mon partenaire Pierre qui a réalisé le codage, ce qui m'a permis appréhender la logique et de me familiariser avec cette technique. &lt;br /&gt;
&lt;br /&gt;
Au final, ce BE fut très enrichissant pour moi car il m'a fait sortir de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pierre : Le Monde de la robotique m’était inconnu avant le Bureau d’Etude. La promesse d’un mélange entre électronique,informatique et mécanique, faites par la présentation du BE m’enchantait. C’est donc avec notre peu de connaissances que nous nous sommes lancés avec Clémence dans ce projet .“Vous allez réalisez de bout en bout un robot autonome” nous a t-on dit. Un rêve de Gamin. Les Phases d’électronique et d’informatique éveillaient en moi le plus d’interet.&lt;br /&gt;
&lt;br /&gt;
Les débuts ont étés difficiles. L’autonomie et la liberté accordée m’ont dérouté au commencement. Il fallait à la fois acquérir les connaissances techniques, mais aussi s’organiser autour d’une méthode de Projet jusqu’alors très peu connu pour moi. Mais la bonne ambiance et la bien bienveillance qui régnait dans le BE ont été porteuses.&lt;br /&gt;
&lt;br /&gt;
Les nombreuses découvertes de ce BE me donne aujourd’hui envie de réaliser mes propres projets d’électronique communiquant (pourquoi pas rendre mon frigo intelligent ?). Surtout, la découverte de la philosophie d ”Arduino” m’a ouverte le champ des possibles. Cela renforce aussi mon choix de m’orienter en Section IMA l’année prochaine.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9799</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9799"/>
				<updated>2018-05-07T05:02:50Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Ce que ce BE nous a apporté */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors, dans le cas d’un Robot Prédateur, de concevoir un robot capable de détecter les proies et de les chasser ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur qui était “''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''” nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela, il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs, nous avons tout de suite pensé aux rapaces et cela nous a donc amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créé une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu listé tous les composants dont nous aurons besoin pour l'élaboration de notre robot pour préciser leur disposition. Ainsi, nous avons pu concevoir notre bouclier de manière optimale en prenant en compte toutes ces informations. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie.&lt;br /&gt;
&lt;br /&gt;
Puis, nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de la découpe laser''' : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon en vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
&lt;br /&gt;
Pour les roues, nous les avons fixées sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions enfin une spécificité notable sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y fixer les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera la position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de l'élaboration de la tourelle''' : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
#include&amp;lt;Servo.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremote.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremoteInt.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// TSOP&lt;br /&gt;
&lt;br /&gt;
char TSOP1 = A0;&lt;br /&gt;
char TSOP2 = A1;&lt;br /&gt;
char TSOP3 = A2;&lt;br /&gt;
&lt;br /&gt;
int cas = 0;&lt;br /&gt;
&lt;br /&gt;
IRrecv IR1(TSOP1); // créer les instances irrecv&lt;br /&gt;
IRrecv IR2(TSOP2);&lt;br /&gt;
IRrecv IR3(TSOP3);&lt;br /&gt;
decode_results results;&lt;br /&gt;
&lt;br /&gt;
void detect()  &lt;br /&gt;
{&lt;br /&gt;
  if (IR1.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 1;&lt;br /&gt;
    IR1.resume(); &lt;br /&gt;
  } &lt;br /&gt;
  else if (IR2.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 2;&lt;br /&gt;
    IR2.resume();&lt;br /&gt;
  }&lt;br /&gt;
  else if (IR3.decode(&amp;amp;results))&lt;br /&gt;
&lt;br /&gt;
  { &lt;br /&gt;
    cas = 3;&lt;br /&gt;
    IR3.resume();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ELECTO-AIMANT&lt;br /&gt;
&lt;br /&gt;
int EA = 53;&lt;br /&gt;
&lt;br /&gt;
// SONAR&lt;br /&gt;
&lt;br /&gt;
int TRIG=41;&lt;br /&gt;
int ECHO=43;&lt;br /&gt;
const unsigned long MEASURE_TIMEOUT = 25000UL;&lt;br /&gt;
const float SOUND_SPEED = 340.0 / 1000;&lt;br /&gt;
&lt;br /&gt;
float sonar()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(TRIG, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG, LOW);&lt;br /&gt;
  &lt;br /&gt;
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */&lt;br /&gt;
  long measure = pulseIn(ECHO, HIGH, MEASURE_TIMEOUT);&lt;br /&gt;
  &lt;br /&gt;
   &lt;br /&gt;
  /* 3. Calcul la distance à partir du temps mesuré */&lt;br /&gt;
  float distance_mm = measure / 2.0 * SOUND_SPEED;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  return distance_mm;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//MOTORS&lt;br /&gt;
&lt;br /&gt;
int PWM_motorA=10;&lt;br /&gt;
int PWM_motorB=9;&lt;br /&gt;
int AIN1=50;&lt;br /&gt;
int AIN2=48;&lt;br /&gt;
int BIN1=44;&lt;br /&gt;
int BIN2=42;&lt;br /&gt;
int STDY=46;&lt;br /&gt;
unsigned long previous = millis();&lt;br /&gt;
&lt;br /&gt;
class Sweeper&lt;br /&gt;
  {&lt;br /&gt;
    Servo servo;              // the servo&lt;br /&gt;
    int pos;              // current servo position&lt;br /&gt;
    int increment;        // increment to move for each interval&lt;br /&gt;
    int  updateInterval;      // interval between updates&lt;br /&gt;
    unsigned long lastUpdate; // last update of position&lt;br /&gt;
&lt;br /&gt;
  public:&lt;br /&gt;
    Sweeper(int interval)&lt;br /&gt;
    {&lt;br /&gt;
      updateInterval = interval;&lt;br /&gt;
      increment = 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Attach(int pin)&lt;br /&gt;
    {&lt;br /&gt;
      servo.attach(pin);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Detach()&lt;br /&gt;
    {&lt;br /&gt;
      servo.detach();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Update()&lt;br /&gt;
    {&lt;br /&gt;
      if((millis() - lastUpdate) &amp;gt; updateInterval)  // time to update&lt;br /&gt;
      {&lt;br /&gt;
        lastUpdate = millis();&lt;br /&gt;
        pos += increment;&lt;br /&gt;
        servo.write(pos);&lt;br /&gt;
        Serial.println(pos);&lt;br /&gt;
        if ((pos &amp;gt;= 160) || (pos &amp;lt;= 0)) // end of sweep&lt;br /&gt;
        {&lt;br /&gt;
          // reverse direction&lt;br /&gt;
          increment = -increment;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Sweeper servoTour(50);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  IR1.enableIRIn();&lt;br /&gt;
  IR2.enableIRIn();&lt;br /&gt;
  IR3.enableIRIn(); &lt;br /&gt;
  &lt;br /&gt;
  servoTour.Attach(8);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(EA,OUTPUT);&lt;br /&gt;
  digitalWrite(EA,LOW);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(TRIG,OUTPUT);&lt;br /&gt;
  digitalWrite(TRIG,LOW);&lt;br /&gt;
  pinMode(ECHO,INPUT);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(AIN1,OUTPUT);&lt;br /&gt;
  pinMode(AIN2,OUTPUT);&lt;br /&gt;
  pinMode(BIN1,OUTPUT);&lt;br /&gt;
  pinMode(BIN2,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorA,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorB,OUTPUT);&lt;br /&gt;
  pinMode(STDY,OUTPUT);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(AIN1,LOW);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  digitalWrite(BIN1,LOW);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  digitalWrite(STDY,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,0);&lt;br /&gt;
  analogWrite(PWM_motorB,0);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(11,LOW);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{ &lt;br /&gt;
  servoTour.Update();  &lt;br /&gt;
  digitalWrite(STDY,HIGH);&lt;br /&gt;
  digitalWrite(AIN1,HIGH);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,255);&lt;br /&gt;
  digitalWrite(BIN1,HIGH);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorB,255);&lt;br /&gt;
  if(sonar()&amp;lt;50)&lt;br /&gt;
  {&lt;br /&gt;
    digitalWrite(STDY,LOW);&lt;br /&gt;
    digitalWrite(BIN1,LOW);&lt;br /&gt;
    unsigned long tps = millis();&lt;br /&gt;
    while (millis()-tps &amp;lt; 1000)&lt;br /&gt;
    {&lt;br /&gt;
     digitalWrite(STDY,HIGH); &lt;br /&gt;
     digitalWrite(BIN2,HIGH);&lt;br /&gt;
     analogWrite(PWM_motorB,255);&lt;br /&gt;
     previous = millis();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  unsigned long time = millis();&lt;br /&gt;
  detect();&lt;br /&gt;
  switch (cas)&lt;br /&gt;
  { &lt;br /&gt;
    case 1 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(BIN2,HIGH);&lt;br /&gt;
       digitalWrite(BIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorB,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
      if (sonar()&amp;lt; 50)&lt;br /&gt;
      {&lt;br /&gt;
        digitalWrite(EA,HIGH);&lt;br /&gt;
        analogWrite(PWM_motorA,0);&lt;br /&gt;
        analogWrite(PWM_motorB,0);&lt;br /&gt;
        delay (5000);&lt;br /&gt;
      }&lt;br /&gt;
    case 3 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(AIN2,HIGH);&lt;br /&gt;
       digitalWrite(AIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorA,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    default:&lt;br /&gt;
      break;&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- Ayant choisis des moteurs performants, ceux ci nécessite pas mal de tension pour fonctionner. Nous avons sous-estimer ce besoin en début de projet. Or durant la phase de programmation, nous nous sommes rendu-compte que notre robot n'avait pas assez de &amp;quot;jus&amp;quot; pour fonctionner. Cela à donc générer pas mal de soucis et de casses-têtes. Une Solution serai de modifier l'alimentation du robot, et d'en chosir une plus adaptée à la configuration matériel. Nous aurions pu échanger les moteurs par des servos continus, mais cela ne rentrait pas dans notre vision du projet (Conception d'un Robot relativement rapide).&lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. &lt;br /&gt;
Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions garder l'idée de la tourelle mais la perfectionner : lui attribuer par exemple un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils de ceux ci dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. &lt;br /&gt;
De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc, en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond parfaitement à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être toute fois extrêmement précise et elle demande beaucoup de temps : il faut repérer les dimensions exactes que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux (de l'ordre du micromètre). Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embêtés car nous n'avions pas d'appareil pour souder chez nous. Nous avons donc cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver cela. Et nous avons découvert, à Nanterre (92), un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionnés des machines qu'ils ont acquit durant toutes ces années depuis la création de l'association car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
&lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, notre robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons seulement mis le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les petites proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet, nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le Shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux et cela réduira également les erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais que peu de compétences en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu le faire car c'est celui que je trouvais le plus intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. De plus, la mécanique est un domaine qui m'attire depuis longtemps. Ainsi, je me suis donné la mission de concevoir toute la partie mécanique de ce BE c'est-à-dire la réalisation du châssis du robot. J'ai donc créé ses contours, sa forme mais aussi imaginé l'emplacement, de manière précise, de chacun des éléments que nous allions devoir fixer sur le châssis. &lt;br /&gt;
&lt;br /&gt;
Les débuts dans ce BE étaient un peu rudes pour moi car je me suis retrouvée immergée dans un contexte et avec un langage nouveaux. J'ai du donc apprendre un nouveau vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, c'est mon partenaire Pierre qui a réalisé le codage, ce qui m'a permis appréhender la logique et de me familiariser avec cette technique. &lt;br /&gt;
&lt;br /&gt;
Au final, ce BE fut très enrichissant pour moi car il m'a fait sortir de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
Pierre : Le Monde de la robotique m’était inconnu avant le Bureau d’Etude. La promesse d’un mélange entre électronique,informatique et mécanique, faites par la présentation du BE m’enchantait. C’est donc avec notre peu de connaissances que nous nous sommes lancés avec Clémence dans ce projet .“Vous allez réalisez de bout en bout un robot autonome” nous a t-on dit. Un rêve de Gamin. Les Phases d’électronique et d’informatique éveillaient en moi le plus d’interet.&lt;br /&gt;
&lt;br /&gt;
Les débuts ont étés difficiles. L’autonomie et la liberté accordée m’ont dérouté au commencement. Il fallait à la fois acquérir les connaissances techniques, mais aussi s’organiser autour d’une méthode de Projet jusqu’alors très peu connu pour moi. Mais la bonne ambiance et la bien bienveillance qui régnait dans le BE ont été porteuses.&lt;br /&gt;
&lt;br /&gt;
Les nombreuses découvertes de ce BE me donne aujourd’hui envie de réaliser mes propres projets d’électronique communiquant (pourquoi pas rendre mon frigo intelligent ?). Surtout, la découverte de la philosophie d ”Arduino” m’a ouverte le champ des possibles. Cela renforce aussi mon choix de m’orienter en Section IMA l’année prochaine.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9798</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9798"/>
				<updated>2018-05-07T05:02:11Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Ce que ce BE nous a apporté */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors, dans le cas d’un Robot Prédateur, de concevoir un robot capable de détecter les proies et de les chasser ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur qui était “''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''” nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela, il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs, nous avons tout de suite pensé aux rapaces et cela nous a donc amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créé une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu listé tous les composants dont nous aurons besoin pour l'élaboration de notre robot pour préciser leur disposition. Ainsi, nous avons pu concevoir notre bouclier de manière optimale en prenant en compte toutes ces informations. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie.&lt;br /&gt;
&lt;br /&gt;
Puis, nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de la découpe laser''' : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon en vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
&lt;br /&gt;
Pour les roues, nous les avons fixées sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions enfin une spécificité notable sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y fixer les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera la position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de l'élaboration de la tourelle''' : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
#include&amp;lt;Servo.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremote.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremoteInt.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// TSOP&lt;br /&gt;
&lt;br /&gt;
char TSOP1 = A0;&lt;br /&gt;
char TSOP2 = A1;&lt;br /&gt;
char TSOP3 = A2;&lt;br /&gt;
&lt;br /&gt;
int cas = 0;&lt;br /&gt;
&lt;br /&gt;
IRrecv IR1(TSOP1); // créer les instances irrecv&lt;br /&gt;
IRrecv IR2(TSOP2);&lt;br /&gt;
IRrecv IR3(TSOP3);&lt;br /&gt;
decode_results results;&lt;br /&gt;
&lt;br /&gt;
void detect()  &lt;br /&gt;
{&lt;br /&gt;
  if (IR1.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 1;&lt;br /&gt;
    IR1.resume(); &lt;br /&gt;
  } &lt;br /&gt;
  else if (IR2.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 2;&lt;br /&gt;
    IR2.resume();&lt;br /&gt;
  }&lt;br /&gt;
  else if (IR3.decode(&amp;amp;results))&lt;br /&gt;
&lt;br /&gt;
  { &lt;br /&gt;
    cas = 3;&lt;br /&gt;
    IR3.resume();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ELECTO-AIMANT&lt;br /&gt;
&lt;br /&gt;
int EA = 53;&lt;br /&gt;
&lt;br /&gt;
// SONAR&lt;br /&gt;
&lt;br /&gt;
int TRIG=41;&lt;br /&gt;
int ECHO=43;&lt;br /&gt;
const unsigned long MEASURE_TIMEOUT = 25000UL;&lt;br /&gt;
const float SOUND_SPEED = 340.0 / 1000;&lt;br /&gt;
&lt;br /&gt;
float sonar()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(TRIG, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG, LOW);&lt;br /&gt;
  &lt;br /&gt;
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */&lt;br /&gt;
  long measure = pulseIn(ECHO, HIGH, MEASURE_TIMEOUT);&lt;br /&gt;
  &lt;br /&gt;
   &lt;br /&gt;
  /* 3. Calcul la distance à partir du temps mesuré */&lt;br /&gt;
  float distance_mm = measure / 2.0 * SOUND_SPEED;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  return distance_mm;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//MOTORS&lt;br /&gt;
&lt;br /&gt;
int PWM_motorA=10;&lt;br /&gt;
int PWM_motorB=9;&lt;br /&gt;
int AIN1=50;&lt;br /&gt;
int AIN2=48;&lt;br /&gt;
int BIN1=44;&lt;br /&gt;
int BIN2=42;&lt;br /&gt;
int STDY=46;&lt;br /&gt;
unsigned long previous = millis();&lt;br /&gt;
&lt;br /&gt;
class Sweeper&lt;br /&gt;
  {&lt;br /&gt;
    Servo servo;              // the servo&lt;br /&gt;
    int pos;              // current servo position&lt;br /&gt;
    int increment;        // increment to move for each interval&lt;br /&gt;
    int  updateInterval;      // interval between updates&lt;br /&gt;
    unsigned long lastUpdate; // last update of position&lt;br /&gt;
&lt;br /&gt;
  public:&lt;br /&gt;
    Sweeper(int interval)&lt;br /&gt;
    {&lt;br /&gt;
      updateInterval = interval;&lt;br /&gt;
      increment = 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Attach(int pin)&lt;br /&gt;
    {&lt;br /&gt;
      servo.attach(pin);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Detach()&lt;br /&gt;
    {&lt;br /&gt;
      servo.detach();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Update()&lt;br /&gt;
    {&lt;br /&gt;
      if((millis() - lastUpdate) &amp;gt; updateInterval)  // time to update&lt;br /&gt;
      {&lt;br /&gt;
        lastUpdate = millis();&lt;br /&gt;
        pos += increment;&lt;br /&gt;
        servo.write(pos);&lt;br /&gt;
        Serial.println(pos);&lt;br /&gt;
        if ((pos &amp;gt;= 160) || (pos &amp;lt;= 0)) // end of sweep&lt;br /&gt;
        {&lt;br /&gt;
          // reverse direction&lt;br /&gt;
          increment = -increment;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Sweeper servoTour(50);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  IR1.enableIRIn();&lt;br /&gt;
  IR2.enableIRIn();&lt;br /&gt;
  IR3.enableIRIn(); &lt;br /&gt;
  &lt;br /&gt;
  servoTour.Attach(8);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(EA,OUTPUT);&lt;br /&gt;
  digitalWrite(EA,LOW);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(TRIG,OUTPUT);&lt;br /&gt;
  digitalWrite(TRIG,LOW);&lt;br /&gt;
  pinMode(ECHO,INPUT);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(AIN1,OUTPUT);&lt;br /&gt;
  pinMode(AIN2,OUTPUT);&lt;br /&gt;
  pinMode(BIN1,OUTPUT);&lt;br /&gt;
  pinMode(BIN2,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorA,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorB,OUTPUT);&lt;br /&gt;
  pinMode(STDY,OUTPUT);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(AIN1,LOW);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  digitalWrite(BIN1,LOW);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  digitalWrite(STDY,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,0);&lt;br /&gt;
  analogWrite(PWM_motorB,0);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(11,LOW);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{ &lt;br /&gt;
  servoTour.Update();  &lt;br /&gt;
  digitalWrite(STDY,HIGH);&lt;br /&gt;
  digitalWrite(AIN1,HIGH);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,255);&lt;br /&gt;
  digitalWrite(BIN1,HIGH);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorB,255);&lt;br /&gt;
  if(sonar()&amp;lt;50)&lt;br /&gt;
  {&lt;br /&gt;
    digitalWrite(STDY,LOW);&lt;br /&gt;
    digitalWrite(BIN1,LOW);&lt;br /&gt;
    unsigned long tps = millis();&lt;br /&gt;
    while (millis()-tps &amp;lt; 1000)&lt;br /&gt;
    {&lt;br /&gt;
     digitalWrite(STDY,HIGH); &lt;br /&gt;
     digitalWrite(BIN2,HIGH);&lt;br /&gt;
     analogWrite(PWM_motorB,255);&lt;br /&gt;
     previous = millis();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  unsigned long time = millis();&lt;br /&gt;
  detect();&lt;br /&gt;
  switch (cas)&lt;br /&gt;
  { &lt;br /&gt;
    case 1 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(BIN2,HIGH);&lt;br /&gt;
       digitalWrite(BIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorB,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
      if (sonar()&amp;lt; 50)&lt;br /&gt;
      {&lt;br /&gt;
        digitalWrite(EA,HIGH);&lt;br /&gt;
        analogWrite(PWM_motorA,0);&lt;br /&gt;
        analogWrite(PWM_motorB,0);&lt;br /&gt;
        delay (5000);&lt;br /&gt;
      }&lt;br /&gt;
    case 3 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(AIN2,HIGH);&lt;br /&gt;
       digitalWrite(AIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorA,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    default:&lt;br /&gt;
      break;&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- Ayant choisis des moteurs performants, ceux ci nécessite pas mal de tension pour fonctionner. Nous avons sous-estimer ce besoin en début de projet. Or durant la phase de programmation, nous nous sommes rendu-compte que notre robot n'avait pas assez de &amp;quot;jus&amp;quot; pour fonctionner. Cela à donc générer pas mal de soucis et de casses-têtes. Une Solution serai de modifier l'alimentation du robot, et d'en chosir une plus adaptée à la configuration matériel. Nous aurions pu échanger les moteurs par des servos continus, mais cela ne rentrait pas dans notre vision du projet (Conception d'un Robot relativement rapide).&lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. &lt;br /&gt;
Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions garder l'idée de la tourelle mais la perfectionner : lui attribuer par exemple un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils de ceux ci dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. &lt;br /&gt;
De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc, en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond parfaitement à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être toute fois extrêmement précise et elle demande beaucoup de temps : il faut repérer les dimensions exactes que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux (de l'ordre du micromètre). Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embêtés car nous n'avions pas d'appareil pour souder chez nous. Nous avons donc cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver cela. Et nous avons découvert, à Nanterre (92), un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionnés des machines qu'ils ont acquit durant toutes ces années depuis la création de l'association car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
&lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, notre robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons seulement mis le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les petites proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet, nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le Shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux et cela réduira également les erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais que peu de compétences en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu le faire car c'est celui que je trouvais le plus intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. De plus, la mécanique est un domaine qui m'attire depuis longtemps. Ainsi, je me suis donné la mission de concevoir toute la partie mécanique de ce BE c'est-à-dire la réalisation du châssis du robot. J'ai donc créé ses contours, sa forme mais aussi imaginé l'emplacement, de manière précise, de chacun des éléments que nous allions devoir fixer sur le châssis. &lt;br /&gt;
&lt;br /&gt;
Les débuts dans ce BE étaient un peu rudes pour moi car je me suis retrouvée immergée dans un contexte et avec un langage nouveaux. J'ai du donc apprendre un nouveau vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, c'est mon partenaire Pierre qui a réalisé le codage, ce qui m'a permis appréhender la logique et de me familiariser avec cette technique. &lt;br /&gt;
&lt;br /&gt;
Au final, ce BE fut très enrichissant pour moi car il m'a fait sortir de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
Pierre : Le Monde de la robotique m’était inconnu avant le Bureau d’Etude. La promesse d’un mélange entre électronique,informatique et mécanique, faites par la présentation du BE m’enchantait. C’est donc avec notre peu de connaissances que nous nous sommes lancés avec Clémence dans ce projet .“Vous allez réalisez de bout en bout un robot autonome” nous a t-on dit. Un rêve de Gamin. Les Phases d’électronique et d’informatique éveillaient en moi le plus d’interet. Les débuts ont étés difficiles. L’autonomie et la liberté accordée m’ont dérouté au commencement. Il fallait à la fois acquérir les connaissances techniques, mais aussi s’organiser autour d’une méthode de Projet jusqu’alors très peu connu pour moi. Mais la bonne ambiance et la bien bienveillance qui régnait dans le BE ont été porteuses.&lt;br /&gt;
Les nombreuses découvertes de ce BE me donne aujourd’hui envie de réaliser mes propres projets d’électronique communiquant (pourquoi pas rendre mon frigo intelligent ?). Surtout, la découverte de la philosophie d ”Arduino” m’a ouverte le champ des possibles. Cela renforce aussi mon choix de m’orienter en Section IMA l’année prochaine.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9797</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9797"/>
				<updated>2018-05-07T04:33:34Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Problèmes rencontrés durant le BE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors, dans le cas d’un Robot Prédateur, de concevoir un robot capable de détecter les proies et de les chasser ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur qui était “''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''” nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela, il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs, nous avons tout de suite pensé aux rapaces et cela nous a donc amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créé une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu listé tous les composants dont nous aurons besoin pour l'élaboration de notre robot pour préciser leur disposition. Ainsi, nous avons pu concevoir notre bouclier de manière optimale en prenant en compte toutes ces informations. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie.&lt;br /&gt;
&lt;br /&gt;
Puis, nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de la découpe laser''' : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon en vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
&lt;br /&gt;
Pour les roues, nous les avons fixées sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions enfin une spécificité notable sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y fixer les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera la position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de l'élaboration de la tourelle''' : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
#include&amp;lt;Servo.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremote.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremoteInt.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// TSOP&lt;br /&gt;
&lt;br /&gt;
char TSOP1 = A0;&lt;br /&gt;
char TSOP2 = A1;&lt;br /&gt;
char TSOP3 = A2;&lt;br /&gt;
&lt;br /&gt;
int cas = 0;&lt;br /&gt;
&lt;br /&gt;
IRrecv IR1(TSOP1); // créer les instances irrecv&lt;br /&gt;
IRrecv IR2(TSOP2);&lt;br /&gt;
IRrecv IR3(TSOP3);&lt;br /&gt;
decode_results results;&lt;br /&gt;
&lt;br /&gt;
void detect()  &lt;br /&gt;
{&lt;br /&gt;
  if (IR1.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 1;&lt;br /&gt;
    IR1.resume(); &lt;br /&gt;
  } &lt;br /&gt;
  else if (IR2.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 2;&lt;br /&gt;
    IR2.resume();&lt;br /&gt;
  }&lt;br /&gt;
  else if (IR3.decode(&amp;amp;results))&lt;br /&gt;
&lt;br /&gt;
  { &lt;br /&gt;
    cas = 3;&lt;br /&gt;
    IR3.resume();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ELECTO-AIMANT&lt;br /&gt;
&lt;br /&gt;
int EA = 53;&lt;br /&gt;
&lt;br /&gt;
// SONAR&lt;br /&gt;
&lt;br /&gt;
int TRIG=41;&lt;br /&gt;
int ECHO=43;&lt;br /&gt;
const unsigned long MEASURE_TIMEOUT = 25000UL;&lt;br /&gt;
const float SOUND_SPEED = 340.0 / 1000;&lt;br /&gt;
&lt;br /&gt;
float sonar()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(TRIG, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG, LOW);&lt;br /&gt;
  &lt;br /&gt;
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */&lt;br /&gt;
  long measure = pulseIn(ECHO, HIGH, MEASURE_TIMEOUT);&lt;br /&gt;
  &lt;br /&gt;
   &lt;br /&gt;
  /* 3. Calcul la distance à partir du temps mesuré */&lt;br /&gt;
  float distance_mm = measure / 2.0 * SOUND_SPEED;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  return distance_mm;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//MOTORS&lt;br /&gt;
&lt;br /&gt;
int PWM_motorA=10;&lt;br /&gt;
int PWM_motorB=9;&lt;br /&gt;
int AIN1=50;&lt;br /&gt;
int AIN2=48;&lt;br /&gt;
int BIN1=44;&lt;br /&gt;
int BIN2=42;&lt;br /&gt;
int STDY=46;&lt;br /&gt;
unsigned long previous = millis();&lt;br /&gt;
&lt;br /&gt;
class Sweeper&lt;br /&gt;
  {&lt;br /&gt;
    Servo servo;              // the servo&lt;br /&gt;
    int pos;              // current servo position&lt;br /&gt;
    int increment;        // increment to move for each interval&lt;br /&gt;
    int  updateInterval;      // interval between updates&lt;br /&gt;
    unsigned long lastUpdate; // last update of position&lt;br /&gt;
&lt;br /&gt;
  public:&lt;br /&gt;
    Sweeper(int interval)&lt;br /&gt;
    {&lt;br /&gt;
      updateInterval = interval;&lt;br /&gt;
      increment = 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Attach(int pin)&lt;br /&gt;
    {&lt;br /&gt;
      servo.attach(pin);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Detach()&lt;br /&gt;
    {&lt;br /&gt;
      servo.detach();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Update()&lt;br /&gt;
    {&lt;br /&gt;
      if((millis() - lastUpdate) &amp;gt; updateInterval)  // time to update&lt;br /&gt;
      {&lt;br /&gt;
        lastUpdate = millis();&lt;br /&gt;
        pos += increment;&lt;br /&gt;
        servo.write(pos);&lt;br /&gt;
        Serial.println(pos);&lt;br /&gt;
        if ((pos &amp;gt;= 160) || (pos &amp;lt;= 0)) // end of sweep&lt;br /&gt;
        {&lt;br /&gt;
          // reverse direction&lt;br /&gt;
          increment = -increment;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Sweeper servoTour(50);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  IR1.enableIRIn();&lt;br /&gt;
  IR2.enableIRIn();&lt;br /&gt;
  IR3.enableIRIn(); &lt;br /&gt;
  &lt;br /&gt;
  servoTour.Attach(8);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(EA,OUTPUT);&lt;br /&gt;
  digitalWrite(EA,LOW);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(TRIG,OUTPUT);&lt;br /&gt;
  digitalWrite(TRIG,LOW);&lt;br /&gt;
  pinMode(ECHO,INPUT);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(AIN1,OUTPUT);&lt;br /&gt;
  pinMode(AIN2,OUTPUT);&lt;br /&gt;
  pinMode(BIN1,OUTPUT);&lt;br /&gt;
  pinMode(BIN2,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorA,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorB,OUTPUT);&lt;br /&gt;
  pinMode(STDY,OUTPUT);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(AIN1,LOW);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  digitalWrite(BIN1,LOW);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  digitalWrite(STDY,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,0);&lt;br /&gt;
  analogWrite(PWM_motorB,0);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(11,LOW);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{ &lt;br /&gt;
  servoTour.Update();  &lt;br /&gt;
  digitalWrite(STDY,HIGH);&lt;br /&gt;
  digitalWrite(AIN1,HIGH);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,255);&lt;br /&gt;
  digitalWrite(BIN1,HIGH);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorB,255);&lt;br /&gt;
  if(sonar()&amp;lt;50)&lt;br /&gt;
  {&lt;br /&gt;
    digitalWrite(STDY,LOW);&lt;br /&gt;
    digitalWrite(BIN1,LOW);&lt;br /&gt;
    unsigned long tps = millis();&lt;br /&gt;
    while (millis()-tps &amp;lt; 1000)&lt;br /&gt;
    {&lt;br /&gt;
     digitalWrite(STDY,HIGH); &lt;br /&gt;
     digitalWrite(BIN2,HIGH);&lt;br /&gt;
     analogWrite(PWM_motorB,255);&lt;br /&gt;
     previous = millis();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  unsigned long time = millis();&lt;br /&gt;
  detect();&lt;br /&gt;
  switch (cas)&lt;br /&gt;
  { &lt;br /&gt;
    case 1 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(BIN2,HIGH);&lt;br /&gt;
       digitalWrite(BIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorB,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
      if (sonar()&amp;lt; 50)&lt;br /&gt;
      {&lt;br /&gt;
        digitalWrite(EA,HIGH);&lt;br /&gt;
        analogWrite(PWM_motorA,0);&lt;br /&gt;
        analogWrite(PWM_motorB,0);&lt;br /&gt;
        delay (5000);&lt;br /&gt;
      }&lt;br /&gt;
    case 3 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(AIN2,HIGH);&lt;br /&gt;
       digitalWrite(AIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorA,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    default:&lt;br /&gt;
      break;&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- Ayant choisis des moteurs performants, ceux ci nécessite pas mal de tension pour fonctionner. Nous avons sous-estimer ce besoin en début de projet. Or durant la phase de programmation, nous nous sommes rendu-compte que notre robot n'avait pas assez de &amp;quot;jus&amp;quot; pour fonctionner. Cela à donc générer pas mal de soucis et de casses-têtes. Une Solution serai de modifier l'alimentation du robot, et d'en chosir une plus adaptée à la configuration matériel. Nous aurions pu échanger les moteurs par des servos continus, mais cela ne rentrait pas dans notre vision du projet (Conception d'un Robot relativement rapide).&lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. &lt;br /&gt;
Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions garder l'idée de la tourelle mais la perfectionner : lui attribuer par exemple un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils de ceux ci dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. &lt;br /&gt;
De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc, en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond parfaitement à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être toute fois extrêmement précise et elle demande beaucoup de temps : il faut repérer les dimensions exactes que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux (de l'ordre du micromètre). Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embêtés car nous n'avions pas d'appareil pour souder chez nous. Nous avons donc cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver cela. Et nous avons découvert, à Nanterre (92), un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionnés des machines qu'ils ont acquit durant toutes ces années depuis la création de l'association car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
&lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, notre robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons seulement mis le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les petites proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet, nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le Shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux et cela réduira également les erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais que peu de compétences en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu le faire car c'est celui que je trouvais le plus intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. De plus, la mécanique est un domaine qui m'attire depuis longtemps. Ainsi, je me suis donné la mission de concevoir toute la partie mécanique de ce BE c'est-à-dire la réalisation du châssis du robot. J'ai donc créé ses contours, sa forme mais aussi imaginé l'emplacement, de manière précise, de chacun des éléments que nous allions devoir fixer sur le châssis. &lt;br /&gt;
&lt;br /&gt;
Les débuts dans ce BE étaient un peu rudes pour moi car je me suis retrouvée immergée dans un contexte et avec un langage nouveaux. J'ai du donc apprendre un nouveau vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, c'est mon partenaire Pierre qui a réalisé le codage, ce qui m'a permis appréhender la logique et de me familiariser avec cette technique. &lt;br /&gt;
&lt;br /&gt;
Au final, ce BE fut très enrichissant pour moi car il m'a fait sortir de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9796</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9796"/>
				<updated>2018-05-07T04:25:38Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors, dans le cas d’un Robot Prédateur, de concevoir un robot capable de détecter les proies et de les chasser ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur qui était “''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''” nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela, il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs, nous avons tout de suite pensé aux rapaces et cela nous a donc amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créé une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu listé tous les composants dont nous aurons besoin pour l'élaboration de notre robot pour préciser leur disposition. Ainsi, nous avons pu concevoir notre bouclier de manière optimale en prenant en compte toutes ces informations. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie.&lt;br /&gt;
&lt;br /&gt;
Puis, nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de la découpe laser''' : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon en vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
&lt;br /&gt;
Pour les roues, nous les avons fixées sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions enfin une spécificité notable sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y fixer les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera la position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de l'élaboration de la tourelle''' : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
#include&amp;lt;Servo.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremote.h&amp;gt;&lt;br /&gt;
#include &amp;lt;IRremoteInt.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// TSOP&lt;br /&gt;
&lt;br /&gt;
char TSOP1 = A0;&lt;br /&gt;
char TSOP2 = A1;&lt;br /&gt;
char TSOP3 = A2;&lt;br /&gt;
&lt;br /&gt;
int cas = 0;&lt;br /&gt;
&lt;br /&gt;
IRrecv IR1(TSOP1); // créer les instances irrecv&lt;br /&gt;
IRrecv IR2(TSOP2);&lt;br /&gt;
IRrecv IR3(TSOP3);&lt;br /&gt;
decode_results results;&lt;br /&gt;
&lt;br /&gt;
void detect()  &lt;br /&gt;
{&lt;br /&gt;
  if (IR1.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 1;&lt;br /&gt;
    IR1.resume(); &lt;br /&gt;
  } &lt;br /&gt;
  else if (IR2.decode(&amp;amp;results)) &lt;br /&gt;
  { &lt;br /&gt;
    cas = 2;&lt;br /&gt;
    IR2.resume();&lt;br /&gt;
  }&lt;br /&gt;
  else if (IR3.decode(&amp;amp;results))&lt;br /&gt;
&lt;br /&gt;
  { &lt;br /&gt;
    cas = 3;&lt;br /&gt;
    IR3.resume();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ELECTO-AIMANT&lt;br /&gt;
&lt;br /&gt;
int EA = 53;&lt;br /&gt;
&lt;br /&gt;
// SONAR&lt;br /&gt;
&lt;br /&gt;
int TRIG=41;&lt;br /&gt;
int ECHO=43;&lt;br /&gt;
const unsigned long MEASURE_TIMEOUT = 25000UL;&lt;br /&gt;
const float SOUND_SPEED = 340.0 / 1000;&lt;br /&gt;
&lt;br /&gt;
float sonar()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(TRIG, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG, LOW);&lt;br /&gt;
  &lt;br /&gt;
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */&lt;br /&gt;
  long measure = pulseIn(ECHO, HIGH, MEASURE_TIMEOUT);&lt;br /&gt;
  &lt;br /&gt;
   &lt;br /&gt;
  /* 3. Calcul la distance à partir du temps mesuré */&lt;br /&gt;
  float distance_mm = measure / 2.0 * SOUND_SPEED;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  return distance_mm;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//MOTORS&lt;br /&gt;
&lt;br /&gt;
int PWM_motorA=10;&lt;br /&gt;
int PWM_motorB=9;&lt;br /&gt;
int AIN1=50;&lt;br /&gt;
int AIN2=48;&lt;br /&gt;
int BIN1=44;&lt;br /&gt;
int BIN2=42;&lt;br /&gt;
int STDY=46;&lt;br /&gt;
unsigned long previous = millis();&lt;br /&gt;
&lt;br /&gt;
class Sweeper&lt;br /&gt;
  {&lt;br /&gt;
    Servo servo;              // the servo&lt;br /&gt;
    int pos;              // current servo position&lt;br /&gt;
    int increment;        // increment to move for each interval&lt;br /&gt;
    int  updateInterval;      // interval between updates&lt;br /&gt;
    unsigned long lastUpdate; // last update of position&lt;br /&gt;
&lt;br /&gt;
  public:&lt;br /&gt;
    Sweeper(int interval)&lt;br /&gt;
    {&lt;br /&gt;
      updateInterval = interval;&lt;br /&gt;
      increment = 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Attach(int pin)&lt;br /&gt;
    {&lt;br /&gt;
      servo.attach(pin);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Detach()&lt;br /&gt;
    {&lt;br /&gt;
      servo.detach();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Update()&lt;br /&gt;
    {&lt;br /&gt;
      if((millis() - lastUpdate) &amp;gt; updateInterval)  // time to update&lt;br /&gt;
      {&lt;br /&gt;
        lastUpdate = millis();&lt;br /&gt;
        pos += increment;&lt;br /&gt;
        servo.write(pos);&lt;br /&gt;
        Serial.println(pos);&lt;br /&gt;
        if ((pos &amp;gt;= 160) || (pos &amp;lt;= 0)) // end of sweep&lt;br /&gt;
        {&lt;br /&gt;
          // reverse direction&lt;br /&gt;
          increment = -increment;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Sweeper servoTour(50);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  IR1.enableIRIn();&lt;br /&gt;
  IR2.enableIRIn();&lt;br /&gt;
  IR3.enableIRIn(); &lt;br /&gt;
  &lt;br /&gt;
  servoTour.Attach(8);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(EA,OUTPUT);&lt;br /&gt;
  digitalWrite(EA,LOW);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(TRIG,OUTPUT);&lt;br /&gt;
  digitalWrite(TRIG,LOW);&lt;br /&gt;
  pinMode(ECHO,INPUT);&lt;br /&gt;
  &lt;br /&gt;
  pinMode(AIN1,OUTPUT);&lt;br /&gt;
  pinMode(AIN2,OUTPUT);&lt;br /&gt;
  pinMode(BIN1,OUTPUT);&lt;br /&gt;
  pinMode(BIN2,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorA,OUTPUT);&lt;br /&gt;
  pinMode(PWM_motorB,OUTPUT);&lt;br /&gt;
  pinMode(STDY,OUTPUT);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(AIN1,LOW);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  digitalWrite(BIN1,LOW);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  digitalWrite(STDY,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,0);&lt;br /&gt;
  analogWrite(PWM_motorB,0);&lt;br /&gt;
  &lt;br /&gt;
  digitalWrite(11,LOW);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{ &lt;br /&gt;
  servoTour.Update();  &lt;br /&gt;
  digitalWrite(STDY,HIGH);&lt;br /&gt;
  digitalWrite(AIN1,HIGH);&lt;br /&gt;
  digitalWrite(AIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorA,255);&lt;br /&gt;
  digitalWrite(BIN1,HIGH);&lt;br /&gt;
  digitalWrite(BIN2,LOW);&lt;br /&gt;
  analogWrite(PWM_motorB,255);&lt;br /&gt;
  if(sonar()&amp;lt;50)&lt;br /&gt;
  {&lt;br /&gt;
    digitalWrite(STDY,LOW);&lt;br /&gt;
    digitalWrite(BIN1,LOW);&lt;br /&gt;
    unsigned long tps = millis();&lt;br /&gt;
    while (millis()-tps &amp;lt; 1000)&lt;br /&gt;
    {&lt;br /&gt;
     digitalWrite(STDY,HIGH); &lt;br /&gt;
     digitalWrite(BIN2,HIGH);&lt;br /&gt;
     analogWrite(PWM_motorB,255);&lt;br /&gt;
     previous = millis();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  unsigned long time = millis();&lt;br /&gt;
  detect();&lt;br /&gt;
  switch (cas)&lt;br /&gt;
  { &lt;br /&gt;
    case 1 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(BIN2,HIGH);&lt;br /&gt;
       digitalWrite(BIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorB,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
      if (sonar()&amp;lt; 50)&lt;br /&gt;
      {&lt;br /&gt;
        digitalWrite(EA,HIGH);&lt;br /&gt;
        analogWrite(PWM_motorA,0);&lt;br /&gt;
        analogWrite(PWM_motorB,0);&lt;br /&gt;
        delay (5000);&lt;br /&gt;
      }&lt;br /&gt;
    case 3 :&lt;br /&gt;
      while (millis()-time &amp;lt; 1000)&lt;br /&gt;
      { &lt;br /&gt;
       digitalWrite(AIN2,HIGH);&lt;br /&gt;
       digitalWrite(AIN1,LOW);&lt;br /&gt;
       analogWrite(PWM_motorA,255);&lt;br /&gt;
       previous = millis();&lt;br /&gt;
      }&lt;br /&gt;
      break;&lt;br /&gt;
    default:&lt;br /&gt;
      break;&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. &lt;br /&gt;
Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions garder l'idée de la tourelle mais la perfectionner : lui attribuer par exemple un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils de ceux ci dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. &lt;br /&gt;
De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc, en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond parfaitement à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être toute fois extrêmement précise et elle demande beaucoup de temps : il faut repérer les dimensions exactes que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux (de l'ordre du micromètre). Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embêtés car nous n'avions pas d'appareil pour souder chez nous. Nous avons donc cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver cela. Et nous avons découvert, à Nanterre (92), un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionnés des machines qu'ils ont acquit durant toutes ces années depuis la création de l'association car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
&lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, notre robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons seulement mis le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les petites proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet, nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le Shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux et cela réduira également les erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais que peu de compétences en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu le faire car c'est celui que je trouvais le plus intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. De plus, la mécanique est un domaine qui m'attire depuis longtemps. Ainsi, je me suis donné la mission de concevoir toute la partie mécanique de ce BE c'est-à-dire la réalisation du châssis du robot. J'ai donc créé ses contours, sa forme mais aussi imaginé l'emplacement, de manière précise, de chacun des éléments que nous allions devoir fixer sur le châssis. &lt;br /&gt;
&lt;br /&gt;
Les débuts dans ce BE étaient un peu rudes pour moi car je me suis retrouvée immergée dans un contexte et avec un langage nouveaux. J'ai du donc apprendre un nouveau vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, c'est mon partenaire Pierre qui a réalisé le codage, ce qui m'a permis appréhender la logique et de me familiariser avec cette technique. &lt;br /&gt;
&lt;br /&gt;
Au final, ce BE fut très enrichissant pour moi car il m'a fait sortir de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9755</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9755"/>
				<updated>2018-05-06T17:47:10Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Élaboration du châssis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. =&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de la découpe laser''' : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de l'élaboration de la tourelle''' : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9754</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9754"/>
				<updated>2018-05-06T17:46:58Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Élaboration du châssis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. =&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Vidéo de la découpe laser''' : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Vidéo de l'élaboration de la tourelle : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9753</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9753"/>
				<updated>2018-05-06T17:46:40Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Élaboration du châssis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. =&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
Vidéo de la découpe laser : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Vidéo de l'élaboration de la tourelle : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:D%C3%A9coupe_du_Shield.mp4&amp;diff=9752</id>
		<title>Fichier:Découpe du Shield.mp4</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:D%C3%A9coupe_du_Shield.mp4&amp;diff=9752"/>
				<updated>2018-05-06T17:45:23Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : Pgautrea a téléversé une nouvelle version de Fichier:Découpe du Shield.mp4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:D%C3%A9coupe_du_Shield.mp4&amp;diff=9751</id>
		<title>Fichier:Découpe du Shield.mp4</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:D%C3%A9coupe_du_Shield.mp4&amp;diff=9751"/>
				<updated>2018-05-06T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Tourelle.mp4&amp;diff=9750</id>
		<title>Fichier:Tourelle.mp4</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Tourelle.mp4&amp;diff=9750"/>
				<updated>2018-05-06T17:35:40Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9749</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9749"/>
				<updated>2018-05-06T17:24:40Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Élaboration du châssis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. =&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9748</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9748"/>
				<updated>2018-05-06T17:24:29Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Élaboration du châssis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. =&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Chassis_etat_intermediaire1.jpeg&amp;diff=9747</id>
		<title>Fichier:Chassis etat intermediaire1.jpeg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Chassis_etat_intermediaire1.jpeg&amp;diff=9747"/>
				<updated>2018-05-06T17:23:11Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Chassis_etat_intermediaire2.jpeg&amp;diff=9746</id>
		<title>Fichier:Chassis etat intermediaire2.jpeg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Chassis_etat_intermediaire2.jpeg&amp;diff=9746"/>
				<updated>2018-05-06T17:21:49Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9745</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9745"/>
				<updated>2018-05-06T17:21:22Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Élaboration du châssis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. =&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis etat intermediaire2.jpeg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9744</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9744"/>
				<updated>2018-05-06T17:19:30Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Élaboration du châssis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. =&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis état intermédiaire2.jpeg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9743</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9743"/>
				<updated>2018-05-06T17:19:09Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Élaboration du châssis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. =&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire2.jpeg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9742</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9742"/>
				<updated>2018-05-06T17:18:55Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Élaboration du châssis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. =&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpeg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Chassis_%C3%A9tat_interm%C3%A9diaire2.jpeg&amp;diff=9741</id>
		<title>Fichier:Chassis état intermédiaire2.jpeg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Chassis_%C3%A9tat_interm%C3%A9diaire2.jpeg&amp;diff=9741"/>
				<updated>2018-05-06T17:18:23Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9740</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9740"/>
				<updated>2018-05-06T17:05:23Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. =&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
Après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
== Élaboration du châssis  ==&lt;br /&gt;
&lt;br /&gt;
Concernant la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés durant le BE == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shield était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shield. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9739</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9739"/>
				<updated>2018-05-06T16:55:44Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Ce que ce BE nous a apporté */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shild était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shild. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|300px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9738</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9738"/>
				<updated>2018-05-06T16:55:24Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Ce que ce BE nous a apporté */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shild était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shild. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg|thumb|400px|center]]]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9737</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9737"/>
				<updated>2018-05-06T16:54:27Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Ce que ce BE nous a apporté */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shild était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shild. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin.jpeg]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Photo_de_fin.jpeg&amp;diff=9736</id>
		<title>Fichier:Photo de fin.jpeg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Photo_de_fin.jpeg&amp;diff=9736"/>
				<updated>2018-05-06T16:53:44Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9735</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9735"/>
				<updated>2018-05-06T16:51:36Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Ce que ce BE nous a apporté */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shild était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shild. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Photo de fin]]&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9734</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9734"/>
				<updated>2018-05-06T16:38:12Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
== Problèmes rencontrés == &lt;br /&gt;
&lt;br /&gt;
- problème matériel &lt;br /&gt;
&lt;br /&gt;
- Nous avons rencontré des problèmes pour la tourelle : en effet, comme stipulé précédemment, nous avons mis 3 Tsop sur cette dernière et donc nous avions 3x3 = 9 fils dessus. Il y a donc beaucoup de frottement dû aux fils. Nous pensons toujours que la tourelle est une bonne idée car grâce à elle, le robot peut ratisser un large champs et ainsi capter la proie plus aisément. Donc pour un prochain projet, nous pourrions créé une tourelle plus perfectionnée : lui attribuer peut être un diamètre plus important pour que l'on puisse intégrer les Tsop à l'intérieur même de la tourelle et faire passer les fils dans une fente placée sur la tourelle. Comme cela, les fils ne créerait pas de frottement avec le châssis et la tourelle tournerait plus facilement. De plus, sur le cerveau moteur, nous pouvons remarquer que la partie qui tourne à la forme d'un petit engrenage. Donc en créant la tourelle à l'imprimante 3D, nous aurions pu la dessiner avec un engrenage qui correspond à celui du cerveau moteur. Ainsi, nous aurions pu les emboîter et il n'y aurait eu aucun frottement. Cette opération doit être extrêmement précise, elle demande beaucoup de temps : repéré les dimensions que doit avoir l'engrenage, le dessiner et l'imprimer avec une imprimante 3D d'une très grande précision pour que les 2 engrenages s'emboîtent au mieux. Voilà comment nous aurions pu améliorer notre tourelle.&lt;br /&gt;
&lt;br /&gt;
- Dernier petit problème rencontré (et petite anecdote notable) : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération. &lt;br /&gt;
Le lien web de ce hackerspace : [https://www.electrolab.fr]&lt;br /&gt;
&lt;br /&gt;
== Axes d'amélioration ==&lt;br /&gt;
&lt;br /&gt;
- Nous aurions pu améliorer le câblage : en effet, du fait que sa grande taille, le robot possède de nombreux fils un peu partout. À notre avis, le nombre de fils ne peut pas être réduit car nous avons mis seulement le nécessaire. En revanche, ce qui peut être réduit est la taille de ceux-ci. Nous aurions pu faire notre robot plus petit et donc les fils auraient été plus courts. Mais nous avons choisi de le faire si grand car tout d'abord nous voulions un prédateur qui en jette, qui écrase toutes les proies (et également car notre shild était d'une taille importante donc nous voulions faire quelque chose d'assez aéré). &lt;br /&gt;
&lt;br /&gt;
- Peut être sur un prochain projet nous pourrions aussi faire notre propre carte pour supprimer l'interface entre Arduino et le shild. En effet, cela réduira la place occupée car nous aurions plus qu'un élément au lieu de deux. Cela réduira également des erreurs liés à l'interface entre les 2 composants.&lt;br /&gt;
&lt;br /&gt;
== Ce que ce BE nous a apporté ==&lt;br /&gt;
&lt;br /&gt;
Clémence : Pour ma part, je n'avais aucune compétence en électronique ou en informatique avant de commencer ce BE. Mais j'ai voulu faire ce BE plutôt qu'un autre car je le trouvais vraiment intéressant : concevoir un robot de A à Z et justement acquérir un maximum de connaissances en électronique et en informatique, qui me serviront forcément dans ma vie future professionnelle. Ceci étant, même si je voulais beaucoup apprendre dans ces domaines, j'ai un attrait depuis longtemps pour la mécanique. Je me suis ainsi donné la mission de faire toute la partie mécanique de ce BE c'est-à-dire toute la conception du châssis du robot allant de ses contours en définissant la forme qu'aura la robot à la disposition de chaque élément sur ce châssis et donc prévoir un emplacement précis pour chaque pièce. Les débuts dans ce BE étaient un peu rudes pour moi parce que j'avais l'impression que tout le monde parlait chinois autour de moi. J'ai du donc apprendre plein de vocabulaire, mais cela était beaucoup moins dur que ce que j'imaginais ! Enfin, évidement c'est mon partenaire, Pierre qui s'est occupé du codage car je n'aurais pas pu apprendre à coder intégralement en quelques semaines mais j'ai pu vraiment comprendre la logique et m'y familiariser. Donc je ne regrette absolument pas d'avoir fait ce BE plutôt que celui de mécanique par exemple, car je suis vraiment sortie de ma zone de confort et cela m'a fait découvrir un autre domaine que je ne connaissais quasiment pas. C'est exactement ce que j'attendais de ce Bureau d'Etudes !&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9733</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9733"/>
				<updated>2018-05-06T16:30:58Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Séance n°6 (29/01) à la fin : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
Pendant l'interruption pédagogique : &lt;br /&gt;
&lt;br /&gt;
Petite anecdote notable : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération.&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9732</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9732"/>
				<updated>2018-05-06T16:02:42Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pendant l'interruption pédagogique : &lt;br /&gt;
&lt;br /&gt;
Petite anecdote notable : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération.&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9731</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9731"/>
				<updated>2018-05-06T16:01:39Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.png]]&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pendant l'interruption pédagogique : &lt;br /&gt;
&lt;br /&gt;
Petite anecdote notable : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération.&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Faucon.png&amp;diff=9730</id>
		<title>Fichier:Faucon.png</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Faucon.png&amp;diff=9730"/>
				<updated>2018-05-06T16:00:36Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9729</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9729"/>
				<updated>2018-05-06T15:55:20Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Faucon.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pendant l'interruption pédagogique : &lt;br /&gt;
&lt;br /&gt;
Petite anecdote notable : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération.&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9728</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9728"/>
				<updated>2018-05-06T15:51:04Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“''Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?''”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pendant l'interruption pédagogique : &lt;br /&gt;
&lt;br /&gt;
Petite anecdote notable : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération.&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9727</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=9727"/>
				<updated>2018-05-06T15:50:17Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Séance n°1 (15/01) : Découverte du Projet et Réalisation du Cahier des Charges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Re-Définition du Projet et Phase d'Idéation ==&lt;br /&gt;
&lt;br /&gt;
'''Le Projet :'''&lt;br /&gt;
&lt;br /&gt;
Le Bureau d’Etudes porte sur la réalisation de robots communicants sur le thème “Proies et Prédateurs”.&lt;br /&gt;
Il s’agit alors de concevoir un robot capable de détecter les proies et de les chasser dans le cas d’un Robot Prédateur. Ou bien, dans le cas de la proie, de produire un robot capable de détecter les chasseurs et de les semer.&lt;br /&gt;
La problématique du robot chasseur (“Comment optimiser la détection de l’objectif et comment atteindre l’objectif lorsqu’il est en mouvement ?”&lt;br /&gt;
) nous semblait plus intéressante et plus complexe dans le sens où chacun a son approche et stratégie de “Traque”.&lt;br /&gt;
&lt;br /&gt;
Le noyau principal du projet est la conception d’un automate qui se meut dans son environnement. Il ne doit pas mettre en danger son environnement ou se mettre en danger lui même (Merci M. Asimov). Pour cela il doit être capable d’observer et de comprendre ce qui l’entoure.&lt;br /&gt;
Le Deuxième point important concerne la détection de l’objectif. L’automate doit être capable de détecter son objectif et déterminer sa position par rapport à celui-ci.&lt;br /&gt;
Il faut noter que dans le modèle naturel “Proie vs. Prédateur”, la traque se doit d’être méthodique et rapide. Il convient d’appliquer ces concepts dans la réalisation de notre robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nos Choix :'''&lt;br /&gt;
&lt;br /&gt;
À la pensée de prédateurs nous avons tout de suite pensé aux rapaces. Puis cela nous à amené à parler de Faucons. Étant tout deux de grands fans de Star Wars, nous avons tout de suite imaginé un Faucon Millenium.&lt;br /&gt;
Il parait judicieux de concevoir le robot le plus rapide du groupe afin de faciliter la traque. Nous avons donc décider d’utiliser des moteurs continus contrôlés en tension. &lt;br /&gt;
La programmation du robot nous parait importante, c’est pourquoi nous comptons passer plus de temps dessus à défaut de faire la carte électronique. Nous utiliserons donc un shield optimisé pour notre robot en complément d’une carte Arduino.&lt;br /&gt;
Concernant la méthode de traque, nous souhaitons mettre au point une méthode de détection efficace. Nous avons considérer le système de vision de l’Homme et nous l’avons simplifié pour l’adapter à notre automate. Nous allons donc créer une tourelle rotative de détection. Elle sera composée de plusieurs détecteurs infra-rouge. Son mouvement sera indépendant de celui du châssis, ainsi nous réduisons les angles morts de détection.&lt;br /&gt;
Concernant le châssis, il doit être léger et fonctionnel.&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection. Nous pensons que si nous ne prenons qu'un seul capteur, la détection de la proie sera moins précise. En effet, les 3 capteurs ne vont pas détecter la proie au même moment donc cela nous permettra de dire avec précision où se trouve la proie. &lt;br /&gt;
&lt;br /&gt;
== Séance n°5 (22/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisé le Schematic et le PCB de notre bouclier d'Arduino. Pour cela, nous avons réagencé la disposition des différents composants. Notamment, les câbles que nous avons du déplacer pour minimiser les erreurs liées à la proximité de 2 câbles. Cependant, nous avons du faire face à un problème majeur : certains câbles en chevauchaient d'autres. Nous avons donc opté pour des ponts que nous relirons avec des fils après impression du bouclier. Nous avons enfin rajouter 2 LED à notre bouclier qui serviront au débogage du robot.&lt;br /&gt;
&lt;br /&gt;
== Séance n°6 (29/01) à la fin :  ==&lt;br /&gt;
&lt;br /&gt;
Épris par notre projet, nous n'avons pas tenu à chaque séances le Wiki. Nous avons donc décider d'écrire un résumé global de nos avancées.&lt;br /&gt;
&lt;br /&gt;
Ainsi, après avoir conçu le bouclier, nous sommes allés l'imprimer et nous avons ensuite souder des fils reliant les composants sur ce shield. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe du Shield.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe du Shield.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire1.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Shield etat intermediaire2.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la suite de cela, nous nous sommes répartis les tâches à effectuer : l'un s'occupait de coder l'Arduino tandis que l'autre devait concevoir le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Ainsi, concernant premièrement la conception de la forme du châssis, nous avons décidé de faire un Faucon Millénium, vaisseau de Star Wars© et nous nous sommes donc inspiré de sa forme. Nous avons aussi voulu faire 2 plaques de plexiglas reliées entre elles par des entretoises pour placer des éléments entre comme la batterie, ou l'électro-aiment.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassis_état_intermédiaire.jpg|200px|]]&lt;br /&gt;
&lt;br /&gt;
Pour concevoir ce châssis, nous avons utilisé Inkscape, ce qui nous permettait de le réaliser à la découpe laser. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Découpe Laser.mp4]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Decoupe Laser photo.jpeg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Ainsi après avoir créé la forme, nous avons du faire les trous : ceux qui allaient servir à relier les deux plaques entre elles, ceux qui allaient fixer l'Arduino ou encore ceux pour faire passer les fils d'une plaque à l'autre.&lt;br /&gt;
Pour ceux de l'Arduino, nous avons utilisé Fritzing qui propose des modèles d'Arduino avec les emplacements précis de leur trous. Malheureusement, en découvrant l'impression, nous avons remarqué que les trous effectués n'étaient pas bien placés (sauf 2). Ce problème est lié au modèle que Fritzing nous a donné, nous pensions qu'il s'agissait du bon au vue de l'Arduino que nous avions choisi mais nous nous sommes trompés.&lt;br /&gt;
Ainsi, pour palier à ce problème, nous sommes simplement allés au Fabricarium et nous avons percer des trous supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour fixer la batterie qui se situe sur la plaque inférieure, nous avons imaginer un système avec 4 fixations placés en carrés. C'est-à-dire 3 entretoises fixes et une pièce en plexiglas que nous pouvons enlever facilement si nous voulons retirer la batterie.&lt;br /&gt;
Nous également fixé les roues sur une 3ième petite plaque qui est reliée à la plaque inférieure pour soutenir les moteurs des roues. Nous avons fixé ces deux plaques à l'aide de 8 entretoises. Nous avons également mis une roue folle sur le devant du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avions aussi une spécificité sur notre robot/vaisseau : il s'agit d'une tourelle, placée sur le cerveau moteur, pour y mettre les 3 T-sop. Nous avons choisi d'en mettre 3 pour couvrir un large champs de vision mais également pour plus de facilité à repérer la proie. En effet, lorsqu'un T-sop détectera un signal mais que son voisin ne le détectera pas, cela nous donnera une position exacte de la proie. Nous avons donc du coder cette spécificité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tourelle.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pendant l'interruption pédagogique : &lt;br /&gt;
&lt;br /&gt;
Petite anecdote notable : pendant les vacances, nous avons voulu peaufiner notre robot et lorsque nous avons testé notre programme qui permet au robot de rouler, nous avons constaté qu'une seule roue tournait. Donc nous nous sommes intéressés au moteur de cette roue et en le touchant, un de ses fils s'est dessoudé. &lt;br /&gt;
Nous avons donc été très embetés car nous n'avions pas d'appareil pour souder chez nous. Nous avons cherché un endroit près de chez nous, comme un fabricarium ou une entreprise où nous pourrions trouver ça. Et nous avons découvert, à Nanterre, un local de passionnés d'électronique et de mécanique qui nous ont très gentiment présenté leur 1000 m² de locaux et prêté leur appareil de soudure. Nous avons été très impressionné des machines qu'ils ont acquit durant toutes ces années car tout ce qui est là-bas est de la récupération.&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8745</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8745"/>
				<updated>2018-01-22T15:16:31Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Découverte du Projet et Réalisation du Cahier des Charges ==&lt;br /&gt;
&lt;br /&gt;
Nous avons pris connaissance du sujet, évaluer la quantité de travail qu'il nous demandait de fournir en fonction des différentes tâches à faire.&lt;br /&gt;
On a découvert le logiciel Fritzing qui va nous permettre de modéliser la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cahier des Charges :&lt;br /&gt;
&lt;br /&gt;
- Réalisation du Bouclier pour l'Arduino &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Programmation de l'Arduino (Comportement de &amp;quot;Chasseur&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Séance n°2 (16/01) : Élaboration du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons listé tous les composants que nous avons besoin de mettre en œuvre dans l'élaboration de notre robot. Nous avons donc pu préciser la disposition de ceux ci, afin de concevoir notre bouclier de manière optimale.&lt;br /&gt;
&lt;br /&gt;
== Séance n°3 et 4 (18/01 et 19/01) : Élaboration du bouclier (suite) ==&lt;br /&gt;
&lt;br /&gt;
Nous avons réfléchi à la manière dont on voulait que notre robot chasseur détecte la lumière LED de la proie. Nous avons alors imaginé mettre une tourelle composée de 3 capteurs infrarouge. Ils seront tous les 3 séparés par des murs de cartons pour que l'on détermine nous même leur champ de détection.&lt;br /&gt;
&lt;br /&gt;
== Séance n°4 (21/01) : Finition du bouclier ==&lt;br /&gt;
&lt;br /&gt;
Nous avons finalisez le Schematic et le PCB de notre bouclier d'Arduino.&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8623</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8623"/>
				<updated>2018-01-16T16:00:17Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Séance n°1 (15/01) : Découverte du Projet et Réalisation du Cahier des Charges ==&lt;br /&gt;
&lt;br /&gt;
Nous avons pris connaissance du sujet, évaluer la quantité de travail qu'il nous demandait de fournir en fonction des différentes tâches à faire.&lt;br /&gt;
On a découvert le logiciel Fritzing qui va nous permettre de modéliser la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Cahier des Charges :&lt;br /&gt;
- Réalisation du Bouclier pour l'Arduino &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Programmation de l'Arduino (Comportement de &amp;quot;Chasseur&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8611</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8611"/>
				<updated>2018-01-15T09:57:09Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Séance n°1 (15/01)]] : Découverte du Projet et Réalisation du Cahier des Charges ==&lt;br /&gt;
&lt;br /&gt;
Nous avons pris connaissance du sujet, évaluer la quantité de travail qu'il nous demandait de fournir en fonction des différentes tâches à faire.&lt;br /&gt;
On a découvert le logiciel Fritzing qui va nous permettre de modéliser la carte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Cahier des Charges :&lt;br /&gt;
&lt;br /&gt;
- Réalisation du Bouclier pour l'Arduino &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Programmation de l'Arduino (Comportement de &amp;quot;Chasseur&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8599</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8599"/>
				<updated>2018-01-15T09:32:24Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Séance n°1 (15/01)]] : Découverte du Projet et Réalisation du Cahier des Charges ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Cahier des Charges :&lt;br /&gt;
&lt;br /&gt;
- Réalisation du Bouclier pour l'Arduino &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Programmation de l'Arduino (Comportement de &amp;quot;Chasseur&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2017-2018&amp;diff=8598</id>
		<title>BE 2017-2018</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2017-2018&amp;diff=8598"/>
				<updated>2018-01-15T09:23:02Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Réalisations des binômes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Objectif à atteindre =&lt;br /&gt;
&lt;br /&gt;
Le thème de la saison 8 est la réalisation de robots communicant sur le modèle proies et prédateurs.&lt;br /&gt;
&lt;br /&gt;
Les prédateurs doivent repérer et rattraper des proies. Pour toute la partie identification et poursuite, une interaction par signal infra-rouge modulé est préconisée. Les proies émettent un signal propre à leur condition et sont ainsi identifiées par les prédateurs. Les prédateurs possèdent un système de réception infra-rouge directionnel permettant de s'orienter dans la phase de poursuite. Les prédateurs émettent aussi un signal infra-rouge permettant ainsi aux proies de savoir qu'elles sont prises en chasse. Pour simuler la capture de la proie, la conception d'un système de communication à très faible distance est laissé à la sagacité des élèves.&lt;br /&gt;
&lt;br /&gt;
Les proies comme les prédateurs peuvent être autonomes ou télécommandés. Pour le mode de télécommande deux solutions sont envisagées : utilisation d'une télécommande infra-rouge ou utilisation d'un téléphone intelligent. Pour la dernière solution, il est nécessaire d'embarquer une Raspberry Pi 3 sur le robot.&lt;br /&gt;
&lt;br /&gt;
La taille du robot n'est pas fixé. Vous pouvez envisager des robots miniatures d'une dizaine de centimètres de coté.&lt;br /&gt;
 &lt;br /&gt;
= Matériel à votre disposition pour les robots =&lt;br /&gt;
&lt;br /&gt;
Votre robot doit pouvoir réaliser les actions suivantes :&lt;br /&gt;
* avancer et reculer le tout en tournant éventuellement ;&lt;br /&gt;
* émettre des signaux infra-rouges pulsés ;&lt;br /&gt;
* décoder des signaux infra-rouges pulsés ;&lt;br /&gt;
* détecter des obstacles sur son chemin.&lt;br /&gt;
&lt;br /&gt;
Nous vous imposons de construire ce robot à base de micro-contrôleur ATMega. Par contre nous vous laissons le choix de la variante. Les possibilités sont classées de la plus simple à la plus complexe.&lt;br /&gt;
* Vous pouvez partir d'un des robots construits lors des saisons précédentes. Ces robots ne sont pas forcément totalement fonctionnels mais les parties déjà réalisées peuvent vous faire gagner du temps que vous pourrez consacrer à la programmation du robot.&lt;br /&gt;
* Vous pouvez construire un robot à partir d'un des deux chassis proposés, utiliser un Arduino Mega et concevoir un bouclier pour cet Arduino comportant des emplacements pour les divers composants nécessaires (contrôleur moteur, détecteur ultrason, LED infra-rouge, récepteur infra-rouge TSOP, etc).&lt;br /&gt;
* Vous pouvez aussi fabriquer votre propre chassis avec deux plaques de plexiglass produites par la découpeuse laser ou avec une structure imprimée en 3D. Il ne reste plus qu'à intégrer à ce chassis deux moto-réducteurs et leurs roues ainsi qu'une roue folle. Pour le micro-contrôleur vous pouvez aussi vous passer de l'Arduino Mega et concevoir votre propre circuit intégré à base de micro-contrôleur ATMega328p et d'un contrôleur moteurs TB6612FNG. Seul le sonar ultrason est trop complexe pour être conçu à partir des composants de base.&lt;br /&gt;
* Si vous aimez les défis vous pouvez aussi construire un robot avec un moto-réducteur de meilleure qualité ou avec une carte électronique réalisée uniquement avec des composants électroniques de surface. Vous pouvez même construire un robot miniature.&lt;br /&gt;
&lt;br /&gt;
Les montages photographiques ci-dessous présentent les éléments permettant de construire un robot sans trop souffrir et les composants de base pour construire un robot plus optimisé et personnalisé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot-kit-2018.jpg|300px|thumb|left|Chassis, Arduino Mega, récepteur infra-rouge, sonar, contrôleur moteurs]]&lt;br /&gt;
[[Fichier:robot-composant-2018.jpg|300px|thumb|right|Moto-réducteurs et roues, micro-contrôleurs ATMega328p et quartz, contrôleur de moteurs TB6612FNG, LED infra-rouge]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des robots miniatures peuvent être réalisés en utilisant des servo-moteurs continus et des pièces en plexiglas ou en contreplaqué découpées à l'aide de la découpeuse laser du [http://www.fabricarium.fr/mediawiki-1.23.5/index.php?title=Accueil Fabricarium]. Certaines formes plus complexes peuvent éventuellement être réalisées à l'aide des imprimantes 3D du [http://www.fabricarium.fr/mediawiki-1.23.5/index.php?title=Accueil Fabricarium]. Il est possible d'imprimer des pneus avec du PLA flexible.&lt;br /&gt;
Pour les fixations vous avez de la visserie (vis, écrous, entretoises).&lt;br /&gt;
&lt;br /&gt;
= Logiciels à utiliser =&lt;br /&gt;
&lt;br /&gt;
Pour concevoir un schéma propre du câblage de votre robot vous pouvez utiliser [http://fritzing.org/home/ fritzing]. Tous les composants de votre robot ne sont pas modélisés dans fritzing. Voici une liste de composants supplémentaires mis au points par des élèves IMA de la promotion 2017 (Julie Debock, Hugo Vandenbunder et Sylvain Verdonck) et revus par les encadrants du bureau d'études :&lt;br /&gt;
* détecteur ultrason : [[Fichier:UltrasonicSensor_HCSR04.zip]]&lt;br /&gt;
* contrôleur de moteurs : [[Fichier:MotorDriver_Pololu_md08a.zip]]&lt;br /&gt;
&lt;br /&gt;
Pour la conception de circuits imprimés nous vous recommandons le logiciel [http://www.cadsoftusa.com/download-eagle/freeware/ eagle] ou le précédent.&lt;br /&gt;
&lt;br /&gt;
Pour la découpe laser de nombreux utilisateurs utilisent [https://inkscape.org/fr/ inkscape].&lt;br /&gt;
&lt;br /&gt;
Pour la conception 3D solidwork est très utilisé. Vous pouvez tenter [http://www.freecadweb.org/?lang=fr_FR freeCAD] si vous cherchez un logiciel plus libre. Une solution en ligne existe : [https://www.onshape.com/ onshape].&lt;br /&gt;
&lt;br /&gt;
Pour le développement avec les plateformes Arduino, utilisez l'environnement du même nom. Si la programmation C++ vous fait peur, n'hésitez pas à ajouter l'outil [http://sourceforge.net/projects/ardublock/ ardublock] à cet environnement.&lt;br /&gt;
&lt;br /&gt;
Pour vous aider dans la conception des circuits imprimés nous vous proposons des circuits modélisés avec fritzing que vous pourrez adapter à vos robots. Ces circuits ont été ébauchés par des élèves IMA et retouchés par les encadrants du bureau d'études.&lt;br /&gt;
&lt;br /&gt;
Un premier circuit de type bouclier Arduino permet d'éviter tous les câbles entre l'Arduino et les contrôleurs de moteurs : [[Fichier:robot_bouclier.zip]]. Ce circuit est prévu pour 4 moteurs, les binômes avec des chassis bi-moteurs devront le simplifier. Après téléchargement, prenez soin de modifier le suffixe &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;.fzz&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;gallery style=&amp;quot;margin: 0 auto;&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:robot_bouclier_bb.png|Bouclier : plaque d'essai&lt;br /&gt;
Fichier:robot_bouclier_schem.png|Bouclier : schéma&lt;br /&gt;
Fichier:robot_bouclier_pcb.png|Bouclier : circuit imprimé&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un second circuit permet de se passer totalement d'un Arduino : [[Fichier:RobotPCB.zip]]. Le coeur de la carte est un micro-contrôleur ATMega328p comme sur l'Arduino. La plupart des capteurs et actionneurs nécessaires à vos robots sont présents sur la carte. Après téléchargement, prenez soin de modifier le suffixe &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;.fzz&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;gallery style=&amp;quot;margin: 0 auto;&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:RobotPCB_bb.png|Contrôleur : plaque d'essai&lt;br /&gt;
Fichier:RobotPCB_schem.png|Contrôleur : schéma&lt;br /&gt;
Fichier:RobotPCB_pcb.png|Contrôleur : circuit imprimé&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuration du système embarqué =&lt;br /&gt;
&lt;br /&gt;
Pour contrôler les robots télécommandés vous utiliserez un ordinateur miniature Raspberry Pi 3. Cet ordinateur doit être configuré comme un point d'accès WiFi pour permettre une connexion à partir d'un téléphone intelligent.&lt;br /&gt;
&lt;br /&gt;
Il existe au moins deux méthode de se connecter sur la Raspberry PI 3 pour la configurer. La première méthode est la méthode &amp;quot;grand public&amp;quot; en utilisant la carte graphique intégrée sur la Raspberry et en lui connectant écran, clavier et souris. La seconde méthode est plus spartiate et traditionnellement utilisée dans le monde des systèmes embarqués : la connexion par liaison série.&lt;br /&gt;
&lt;br /&gt;
== Connexion série ==&lt;br /&gt;
&lt;br /&gt;
Vous êtes de futurs ingénieurs, la méthode &amp;quot;liaison série&amp;quot; est à votre portée et vous pourrez l'employer pour d'autres dispositifs. Vous allez commencer par récupérer la dernière version de la distribution Linux pour Raspberry Pi. Comme nous n'avons pas besoin de l'interface graphique, il est préférable de choisir la distribution &amp;quot;Raspbian Jessie Lite&amp;quot; plus légère en terme d'espace disque. La configuration décrite ci-après a été effectuée sur la version du 2017-01-11.&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; :&lt;br /&gt;
 dd if=2017-01-11-raspbian-jessie-lite.img of=/dev/sdb&lt;br /&gt;
Le nom du périphérique &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt; peut varier suivant votre machine, vous pouvez lister les noms des périphériques blocs avec la commande &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. Exécutez cette commande avant et après l'insertion de votre carte SD et vous aurez le nom utilisé par votre système.&lt;br /&gt;
&lt;br /&gt;
Avant de démarrer la Raspberry Pi 3 sur cette carte SD, vous devez modifier quelques paramètres de démarrage. En effet sur les dernières version de la distribution raspbian, la connexion série a été laissée de coté. Plusieurs explications à cela : la Raspberry vise plus le marché du jouet grand public que celui du système embarqué, de plus la Raspberry Pi 3 intégre maintenant une interface bluetooth disponible via le port série principal. Il est cependant possible d'utiliser le second port série désigné sous le nom de périphérique &amp;lt;code&amp;gt;/dev/serial0&amp;lt;/code&amp;gt;. Montez la première partition de votre carte SD Raspian Lite avec la commande&lt;br /&gt;
 mount /dev/sdb1 /mnt&lt;br /&gt;
puis examinez les fichiers &amp;lt;code&amp;gt;cmdline.txt&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;config.txt&amp;lt;/code&amp;gt;. Attention le nom de la partition n'est pas forcément &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt;, utilisez &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; pour déterminer le nom de la première partition de votre carte SD sur votre machine. Vérifiez que l'option &amp;lt;code&amp;gt;console=serial0,115200&amp;lt;/code&amp;gt; est bien présente dans la ligne du fichier &amp;lt;code&amp;gt;cmdline.txt&amp;lt;/code&amp;gt; et ajoutez &amp;lt;code&amp;gt;enable_uart=1&amp;lt;/code&amp;gt; à la fin du fichier &amp;lt;code&amp;gt;config.txt&amp;lt;/code&amp;gt;. N'oubliez pas de libérer votre carte SD par la commande&lt;br /&gt;
 umount /mnt&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite insérer la carte SD dans la Raspberry Pi. Utilisez le câble USB/série pour connecter votre Raspberry à votre PC. Il faut enficher les câbles noir, blanc et vert du câble USB/série [https://www.adafruit.com/product/954] sur les entrées/sorties correspondantes de la Raspberry [https://pinout.xyz/]. Le câble noir doit être sur la broche 6, le câble blanc sur la broche 8 et le câble vert sur la broche 10. Alimentez votre Raspberry Pi et lancez la commande suivante sur votre PC &lt;br /&gt;
 minicom -o -8 -b 115200 -D /dev/ttyUSB0&lt;br /&gt;
Vous devez obtenir, in fine, l'invite de connexion de la Raspberry&lt;br /&gt;
 Raspbian GNU/Linux 8 raspberrypi ttyS0&lt;br /&gt;
  &lt;br /&gt;
 raspberrypi login:&lt;br /&gt;
Vous pouvez vous connecter avec l'identifiant &amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; et le mot de passe &amp;lt;code&amp;gt;raspberry&amp;lt;/code&amp;gt;. Pour passer administrateur utilisez la commande &amp;lt;code&amp;gt;sudo su&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Mise à jour de la distribution ==&lt;br /&gt;
&lt;br /&gt;
La distribution Raspbian vient avec le système de démarrage &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt;. Ce système n'est pas forcément adapté à l'usage que nous souhaitons faire de la Raspberry : utilisation en tant que système embarqué et manipulation en mode texte. Il est assez simple de supprimer, en tant qu'administrateur, le paquetage &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; ainsi que deux autres paquetages qui tentent de gérer automatiquement la configuration réseau &amp;lt;code&amp;gt;dhcpcd5&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;openresolv&amp;lt;/code&amp;gt; :&lt;br /&gt;
 apt-get purge dhcpcd5 openresolv &lt;br /&gt;
 apt-get purge systemd &lt;br /&gt;
Attention pour que la seconde commande fonctionne, il faut que la Raspberry Pi puisse récupérer des paquetages, donc soit connectée au réseau. En salle E304, vous pouvez connecter votre Raspberry sur la seconde interface réseau d'une Zabeth. Dans le fichier &amp;lt;code&amp;gt;/etc/network/interface&amp;lt;/code&amp;gt; vous pouvez écrire la configuration ci-dessous :&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 172.26.79.1XX&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
avec &amp;lt;code&amp;gt;XX&amp;lt;/code&amp;gt; le numéro de votre Zabeth. Il faut aussi mettre une adresse de serveur de noms dans le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
 nameserver 193.48.57.34&lt;br /&gt;
Enfin pour que la Raspberry accède aux dépôts de paquetage sur Internet, il faut lui indiquer d'utiliser les serveurs mandataires Web de l'école :&lt;br /&gt;
 export http_proxy=http://proxy.polytech-lille.fr:3128&lt;br /&gt;
Il est normal que la suppression de &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; retourne une erreur, il faudra relancer la Raspberry pour l'enlever définitivement. Avant cela modifiez le fichier &amp;lt;code&amp;gt;/etc/inittab&amp;lt;/code&amp;gt; et remplacez la ligne&lt;br /&gt;
 #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100&lt;br /&gt;
par la ligne&lt;br /&gt;
 T0:23:respawn:/sbin/getty -L serial0 115200 vt100&lt;br /&gt;
Après le redémarrage de la Raspberry enlevez définitivement &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; en tapant à nouveau la commande&lt;br /&gt;
 apt-get purge systemd &lt;br /&gt;
&lt;br /&gt;
== Connexion sur la Raspberry par &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
La connexion sur la Raspberry par série a ses limites : le terminal texte est assez mal géré et à terme la connexion série sera dédié à la communication avec le micro-contrôleur. Maintenant que la Raspberry est configurée sur le réseau, il est souhaitable de s'y connecter en utilisant la commande &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour activer le serveur &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; sur la Raspberry, utilisez les commandes suivantes :&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
&lt;br /&gt;
Vous pouvez alors vous connecter sur la Raspberry avec la commande :&lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
Si le message d'erreur à la connexion vous énerve, il vous suffit de rajouter un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; devant l'appel de fonction &amp;lt;code&amp;gt;check_hash&amp;lt;/code&amp;gt; à l'avant-dernière ligne du fichier &amp;lt;code&amp;gt;/etc/profile.d/sshpasswd.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Configuration en point d'accès ==&lt;br /&gt;
&lt;br /&gt;
Pour que votre Raspberry Pi 3 devienne un point d'accès, installez le paquetage &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Copiez le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt; dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
Examinez le fichier &amp;lt;code&amp;gt;/etc/hostapd/hostapd.conf&amp;lt;/code&amp;gt; à la recherche des mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin dans le fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt;, définissez le chemin du fichier de configuration :&lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
Relancez le service par la commande :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier avec votre téléphone que votre réseau WiFi est bien visible.&lt;br /&gt;
&lt;br /&gt;
== Configuration IP des clients WiFi ==&lt;br /&gt;
&lt;br /&gt;
Pour que les clients WiFi puissent obtenir une adresse IP et autres coordonnées réseau, installez le paquetage &amp;lt;code&amp;gt;isc-dhcp-server&amp;lt;/code&amp;gt; :&lt;br /&gt;
  apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
Tout d'abord choisir un réseau IPv4, par exemple &amp;lt;code&amp;gt;192.168.100.0/24&amp;lt;/code&amp;gt; et affecter à la Raspberry une adresse de ce réseau, par exemple &amp;lt;code&amp;gt;192.168.100.1&amp;lt;/code&amp;gt;. Pour cela ajoutez le bloc ci-dessous à la fin du fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface wlan0 inet static&lt;br /&gt;
   address 192.168.100.1&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Il est alors possible de configurer le serveur DHCP au travers de son fichier de configuration &amp;lt;code&amp;gt;/etc/dhcp/dhcpd.conf&amp;lt;/code&amp;gt;. Les directives à modifier sont les suivantes :&lt;br /&gt;
* &amp;lt;code&amp;gt;option domain-name&amp;lt;/code&amp;gt;, spécifiez un nom de domaine de votre choix (&amp;lt;code&amp;gt;monrobot.org&amp;lt;/code&amp;gt; par exemple) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;option domain-name-servers&amp;lt;/code&amp;gt;, spécifiez l'adresse &amp;lt;code&amp;gt;192.168.100.1&amp;lt;/code&amp;gt; comme serveur DNS ;&lt;br /&gt;
* &amp;lt;code&amp;gt;authoritative&amp;lt;/code&amp;gt;, déclarez votre serveur DHCP comme légitime.&lt;br /&gt;
Il faut aussi ajouter un bloc réseau comme celui-ci :&lt;br /&gt;
 subnet 192.168.100.0 netmask 255.255.255.0 {&lt;br /&gt;
   range 192.168.100.100 192.168.100.200;&lt;br /&gt;
   option routers 192.168.100.1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Relancez le service par la commande :&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
Vous devez maintenant pouvoir connecter votre téléphone sur votre réseau WiFi. La bonne connexion au réseau WiFi doit se voir dans le fichier de contrôle &amp;lt;code&amp;gt;/var/log/daemon.log&amp;lt;/code&amp;gt; et l'obtention d'une adresse IP doit se lire dans le fichier &amp;lt;code&amp;gt;/var/log/syslog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Ajout d'un nom réseau pour la Raspberry Pi ==&lt;br /&gt;
&lt;br /&gt;
A ce point votre téléphone peut contacter la Raspberry par son adresse IP. Pour pouvoir faire de même avec un nom significatif installez le paquetage &amp;lt;code&amp;gt;bind9&amp;lt;/code&amp;gt; :&lt;br /&gt;
  apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
Ajoutez un bloc dans le fichier de configuration &amp;lt;code&amp;gt;/etc/bind/named.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
 zone &amp;quot;monrobot.org&amp;quot;  {&lt;br /&gt;
   type master;&lt;br /&gt;
   file &amp;quot;/etc/bind/db.monrobot&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/bind/db.monrobot&amp;lt;/code&amp;gt; avec un contenu de ce type :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     localhost. root.localhost. (&lt;br /&gt;
                              2         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 @       IN      NS      localhost.&lt;br /&gt;
 robot   IN      A       192.168.100.1&lt;br /&gt;
&lt;br /&gt;
Enfin ajoutez en tête du fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; la ligne&lt;br /&gt;
 domain monrobot.org&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier le bon fonctionnement du résolveur de nom en tapant &lt;br /&gt;
  host -t any robot 192.168.100.1&lt;br /&gt;
&lt;br /&gt;
== Installation d'un serveur Web ==&lt;br /&gt;
&lt;br /&gt;
La commande du robot doit se faire via une interface Web. Il faut donc installer un serveur Web sur la Raspberry Pi avec un système de page dynamiques pour exécuter du code sur la Raspberry. Il suffit pour cela d'installer les paquetages &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;php5&amp;lt;/code&amp;gt; :&lt;br /&gt;
 apt-get install apache2 php5&lt;br /&gt;
&lt;br /&gt;
Un premier test consiste à donner &amp;lt;code&amp;gt;robot&amp;lt;/code&amp;gt; dans la barre d'adresses du navigateur Web de votre téléphone. La page de test du serveur Web &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; doit s'afficher.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi écrire une petite page permettant d'effectuer une action comme l'arrêt de la Raspberry Pi. Cette page est à mettre dans le répertoire &amp;lt;code&amp;gt;/var/www/html&amp;lt;/code&amp;gt;. Voila un exemple de page PHP, nommez la &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; et supprimez le fichier &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; :&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 if(array_key_exists('stop',$_POST)){ &lt;br /&gt;
   system('super halt');&lt;br /&gt;
   die('halting ...');&lt;br /&gt;
   }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;Contrôle Web&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;&amp;lt;?php echo $_SERVER['PHP_SELF']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;stop&amp;quot; value=&amp;quot;Arrêter&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez l'appel de fonction &amp;lt;code&amp;gt;system('super halt')&amp;lt;/code&amp;gt;. Pour que cet appel ait l'effet désiré, c'est à dire l'arrêt propre de la Raspberry Pi, il faut que le serveur Web puisse déclencher cet arrêt. De base, ce n'est pas possible pour une raison de droits : l'utilisateur &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; sous lequel tourne le serveur &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; n'a pas le privilège de lancer la commande &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt;. Nous allons donc utiliser l'utilitaire &amp;lt;code&amp;gt;super&amp;lt;/code&amp;gt; pour autoriser le serveur Web à lancer la commande :&lt;br /&gt;
  apt-get install super&lt;br /&gt;
Ajoutez ensuite la ligne ci-dessous à la fin fichier de configuration de &amp;lt;code&amp;gt;super&amp;lt;/code&amp;gt; qui se nomme &amp;lt;code&amp;gt;/etc/super.tab&amp;lt;/code&amp;gt; :&lt;br /&gt;
 halt    /sbin/halt      uid=root        www-data&lt;br /&gt;
&lt;br /&gt;
Voila, vous devriez pouvoir arrêter votre Raspberry Pi en cliquant sur le bouton &amp;quot;Arrêter&amp;quot; de votre page Web.&lt;br /&gt;
&lt;br /&gt;
== Communication série ==&lt;br /&gt;
&lt;br /&gt;
Votre Raspberry Pi va probablement devoir communiquer avec un micro-contrôleur. Le plus simple est d'établir une communication série. Par contre les pages Web dynamiques peuvent difficilement utiliser le port série étant donné leur durée de vie, c'est à dire d'exécution, limitée. La solution propre pour permettre à des pages Web d'utiliser un port série est de passer par un serveur websocket. Ce type de processus est lancé au démarrage de la machine et accapare le port série. L'intérêt est que le serveur websocket est facilement contactable par un programma javascript tournant sur le navigateur.&lt;br /&gt;
&lt;br /&gt;
Sur votre Raspberry, vous devez installer le paquetage &amp;lt;code&amp;gt;libwebsockets-dev&amp;lt;/code&amp;gt; :&lt;br /&gt;
 apt-get install libwebsockets-dev&lt;br /&gt;
Récupérez ensuite le programme C stocké sur ce Wiki [[Fichier:Webserial.zip‎]]. Décompressez-le et compilez-le avec la commande :&lt;br /&gt;
  gcc -Wall webserial.c -o webserial -lwebsockets&lt;br /&gt;
Vous pouvez faire en sorte que ce programme soit lancé dès le démarrage de la Raspberry Pi en modifiant le fichier &amp;lt;code&amp;gt;/etc/rc.local&amp;lt;/code&amp;gt;. Pensez à préciser le chemin complet du programme et à suffixer par un &amp;amp; pour que le programme soit lancé en tâche de fond.&lt;br /&gt;
&lt;br /&gt;
Avec notre serveur websocket nous pouvons implanter des protocoles simples. L'exemple qui suit permet d'allumer et d'éteindre des LEDs connectées à un Arduino et à savoir quels boutons sont pressés. Pour les LEDs, le numéro de la LED à gérer est donné par les 7 bits de poids faible et le bit de poids fort permet de savoir s'il faut l'allumer ou l'éteindre. Pour les boutons, un octet est envoyé par l'Arduino dont chaque bit indique si le bouton est appuyé ou non.&lt;br /&gt;
&lt;br /&gt;
Le programme de l'Arduino est très court :&lt;br /&gt;
 #define LED1       8&lt;br /&gt;
 #define Bouton1    2&lt;br /&gt;
 #define Bouton2    3&lt;br /&gt;
 &lt;br /&gt;
 void setup(void){&lt;br /&gt;
 Serial.begin(9600);&lt;br /&gt;
 for(int i=0;i&amp;lt;6;i++) pinMode(LED1+i,OUTPUT);&lt;br /&gt;
 pinMode(Bouton1,INPUT);&lt;br /&gt;
 pinMode(Bouton2,INPUT);&lt;br /&gt;
 digitalWrite(Bouton1,HIGH);&lt;br /&gt;
 digitalWrite(Bouton2,HIGH);&lt;br /&gt;
 for(int i=0;i&amp;lt;6;i++){&lt;br /&gt;
     digitalWrite(LED1+i,HIGH);&lt;br /&gt;
     delay(200);&lt;br /&gt;
     digitalWrite(LED1+i,LOW);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void loop(void){&lt;br /&gt;
 if(Serial.available()&amp;gt;0){&lt;br /&gt;
   unsigned char actions=Serial.read();&lt;br /&gt;
   int led=LED1+actions&amp;amp;0x7f;&lt;br /&gt;
   if((actions&amp;amp;0x80)==0) digitalWrite(led,HIGH); else digitalWrite(led,LOW);&lt;br /&gt;
 }&lt;br /&gt;
 unsigned char capteurs=0;&lt;br /&gt;
 if(digitalRead(Bouton1)==LOW) capteurs |= 0x01;&lt;br /&gt;
 if(digitalRead(Bouton2)==LOW) capteurs |= 0x02;&lt;br /&gt;
 Serial.write(capteurs);&lt;br /&gt;
 delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
La page Web qui dialogue avec le serveur websocket encore plus courte est disponible sur ce Wiki [[Fichier:Jsserial.zip]].&lt;br /&gt;
&lt;br /&gt;
= Répartition des tâches =&lt;br /&gt;
&lt;br /&gt;
Nous n'imposons pas de répartition rigide des tâches. Pour qu'une démonstration puisse se faire en fin de bureau d'étude il faut au moins un robot proie et un robot prédateur.&lt;br /&gt;
&lt;br /&gt;
== Robot proie ==&lt;br /&gt;
&lt;br /&gt;
Un robot proie est constitué comme suit :&lt;br /&gt;
* un châssis roulant, un contrôleur pour chaque paire de moteurs, un Arduino Uno ou un circuit électronique maison à base de micro-contrôleur ATMega328p ;&lt;br /&gt;
* des détecteurs ultrason pour éviter les collisions ;&lt;br /&gt;
* un récepteur infra-rouge TSOP pour décoder les signaux infra-rouges modulés ;&lt;br /&gt;
* un émetteur infra-rouge pour émettre un signal signalant le robot comme une proie ;&lt;br /&gt;
* un dispositif récepteur à courte distance pour simuler la capture par un prédateur, vous pouvez partir sur l'idée d'un capteur à effet Hall.&lt;br /&gt;
&lt;br /&gt;
Dans son mode autonome, le robot se promène dans la pièce en évitant les obstacles de façon tranquille et prévisible. Quand il repère un prédateur à son signal infra-rouge, la proie se déplace plus vivement avec de brusques changements de direction. Quand le détecteur à courte distance indique que le robot proie est à portée du prédateur, il s'arrête. Faire clignoter des LED rouges serait assez à propos. &lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter un mode télécommande au robot. La modification la plus simple consiste à recevoir des ordres d'une télécommande infra-rouge. Le robot pourrait ainsi recevoir des ordres pour accélèrer ou décélérer, pour tourner tranquillement ou brusquement.&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin vous pouvez équiper votre robot d'une Raspberry PI 3 communiquant avec la carte de contrôle en série. Le robot peut alors être téléguidé par un téléphone.&lt;br /&gt;
&lt;br /&gt;
== Robot prédateur ==&lt;br /&gt;
&lt;br /&gt;
Un robot prédateur est constitué comme suit :&lt;br /&gt;
* un châssis roulant, un contrôleur pour chaque paire de moteurs, un Arduino Uno ou un circuit électronique maison à base de micro-contrôleur ATMega328p ;&lt;br /&gt;
* un détecteur ultrason pour ne pas rentrer dans les obstacles ;&lt;br /&gt;
* des récepteurs infra-rouges TSOP pour décoder les signaux infra-rouges modulés ;&lt;br /&gt;
* un émetteur infra-rouge pour émettre un signal signalant le robot comme un prédateur ;&lt;br /&gt;
* un dispositif émetteur à courte distance pour simuler la capture d'une proie, par exemple un électro-aimant.&lt;br /&gt;
&lt;br /&gt;
Dans son mode autonome, le robot tourne en rond à la recherche d'une proie. Dès qu'il en repère une, il se précipite vers elle en se calant sur son signal infra-rouge. Quand le prédateur pense être à porté de la proie, il active la communication à faible portée. Cette activation est temporaire pour donner une chance à la proie de s'échapper.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter un mode télécommande au robot. La modification la plus simple consiste à recevoir des ordres d'une télécommande infra-rouge. Le robot pourrait ainsi recevoir des ordres de direction, de vitesse et d'activation de la communication &amp;quot;capture&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin vous pouvez équiper votre robot d'une Raspberry PI 3 communiquant avec la carte de contrôle en série. Le robot peut alors être téléguidé par un téléphone.&lt;br /&gt;
&lt;br /&gt;
== Réalisations des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Numéro !! Elèves !! Type de robot !! Page&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 1&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-1|Binôme 1 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 2&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-2|Binôme 2 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 3&lt;br /&gt;
| Valentin Kerskens / Kadir Tekin&lt;br /&gt;
| Proie&lt;br /&gt;
| [[Binome2017-3|Binôme 3 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 4&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-4|Binôme 4 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 5&lt;br /&gt;
| Clémence Béchet / Pierre Gautreau&lt;br /&gt;
| Prédateur&lt;br /&gt;
| [[Binome2017-5|Binôme 5 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 6&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-6|Binôme 6 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 7&lt;br /&gt;
| Nour Ekhlas &lt;br /&gt;
| Prédateur &lt;br /&gt;
| [[Binome2017-7|Binôme 7 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 8&lt;br /&gt;
| Vincent Dubois&lt;br /&gt;
| Proie&lt;br /&gt;
| [[Binome2017-8|Binôme 8 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 9&lt;br /&gt;
| Raphaël Bonvalet / Damien Tillaux&lt;br /&gt;
| Proie&lt;br /&gt;
| [[Binome2017-9|Binôme 9 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8589</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8589"/>
				<updated>2018-01-15T09:02:04Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cahier des Charges:&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8587</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8587"/>
				<updated>2018-01-15T09:01:42Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cahier des Charges:&lt;br /&gt;
- &lt;br /&gt;
-&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8580</id>
		<title>Binome2017-5</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Binome2017-5&amp;diff=8580"/>
				<updated>2018-01-15T08:58:52Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : Page créée avec « BE IMA Proie et Chasseur Béchet Clémence / Gautreau Pierre »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BE IMA Proie et Chasseur&lt;br /&gt;
Béchet Clémence / Gautreau Pierre&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2017-2018&amp;diff=8578</id>
		<title>BE 2017-2018</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2017-2018&amp;diff=8578"/>
				<updated>2018-01-15T08:58:07Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Réalisations des binômes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Objectif à atteindre =&lt;br /&gt;
&lt;br /&gt;
Le thème de la saison 8 est la réalisation de robots communicant sur le modèle proies et prédateurs.&lt;br /&gt;
&lt;br /&gt;
Les prédateurs doivent repérer et rattraper des proies. Pour toute la partie identification et poursuite, une interaction par signal infra-rouge modulé est préconisée. Les proies émettent un signal propre à leur condition et sont ainsi identifiées par les prédateurs. Les prédateurs possèdent un système de réception infra-rouge directionnel permettant de s'orienter dans la phase de poursuite. Les prédateurs émettent aussi un signal infra-rouge permettant ainsi aux proies de savoir qu'elles sont prises en chasse. Pour simuler la capture de la proie, la conception d'un système de communication à très faible distance est laissé à la sagacité des élèves.&lt;br /&gt;
&lt;br /&gt;
Les proies comme les prédateurs peuvent être autonomes ou télécommandés. Pour le mode de télécommande deux solutions sont envisagées : utilisation d'une télécommande infra-rouge ou utilisation d'un téléphone intelligent. Pour la dernière solution, il est nécessaire d'embarquer une Raspberry Pi 3 sur le robot.&lt;br /&gt;
&lt;br /&gt;
La taille du robot n'est pas fixé. Vous pouvez envisager des robots miniatures d'une dizaine de centimètres de coté.&lt;br /&gt;
 &lt;br /&gt;
= Matériel à votre disposition pour les robots =&lt;br /&gt;
&lt;br /&gt;
Votre robot doit pouvoir réaliser les actions suivantes :&lt;br /&gt;
* avancer et reculer le tout en tournant éventuellement ;&lt;br /&gt;
* émettre des signaux infra-rouges pulsés ;&lt;br /&gt;
* décoder des signaux infra-rouges pulsés ;&lt;br /&gt;
* détecter des obstacles sur son chemin.&lt;br /&gt;
&lt;br /&gt;
Nous vous imposons de construire ce robot à base de micro-contrôleur ATMega. Par contre nous vous laissons le choix de la variante. Les possibilités sont classées de la plus simple à la plus complexe.&lt;br /&gt;
* Vous pouvez partir d'un des robots construits lors des saisons précédentes. Ces robots ne sont pas forcément totalement fonctionnels mais les parties déjà réalisées peuvent vous faire gagner du temps que vous pourrez consacrer à la programmation du robot.&lt;br /&gt;
* Vous pouvez construire un robot à partir d'un des deux chassis proposés, utiliser un Arduino Mega et concevoir un bouclier pour cet Arduino comportant des emplacements pour les divers composants nécessaires (contrôleur moteur, détecteur ultrason, LED infra-rouge, récepteur infra-rouge TSOP, etc).&lt;br /&gt;
* Vous pouvez aussi fabriquer votre propre chassis avec deux plaques de plexiglass produites par la découpeuse laser ou avec une structure imprimée en 3D. Il ne reste plus qu'à intégrer à ce chassis deux moto-réducteurs et leurs roues ainsi qu'une roue folle. Pour le micro-contrôleur vous pouvez aussi vous passer de l'Arduino Mega et concevoir votre propre circuit intégré à base de micro-contrôleur ATMega328p et d'un contrôleur moteurs TB6612FNG. Seul le sonar ultrason est trop complexe pour être conçu à partir des composants de base.&lt;br /&gt;
* Si vous aimez les défis vous pouvez aussi construire un robot avec un moto-réducteur de meilleure qualité ou avec une carte électronique réalisée uniquement avec des composants électroniques de surface. Vous pouvez même construire un robot miniature.&lt;br /&gt;
&lt;br /&gt;
Les montages photographiques ci-dessous présentent les éléments permettant de construire un robot sans trop souffrir et les composants de base pour construire un robot plus optimisé et personnalisé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot-kit-2018.jpg|300px|thumb|left|Chassis, Arduino Mega, récepteur infra-rouge, sonar, contrôleur moteurs]]&lt;br /&gt;
[[Fichier:robot-composant-2018.jpg|300px|thumb|right|Moto-réducteurs et roues, micro-contrôleurs ATMega328p et quartz, contrôleur de moteurs TB6612FNG, LED infra-rouge]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des robots miniatures peuvent être réalisés en utilisant des servo-moteurs continus et des pièces en plexiglas ou en contreplaqué découpées à l'aide de la découpeuse laser du [http://www.fabricarium.fr/mediawiki-1.23.5/index.php?title=Accueil Fabricarium]. Certaines formes plus complexes peuvent éventuellement être réalisées à l'aide des imprimantes 3D du [http://www.fabricarium.fr/mediawiki-1.23.5/index.php?title=Accueil Fabricarium]. Il est possible d'imprimer des pneus avec du PLA flexible.&lt;br /&gt;
Pour les fixations vous avez de la visserie (vis, écrous, entretoises).&lt;br /&gt;
&lt;br /&gt;
= Logiciels à utiliser =&lt;br /&gt;
&lt;br /&gt;
Pour concevoir un schéma propre du câblage de votre robot vous pouvez utiliser [http://fritzing.org/home/ fritzing]. Tous les composants de votre robot ne sont pas modélisés dans fritzing. Voici une liste de composants supplémentaires mis au points par des élèves IMA de la promotion 2017 (Julie Debock, Hugo Vandenbunder et Sylvain Verdonck) et revus par les encadrants du bureau d'études :&lt;br /&gt;
* détecteur ultrason : [[Fichier:UltrasonicSensor_HCSR04.zip]]&lt;br /&gt;
* contrôleur de moteurs : [[Fichier:MotorDriver_Pololu_md08a.zip]]&lt;br /&gt;
&lt;br /&gt;
Pour la conception de circuits imprimés nous vous recommandons le logiciel [http://www.cadsoftusa.com/download-eagle/freeware/ eagle] ou le précédent.&lt;br /&gt;
&lt;br /&gt;
Pour la découpe laser de nombreux utilisateurs utilisent [https://inkscape.org/fr/ inkscape].&lt;br /&gt;
&lt;br /&gt;
Pour la conception 3D solidwork est très utilisé. Vous pouvez tenter [http://www.freecadweb.org/?lang=fr_FR freeCAD] si vous cherchez un logiciel plus libre. Une solution en ligne existe : [https://www.onshape.com/ onshape].&lt;br /&gt;
&lt;br /&gt;
Pour le développement avec les plateformes Arduino, utilisez l'environnement du même nom. Si la programmation C++ vous fait peur, n'hésitez pas à ajouter l'outil [http://sourceforge.net/projects/ardublock/ ardublock] à cet environnement.&lt;br /&gt;
&lt;br /&gt;
Pour vous aider dans la conception des circuits imprimés nous vous proposons des circuits modélisés avec fritzing que vous pourrez adapter à vos robots. Ces circuits ont été ébauchés par des élèves IMA et retouchés par les encadrants du bureau d'études.&lt;br /&gt;
&lt;br /&gt;
Un premier circuit de type bouclier Arduino permet d'éviter tous les câbles entre l'Arduino et les contrôleurs de moteurs : [[Fichier:robot_bouclier.zip]]. Ce circuit est prévu pour 4 moteurs, les binômes avec des chassis bi-moteurs devront le simplifier. Après téléchargement, prenez soin de modifier le suffixe &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;.fzz&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;gallery style=&amp;quot;margin: 0 auto;&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:robot_bouclier_bb.png|Bouclier : plaque d'essai&lt;br /&gt;
Fichier:robot_bouclier_schem.png|Bouclier : schéma&lt;br /&gt;
Fichier:robot_bouclier_pcb.png|Bouclier : circuit imprimé&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un second circuit permet de se passer totalement d'un Arduino : [[Fichier:RobotPCB.zip]]. Le coeur de la carte est un micro-contrôleur ATMega328p comme sur l'Arduino. La plupart des capteurs et actionneurs nécessaires à vos robots sont présents sur la carte. Après téléchargement, prenez soin de modifier le suffixe &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;.fzz&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;gallery style=&amp;quot;margin: 0 auto;&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:RobotPCB_bb.png|Contrôleur : plaque d'essai&lt;br /&gt;
Fichier:RobotPCB_schem.png|Contrôleur : schéma&lt;br /&gt;
Fichier:RobotPCB_pcb.png|Contrôleur : circuit imprimé&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuration du système embarqué =&lt;br /&gt;
&lt;br /&gt;
Pour contrôler les robots télécommandés vous utiliserez un ordinateur miniature Raspberry Pi 3. Cet ordinateur doit être configuré comme un point d'accès WiFi pour permettre une connexion à partir d'un téléphone intelligent.&lt;br /&gt;
&lt;br /&gt;
Il existe au moins deux méthode de se connecter sur la Raspberry PI 3 pour la configurer. La première méthode est la méthode &amp;quot;grand public&amp;quot; en utilisant la carte graphique intégrée sur la Raspberry et en lui connectant écran, clavier et souris. La seconde méthode est plus spartiate et traditionnellement utilisée dans le monde des systèmes embarqués : la connexion par liaison série.&lt;br /&gt;
&lt;br /&gt;
== Connexion série ==&lt;br /&gt;
&lt;br /&gt;
Vous êtes de futurs ingénieurs, la méthode &amp;quot;liaison série&amp;quot; est à votre portée et vous pourrez l'employer pour d'autres dispositifs. Vous allez commencer par récupérer la dernière version de la distribution Linux pour Raspberry Pi. Comme nous n'avons pas besoin de l'interface graphique, il est préférable de choisir la distribution &amp;quot;Raspbian Jessie Lite&amp;quot; plus légère en terme d'espace disque. La configuration décrite ci-après a été effectuée sur la version du 2017-01-11.&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; :&lt;br /&gt;
 dd if=2017-01-11-raspbian-jessie-lite.img of=/dev/sdb&lt;br /&gt;
Le nom du périphérique &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt; peut varier suivant votre machine, vous pouvez lister les noms des périphériques blocs avec la commande &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. Exécutez cette commande avant et après l'insertion de votre carte SD et vous aurez le nom utilisé par votre système.&lt;br /&gt;
&lt;br /&gt;
Avant de démarrer la Raspberry Pi 3 sur cette carte SD, vous devez modifier quelques paramètres de démarrage. En effet sur les dernières version de la distribution raspbian, la connexion série a été laissée de coté. Plusieurs explications à cela : la Raspberry vise plus le marché du jouet grand public que celui du système embarqué, de plus la Raspberry Pi 3 intégre maintenant une interface bluetooth disponible via le port série principal. Il est cependant possible d'utiliser le second port série désigné sous le nom de périphérique &amp;lt;code&amp;gt;/dev/serial0&amp;lt;/code&amp;gt;. Montez la première partition de votre carte SD Raspian Lite avec la commande&lt;br /&gt;
 mount /dev/sdb1 /mnt&lt;br /&gt;
puis examinez les fichiers &amp;lt;code&amp;gt;cmdline.txt&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;config.txt&amp;lt;/code&amp;gt;. Attention le nom de la partition n'est pas forcément &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt;, utilisez &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; pour déterminer le nom de la première partition de votre carte SD sur votre machine. Vérifiez que l'option &amp;lt;code&amp;gt;console=serial0,115200&amp;lt;/code&amp;gt; est bien présente dans la ligne du fichier &amp;lt;code&amp;gt;cmdline.txt&amp;lt;/code&amp;gt; et ajoutez &amp;lt;code&amp;gt;enable_uart=1&amp;lt;/code&amp;gt; à la fin du fichier &amp;lt;code&amp;gt;config.txt&amp;lt;/code&amp;gt;. N'oubliez pas de libérer votre carte SD par la commande&lt;br /&gt;
 umount /mnt&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite insérer la carte SD dans la Raspberry Pi. Utilisez le câble USB/série pour connecter votre Raspberry à votre PC. Il faut enficher les câbles noir, blanc et vert du câble USB/série [https://www.adafruit.com/product/954] sur les entrées/sorties correspondantes de la Raspberry [https://pinout.xyz/]. Le câble noir doit être sur la broche 6, le câble blanc sur la broche 8 et le câble vert sur la broche 10. Alimentez votre Raspberry Pi et lancez la commande suivante sur votre PC &lt;br /&gt;
 minicom -o -8 -b 115200 -D /dev/ttyUSB0&lt;br /&gt;
Vous devez obtenir, in fine, l'invite de connexion de la Raspberry&lt;br /&gt;
 Raspbian GNU/Linux 8 raspberrypi ttyS0&lt;br /&gt;
  &lt;br /&gt;
 raspberrypi login:&lt;br /&gt;
Vous pouvez vous connecter avec l'identifiant &amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; et le mot de passe &amp;lt;code&amp;gt;raspberry&amp;lt;/code&amp;gt;. Pour passer administrateur utilisez la commande &amp;lt;code&amp;gt;sudo su&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Mise à jour de la distribution ==&lt;br /&gt;
&lt;br /&gt;
La distribution Raspbian vient avec le système de démarrage &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt;. Ce système n'est pas forcément adapté à l'usage que nous souhaitons faire de la Raspberry : utilisation en tant que système embarqué et manipulation en mode texte. Il est assez simple de supprimer, en tant qu'administrateur, le paquetage &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; ainsi que deux autres paquetages qui tentent de gérer automatiquement la configuration réseau &amp;lt;code&amp;gt;dhcpcd5&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;openresolv&amp;lt;/code&amp;gt; :&lt;br /&gt;
 apt-get purge dhcpcd5 openresolv &lt;br /&gt;
 apt-get purge systemd &lt;br /&gt;
Attention pour que la seconde commande fonctionne, il faut que la Raspberry Pi puisse récupérer des paquetages, donc soit connectée au réseau. En salle E304, vous pouvez connecter votre Raspberry sur la seconde interface réseau d'une Zabeth. Dans le fichier &amp;lt;code&amp;gt;/etc/network/interface&amp;lt;/code&amp;gt; vous pouvez écrire la configuration ci-dessous :&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 172.26.79.1XX&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
avec &amp;lt;code&amp;gt;XX&amp;lt;/code&amp;gt; le numéro de votre Zabeth. Il faut aussi mettre une adresse de serveur de noms dans le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
 nameserver 193.48.57.34&lt;br /&gt;
Enfin pour que la Raspberry accède aux dépôts de paquetage sur Internet, il faut lui indiquer d'utiliser les serveurs mandataires Web de l'école :&lt;br /&gt;
 export http_proxy=http://proxy.polytech-lille.fr:3128&lt;br /&gt;
Il est normal que la suppression de &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; retourne une erreur, il faudra relancer la Raspberry pour l'enlever définitivement. Avant cela modifiez le fichier &amp;lt;code&amp;gt;/etc/inittab&amp;lt;/code&amp;gt; et remplacez la ligne&lt;br /&gt;
 #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100&lt;br /&gt;
par la ligne&lt;br /&gt;
 T0:23:respawn:/sbin/getty -L serial0 115200 vt100&lt;br /&gt;
Après le redémarrage de la Raspberry enlevez définitivement &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; en tapant à nouveau la commande&lt;br /&gt;
 apt-get purge systemd &lt;br /&gt;
&lt;br /&gt;
== Connexion sur la Raspberry par &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
La connexion sur la Raspberry par série a ses limites : le terminal texte est assez mal géré et à terme la connexion série sera dédié à la communication avec le micro-contrôleur. Maintenant que la Raspberry est configurée sur le réseau, il est souhaitable de s'y connecter en utilisant la commande &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour activer le serveur &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; sur la Raspberry, utilisez les commandes suivantes :&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
&lt;br /&gt;
Vous pouvez alors vous connecter sur la Raspberry avec la commande :&lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
Si le message d'erreur à la connexion vous énerve, il vous suffit de rajouter un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; devant l'appel de fonction &amp;lt;code&amp;gt;check_hash&amp;lt;/code&amp;gt; à l'avant-dernière ligne du fichier &amp;lt;code&amp;gt;/etc/profile.d/sshpasswd.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Configuration en point d'accès ==&lt;br /&gt;
&lt;br /&gt;
Pour que votre Raspberry Pi 3 devienne un point d'accès, installez le paquetage &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Copiez le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt; dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
Examinez le fichier &amp;lt;code&amp;gt;/etc/hostapd/hostapd.conf&amp;lt;/code&amp;gt; à la recherche des mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin dans le fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt;, définissez le chemin du fichier de configuration :&lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
Relancez le service par la commande :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier avec votre téléphone que votre réseau WiFi est bien visible.&lt;br /&gt;
&lt;br /&gt;
== Configuration IP des clients WiFi ==&lt;br /&gt;
&lt;br /&gt;
Pour que les clients WiFi puissent obtenir une adresse IP et autres coordonnées réseau, installez le paquetage &amp;lt;code&amp;gt;isc-dhcp-server&amp;lt;/code&amp;gt; :&lt;br /&gt;
  apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
Tout d'abord choisir un réseau IPv4, par exemple &amp;lt;code&amp;gt;192.168.100.0/24&amp;lt;/code&amp;gt; et affecter à la Raspberry une adresse de ce réseau, par exemple &amp;lt;code&amp;gt;192.168.100.1&amp;lt;/code&amp;gt;. Pour cela ajoutez le bloc ci-dessous à la fin du fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface wlan0 inet static&lt;br /&gt;
   address 192.168.100.1&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Il est alors possible de configurer le serveur DHCP au travers de son fichier de configuration &amp;lt;code&amp;gt;/etc/dhcp/dhcpd.conf&amp;lt;/code&amp;gt;. Les directives à modifier sont les suivantes :&lt;br /&gt;
* &amp;lt;code&amp;gt;option domain-name&amp;lt;/code&amp;gt;, spécifiez un nom de domaine de votre choix (&amp;lt;code&amp;gt;monrobot.org&amp;lt;/code&amp;gt; par exemple) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;option domain-name-servers&amp;lt;/code&amp;gt;, spécifiez l'adresse &amp;lt;code&amp;gt;192.168.100.1&amp;lt;/code&amp;gt; comme serveur DNS ;&lt;br /&gt;
* &amp;lt;code&amp;gt;authoritative&amp;lt;/code&amp;gt;, déclarez votre serveur DHCP comme légitime.&lt;br /&gt;
Il faut aussi ajouter un bloc réseau comme celui-ci :&lt;br /&gt;
 subnet 192.168.100.0 netmask 255.255.255.0 {&lt;br /&gt;
   range 192.168.100.100 192.168.100.200;&lt;br /&gt;
   option routers 192.168.100.1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Relancez le service par la commande :&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
Vous devez maintenant pouvoir connecter votre téléphone sur votre réseau WiFi. La bonne connexion au réseau WiFi doit se voir dans le fichier de contrôle &amp;lt;code&amp;gt;/var/log/daemon.log&amp;lt;/code&amp;gt; et l'obtention d'une adresse IP doit se lire dans le fichier &amp;lt;code&amp;gt;/var/log/syslog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Ajout d'un nom réseau pour la Raspberry Pi ==&lt;br /&gt;
&lt;br /&gt;
A ce point votre téléphone peut contacter la Raspberry par son adresse IP. Pour pouvoir faire de même avec un nom significatif installez le paquetage &amp;lt;code&amp;gt;bind9&amp;lt;/code&amp;gt; :&lt;br /&gt;
  apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
Ajoutez un bloc dans le fichier de configuration &amp;lt;code&amp;gt;/etc/bind/named.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
 zone &amp;quot;monrobot.org&amp;quot;  {&lt;br /&gt;
   type master;&lt;br /&gt;
   file &amp;quot;/etc/bind/db.monrobot&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/bind/db.monrobot&amp;lt;/code&amp;gt; avec un contenu de ce type :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     localhost. root.localhost. (&lt;br /&gt;
                              2         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 @       IN      NS      localhost.&lt;br /&gt;
 robot   IN      A       192.168.100.1&lt;br /&gt;
&lt;br /&gt;
Enfin ajoutez en tête du fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; la ligne&lt;br /&gt;
 domain monrobot.org&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier le bon fonctionnement du résolveur de nom en tapant &lt;br /&gt;
  host -t any robot 192.168.100.1&lt;br /&gt;
&lt;br /&gt;
== Installation d'un serveur Web ==&lt;br /&gt;
&lt;br /&gt;
La commande du robot doit se faire via une interface Web. Il faut donc installer un serveur Web sur la Raspberry Pi avec un système de page dynamiques pour exécuter du code sur la Raspberry. Il suffit pour cela d'installer les paquetages &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;php5&amp;lt;/code&amp;gt; :&lt;br /&gt;
 apt-get install apache2 php5&lt;br /&gt;
&lt;br /&gt;
Un premier test consiste à donner &amp;lt;code&amp;gt;robot&amp;lt;/code&amp;gt; dans la barre d'adresses du navigateur Web de votre téléphone. La page de test du serveur Web &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; doit s'afficher.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi écrire une petite page permettant d'effectuer une action comme l'arrêt de la Raspberry Pi. Cette page est à mettre dans le répertoire &amp;lt;code&amp;gt;/var/www/html&amp;lt;/code&amp;gt;. Voila un exemple de page PHP, nommez la &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; et supprimez le fichier &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; :&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 if(array_key_exists('stop',$_POST)){ &lt;br /&gt;
   system('super halt');&lt;br /&gt;
   die('halting ...');&lt;br /&gt;
   }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;Contrôle Web&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;&amp;lt;?php echo $_SERVER['PHP_SELF']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;stop&amp;quot; value=&amp;quot;Arrêter&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez l'appel de fonction &amp;lt;code&amp;gt;system('super halt')&amp;lt;/code&amp;gt;. Pour que cet appel ait l'effet désiré, c'est à dire l'arrêt propre de la Raspberry Pi, il faut que le serveur Web puisse déclencher cet arrêt. De base, ce n'est pas possible pour une raison de droits : l'utilisateur &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; sous lequel tourne le serveur &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; n'a pas le privilège de lancer la commande &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt;. Nous allons donc utiliser l'utilitaire &amp;lt;code&amp;gt;super&amp;lt;/code&amp;gt; pour autoriser le serveur Web à lancer la commande :&lt;br /&gt;
  apt-get install super&lt;br /&gt;
Ajoutez ensuite la ligne ci-dessous à la fin fichier de configuration de &amp;lt;code&amp;gt;super&amp;lt;/code&amp;gt; qui se nomme &amp;lt;code&amp;gt;/etc/super.tab&amp;lt;/code&amp;gt; :&lt;br /&gt;
 halt    /sbin/halt      uid=root        www-data&lt;br /&gt;
&lt;br /&gt;
Voila, vous devriez pouvoir arrêter votre Raspberry Pi en cliquant sur le bouton &amp;quot;Arrêter&amp;quot; de votre page Web.&lt;br /&gt;
&lt;br /&gt;
== Communication série ==&lt;br /&gt;
&lt;br /&gt;
Votre Raspberry Pi va probablement devoir communiquer avec un micro-contrôleur. Le plus simple est d'établir une communication série. Par contre les pages Web dynamiques peuvent difficilement utiliser le port série étant donné leur durée de vie, c'est à dire d'exécution, limitée. La solution propre pour permettre à des pages Web d'utiliser un port série est de passer par un serveur websocket. Ce type de processus est lancé au démarrage de la machine et accapare le port série. L'intérêt est que le serveur websocket est facilement contactable par un programma javascript tournant sur le navigateur.&lt;br /&gt;
&lt;br /&gt;
Sur votre Raspberry, vous devez installer le paquetage &amp;lt;code&amp;gt;libwebsockets-dev&amp;lt;/code&amp;gt; :&lt;br /&gt;
 apt-get install libwebsockets-dev&lt;br /&gt;
Récupérez ensuite le programme C stocké sur ce Wiki [[Fichier:Webserial.zip‎]]. Décompressez-le et compilez-le avec la commande :&lt;br /&gt;
  gcc -Wall webserial.c -o webserial -lwebsockets&lt;br /&gt;
Vous pouvez faire en sorte que ce programme soit lancé dès le démarrage de la Raspberry Pi en modifiant le fichier &amp;lt;code&amp;gt;/etc/rc.local&amp;lt;/code&amp;gt;. Pensez à préciser le chemin complet du programme et à suffixer par un &amp;amp; pour que le programme soit lancé en tâche de fond.&lt;br /&gt;
&lt;br /&gt;
Avec notre serveur websocket nous pouvons implanter des protocoles simples. L'exemple qui suit permet d'allumer et d'éteindre des LEDs connectées à un Arduino et à savoir quels boutons sont pressés. Pour les LEDs, le numéro de la LED à gérer est donné par les 7 bits de poids faible et le bit de poids fort permet de savoir s'il faut l'allumer ou l'éteindre. Pour les boutons, un octet est envoyé par l'Arduino dont chaque bit indique si le bouton est appuyé ou non.&lt;br /&gt;
&lt;br /&gt;
Le programme de l'Arduino est très court :&lt;br /&gt;
 #define LED1       8&lt;br /&gt;
 #define Bouton1    2&lt;br /&gt;
 #define Bouton2    3&lt;br /&gt;
 &lt;br /&gt;
 void setup(void){&lt;br /&gt;
 Serial.begin(9600);&lt;br /&gt;
 for(int i=0;i&amp;lt;6;i++) pinMode(LED1+i,OUTPUT);&lt;br /&gt;
 pinMode(Bouton1,INPUT);&lt;br /&gt;
 pinMode(Bouton2,INPUT);&lt;br /&gt;
 digitalWrite(Bouton1,HIGH);&lt;br /&gt;
 digitalWrite(Bouton2,HIGH);&lt;br /&gt;
 for(int i=0;i&amp;lt;6;i++){&lt;br /&gt;
     digitalWrite(LED1+i,HIGH);&lt;br /&gt;
     delay(200);&lt;br /&gt;
     digitalWrite(LED1+i,LOW);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void loop(void){&lt;br /&gt;
 if(Serial.available()&amp;gt;0){&lt;br /&gt;
   unsigned char actions=Serial.read();&lt;br /&gt;
   int led=LED1+actions&amp;amp;0x7f;&lt;br /&gt;
   if((actions&amp;amp;0x80)==0) digitalWrite(led,HIGH); else digitalWrite(led,LOW);&lt;br /&gt;
 }&lt;br /&gt;
 unsigned char capteurs=0;&lt;br /&gt;
 if(digitalRead(Bouton1)==LOW) capteurs |= 0x01;&lt;br /&gt;
 if(digitalRead(Bouton2)==LOW) capteurs |= 0x02;&lt;br /&gt;
 Serial.write(capteurs);&lt;br /&gt;
 delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
La page Web qui dialogue avec le serveur websocket encore plus courte est disponible sur ce Wiki [[Fichier:Jsserial.zip]].&lt;br /&gt;
&lt;br /&gt;
= Répartition des tâches =&lt;br /&gt;
&lt;br /&gt;
Nous n'imposons pas de répartition rigide des tâches. Pour qu'une démonstration puisse se faire en fin de bureau d'étude il faut au moins un robot proie et un robot prédateur.&lt;br /&gt;
&lt;br /&gt;
== Robot proie ==&lt;br /&gt;
&lt;br /&gt;
Un robot proie est constitué comme suit :&lt;br /&gt;
* un châssis roulant, un contrôleur pour chaque paire de moteurs, un Arduino Uno ou un circuit électronique maison à base de micro-contrôleur ATMega328p ;&lt;br /&gt;
* des détecteurs ultrason pour éviter les collisions ;&lt;br /&gt;
* un récepteur infra-rouge TSOP pour décoder les signaux infra-rouges modulés ;&lt;br /&gt;
* un émetteur infra-rouge pour émettre un signal signalant le robot comme une proie ;&lt;br /&gt;
* un dispositif récepteur à courte distance pour simuler la capture par un prédateur, vous pouvez partir sur l'idée d'un capteur à effet Hall.&lt;br /&gt;
&lt;br /&gt;
Dans son mode autonome, le robot se promène dans la pièce en évitant les obstacles de façon tranquille et prévisible. Quand il repère un prédateur à son signal infra-rouge, la proie se déplace plus vivement avec de brusques changements de direction. Quand le détecteur à courte distance indique que le robot proie est à portée du prédateur, il s'arrête. Faire clignoter des LED rouges serait assez à propos. &lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter un mode télécommande au robot. La modification la plus simple consiste à recevoir des ordres d'une télécommande infra-rouge. Le robot pourrait ainsi recevoir des ordres pour accélèrer ou décélérer, pour tourner tranquillement ou brusquement.&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin vous pouvez équiper votre robot d'une Raspberry PI 3 communiquant avec la carte de contrôle en série. Le robot peut alors être téléguidé par un téléphone.&lt;br /&gt;
&lt;br /&gt;
== Robot prédateur ==&lt;br /&gt;
&lt;br /&gt;
Un robot prédateur est constitué comme suit :&lt;br /&gt;
* un châssis roulant, un contrôleur pour chaque paire de moteurs, un Arduino Uno ou un circuit électronique maison à base de micro-contrôleur ATMega328p ;&lt;br /&gt;
* un détecteur ultrason pour ne pas rentrer dans les obstacles ;&lt;br /&gt;
* des récepteurs infra-rouges TSOP pour décoder les signaux infra-rouges modulés ;&lt;br /&gt;
* un émetteur infra-rouge pour émettre un signal signalant le robot comme un prédateur ;&lt;br /&gt;
* un dispositif émetteur à courte distance pour simuler la capture d'une proie, par exemple un électro-aimant.&lt;br /&gt;
&lt;br /&gt;
Dans son mode autonome, le robot tourne en rond à la recherche d'une proie. Dès qu'il en repère une, il se précipite vers elle en se calant sur son signal infra-rouge. Quand le prédateur pense être à porté de la proie, il active la communication à faible portée. Cette activation est temporaire pour donner une chance à la proie de s'échapper.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter un mode télécommande au robot. La modification la plus simple consiste à recevoir des ordres d'une télécommande infra-rouge. Le robot pourrait ainsi recevoir des ordres de direction, de vitesse et d'activation de la communication &amp;quot;capture&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin vous pouvez équiper votre robot d'une Raspberry PI 3 communiquant avec la carte de contrôle en série. Le robot peut alors être téléguidé par un téléphone.&lt;br /&gt;
&lt;br /&gt;
== Réalisations des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Numéro !! Elèves !! Type de robot !! Page&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 1&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-1|Binôme 1 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 2&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-2|Binôme 2 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 3&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-3|Binôme 3 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 4&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-4|Binôme 4 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 5&lt;br /&gt;
| Clémence Béchet / Pierre Gautreau&lt;br /&gt;
| Proie&lt;br /&gt;
| [[Binome2017-5|Binôme 5 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 6&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-6|Binôme 6 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 7&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-7|Binôme 7 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 8&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-8|Binôme 8 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 9&lt;br /&gt;
| Raphaël Bonvalet / Damien Tillaux&lt;br /&gt;
| Proie&lt;br /&gt;
| [[Binome2017-9|Binôme 9 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2017-2018&amp;diff=8577</id>
		<title>BE 2017-2018</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2017-2018&amp;diff=8577"/>
				<updated>2018-01-15T08:57:42Z</updated>
		
		<summary type="html">&lt;p&gt;Pgautrea : /* Réalisations des binômes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Objectif à atteindre =&lt;br /&gt;
&lt;br /&gt;
Le thème de la saison 8 est la réalisation de robots communicant sur le modèle proies et prédateurs.&lt;br /&gt;
&lt;br /&gt;
Les prédateurs doivent repérer et rattraper des proies. Pour toute la partie identification et poursuite, une interaction par signal infra-rouge modulé est préconisée. Les proies émettent un signal propre à leur condition et sont ainsi identifiées par les prédateurs. Les prédateurs possèdent un système de réception infra-rouge directionnel permettant de s'orienter dans la phase de poursuite. Les prédateurs émettent aussi un signal infra-rouge permettant ainsi aux proies de savoir qu'elles sont prises en chasse. Pour simuler la capture de la proie, la conception d'un système de communication à très faible distance est laissé à la sagacité des élèves.&lt;br /&gt;
&lt;br /&gt;
Les proies comme les prédateurs peuvent être autonomes ou télécommandés. Pour le mode de télécommande deux solutions sont envisagées : utilisation d'une télécommande infra-rouge ou utilisation d'un téléphone intelligent. Pour la dernière solution, il est nécessaire d'embarquer une Raspberry Pi 3 sur le robot.&lt;br /&gt;
&lt;br /&gt;
La taille du robot n'est pas fixé. Vous pouvez envisager des robots miniatures d'une dizaine de centimètres de coté.&lt;br /&gt;
 &lt;br /&gt;
= Matériel à votre disposition pour les robots =&lt;br /&gt;
&lt;br /&gt;
Votre robot doit pouvoir réaliser les actions suivantes :&lt;br /&gt;
* avancer et reculer le tout en tournant éventuellement ;&lt;br /&gt;
* émettre des signaux infra-rouges pulsés ;&lt;br /&gt;
* décoder des signaux infra-rouges pulsés ;&lt;br /&gt;
* détecter des obstacles sur son chemin.&lt;br /&gt;
&lt;br /&gt;
Nous vous imposons de construire ce robot à base de micro-contrôleur ATMega. Par contre nous vous laissons le choix de la variante. Les possibilités sont classées de la plus simple à la plus complexe.&lt;br /&gt;
* Vous pouvez partir d'un des robots construits lors des saisons précédentes. Ces robots ne sont pas forcément totalement fonctionnels mais les parties déjà réalisées peuvent vous faire gagner du temps que vous pourrez consacrer à la programmation du robot.&lt;br /&gt;
* Vous pouvez construire un robot à partir d'un des deux chassis proposés, utiliser un Arduino Mega et concevoir un bouclier pour cet Arduino comportant des emplacements pour les divers composants nécessaires (contrôleur moteur, détecteur ultrason, LED infra-rouge, récepteur infra-rouge TSOP, etc).&lt;br /&gt;
* Vous pouvez aussi fabriquer votre propre chassis avec deux plaques de plexiglass produites par la découpeuse laser ou avec une structure imprimée en 3D. Il ne reste plus qu'à intégrer à ce chassis deux moto-réducteurs et leurs roues ainsi qu'une roue folle. Pour le micro-contrôleur vous pouvez aussi vous passer de l'Arduino Mega et concevoir votre propre circuit intégré à base de micro-contrôleur ATMega328p et d'un contrôleur moteurs TB6612FNG. Seul le sonar ultrason est trop complexe pour être conçu à partir des composants de base.&lt;br /&gt;
* Si vous aimez les défis vous pouvez aussi construire un robot avec un moto-réducteur de meilleure qualité ou avec une carte électronique réalisée uniquement avec des composants électroniques de surface. Vous pouvez même construire un robot miniature.&lt;br /&gt;
&lt;br /&gt;
Les montages photographiques ci-dessous présentent les éléments permettant de construire un robot sans trop souffrir et les composants de base pour construire un robot plus optimisé et personnalisé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot-kit-2018.jpg|300px|thumb|left|Chassis, Arduino Mega, récepteur infra-rouge, sonar, contrôleur moteurs]]&lt;br /&gt;
[[Fichier:robot-composant-2018.jpg|300px|thumb|right|Moto-réducteurs et roues, micro-contrôleurs ATMega328p et quartz, contrôleur de moteurs TB6612FNG, LED infra-rouge]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des robots miniatures peuvent être réalisés en utilisant des servo-moteurs continus et des pièces en plexiglas ou en contreplaqué découpées à l'aide de la découpeuse laser du [http://www.fabricarium.fr/mediawiki-1.23.5/index.php?title=Accueil Fabricarium]. Certaines formes plus complexes peuvent éventuellement être réalisées à l'aide des imprimantes 3D du [http://www.fabricarium.fr/mediawiki-1.23.5/index.php?title=Accueil Fabricarium]. Il est possible d'imprimer des pneus avec du PLA flexible.&lt;br /&gt;
Pour les fixations vous avez de la visserie (vis, écrous, entretoises).&lt;br /&gt;
&lt;br /&gt;
= Logiciels à utiliser =&lt;br /&gt;
&lt;br /&gt;
Pour concevoir un schéma propre du câblage de votre robot vous pouvez utiliser [http://fritzing.org/home/ fritzing]. Tous les composants de votre robot ne sont pas modélisés dans fritzing. Voici une liste de composants supplémentaires mis au points par des élèves IMA de la promotion 2017 (Julie Debock, Hugo Vandenbunder et Sylvain Verdonck) et revus par les encadrants du bureau d'études :&lt;br /&gt;
* détecteur ultrason : [[Fichier:UltrasonicSensor_HCSR04.zip]]&lt;br /&gt;
* contrôleur de moteurs : [[Fichier:MotorDriver_Pololu_md08a.zip]]&lt;br /&gt;
&lt;br /&gt;
Pour la conception de circuits imprimés nous vous recommandons le logiciel [http://www.cadsoftusa.com/download-eagle/freeware/ eagle] ou le précédent.&lt;br /&gt;
&lt;br /&gt;
Pour la découpe laser de nombreux utilisateurs utilisent [https://inkscape.org/fr/ inkscape].&lt;br /&gt;
&lt;br /&gt;
Pour la conception 3D solidwork est très utilisé. Vous pouvez tenter [http://www.freecadweb.org/?lang=fr_FR freeCAD] si vous cherchez un logiciel plus libre. Une solution en ligne existe : [https://www.onshape.com/ onshape].&lt;br /&gt;
&lt;br /&gt;
Pour le développement avec les plateformes Arduino, utilisez l'environnement du même nom. Si la programmation C++ vous fait peur, n'hésitez pas à ajouter l'outil [http://sourceforge.net/projects/ardublock/ ardublock] à cet environnement.&lt;br /&gt;
&lt;br /&gt;
Pour vous aider dans la conception des circuits imprimés nous vous proposons des circuits modélisés avec fritzing que vous pourrez adapter à vos robots. Ces circuits ont été ébauchés par des élèves IMA et retouchés par les encadrants du bureau d'études.&lt;br /&gt;
&lt;br /&gt;
Un premier circuit de type bouclier Arduino permet d'éviter tous les câbles entre l'Arduino et les contrôleurs de moteurs : [[Fichier:robot_bouclier.zip]]. Ce circuit est prévu pour 4 moteurs, les binômes avec des chassis bi-moteurs devront le simplifier. Après téléchargement, prenez soin de modifier le suffixe &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;.fzz&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;gallery style=&amp;quot;margin: 0 auto;&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:robot_bouclier_bb.png|Bouclier : plaque d'essai&lt;br /&gt;
Fichier:robot_bouclier_schem.png|Bouclier : schéma&lt;br /&gt;
Fichier:robot_bouclier_pcb.png|Bouclier : circuit imprimé&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un second circuit permet de se passer totalement d'un Arduino : [[Fichier:RobotPCB.zip]]. Le coeur de la carte est un micro-contrôleur ATMega328p comme sur l'Arduino. La plupart des capteurs et actionneurs nécessaires à vos robots sont présents sur la carte. Après téléchargement, prenez soin de modifier le suffixe &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;.fzz&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;gallery style=&amp;quot;margin: 0 auto;&amp;quot;&amp;gt;&lt;br /&gt;
Fichier:RobotPCB_bb.png|Contrôleur : plaque d'essai&lt;br /&gt;
Fichier:RobotPCB_schem.png|Contrôleur : schéma&lt;br /&gt;
Fichier:RobotPCB_pcb.png|Contrôleur : circuit imprimé&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuration du système embarqué =&lt;br /&gt;
&lt;br /&gt;
Pour contrôler les robots télécommandés vous utiliserez un ordinateur miniature Raspberry Pi 3. Cet ordinateur doit être configuré comme un point d'accès WiFi pour permettre une connexion à partir d'un téléphone intelligent.&lt;br /&gt;
&lt;br /&gt;
Il existe au moins deux méthode de se connecter sur la Raspberry PI 3 pour la configurer. La première méthode est la méthode &amp;quot;grand public&amp;quot; en utilisant la carte graphique intégrée sur la Raspberry et en lui connectant écran, clavier et souris. La seconde méthode est plus spartiate et traditionnellement utilisée dans le monde des systèmes embarqués : la connexion par liaison série.&lt;br /&gt;
&lt;br /&gt;
== Connexion série ==&lt;br /&gt;
&lt;br /&gt;
Vous êtes de futurs ingénieurs, la méthode &amp;quot;liaison série&amp;quot; est à votre portée et vous pourrez l'employer pour d'autres dispositifs. Vous allez commencer par récupérer la dernière version de la distribution Linux pour Raspberry Pi. Comme nous n'avons pas besoin de l'interface graphique, il est préférable de choisir la distribution &amp;quot;Raspbian Jessie Lite&amp;quot; plus légère en terme d'espace disque. La configuration décrite ci-après a été effectuée sur la version du 2017-01-11.&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive zippée de la distribution récupérée vous pouvez l'installer sur la carte SD après l'avoir décompressée en utilisant la commande &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; :&lt;br /&gt;
 dd if=2017-01-11-raspbian-jessie-lite.img of=/dev/sdb&lt;br /&gt;
Le nom du périphérique &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt; peut varier suivant votre machine, vous pouvez lister les noms des périphériques blocs avec la commande &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. Exécutez cette commande avant et après l'insertion de votre carte SD et vous aurez le nom utilisé par votre système.&lt;br /&gt;
&lt;br /&gt;
Avant de démarrer la Raspberry Pi 3 sur cette carte SD, vous devez modifier quelques paramètres de démarrage. En effet sur les dernières version de la distribution raspbian, la connexion série a été laissée de coté. Plusieurs explications à cela : la Raspberry vise plus le marché du jouet grand public que celui du système embarqué, de plus la Raspberry Pi 3 intégre maintenant une interface bluetooth disponible via le port série principal. Il est cependant possible d'utiliser le second port série désigné sous le nom de périphérique &amp;lt;code&amp;gt;/dev/serial0&amp;lt;/code&amp;gt;. Montez la première partition de votre carte SD Raspian Lite avec la commande&lt;br /&gt;
 mount /dev/sdb1 /mnt&lt;br /&gt;
puis examinez les fichiers &amp;lt;code&amp;gt;cmdline.txt&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;config.txt&amp;lt;/code&amp;gt;. Attention le nom de la partition n'est pas forcément &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt;, utilisez &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; pour déterminer le nom de la première partition de votre carte SD sur votre machine. Vérifiez que l'option &amp;lt;code&amp;gt;console=serial0,115200&amp;lt;/code&amp;gt; est bien présente dans la ligne du fichier &amp;lt;code&amp;gt;cmdline.txt&amp;lt;/code&amp;gt; et ajoutez &amp;lt;code&amp;gt;enable_uart=1&amp;lt;/code&amp;gt; à la fin du fichier &amp;lt;code&amp;gt;config.txt&amp;lt;/code&amp;gt;. N'oubliez pas de libérer votre carte SD par la commande&lt;br /&gt;
 umount /mnt&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite insérer la carte SD dans la Raspberry Pi. Utilisez le câble USB/série pour connecter votre Raspberry à votre PC. Il faut enficher les câbles noir, blanc et vert du câble USB/série [https://www.adafruit.com/product/954] sur les entrées/sorties correspondantes de la Raspberry [https://pinout.xyz/]. Le câble noir doit être sur la broche 6, le câble blanc sur la broche 8 et le câble vert sur la broche 10. Alimentez votre Raspberry Pi et lancez la commande suivante sur votre PC &lt;br /&gt;
 minicom -o -8 -b 115200 -D /dev/ttyUSB0&lt;br /&gt;
Vous devez obtenir, in fine, l'invite de connexion de la Raspberry&lt;br /&gt;
 Raspbian GNU/Linux 8 raspberrypi ttyS0&lt;br /&gt;
  &lt;br /&gt;
 raspberrypi login:&lt;br /&gt;
Vous pouvez vous connecter avec l'identifiant &amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; et le mot de passe &amp;lt;code&amp;gt;raspberry&amp;lt;/code&amp;gt;. Pour passer administrateur utilisez la commande &amp;lt;code&amp;gt;sudo su&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Mise à jour de la distribution ==&lt;br /&gt;
&lt;br /&gt;
La distribution Raspbian vient avec le système de démarrage &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt;. Ce système n'est pas forcément adapté à l'usage que nous souhaitons faire de la Raspberry : utilisation en tant que système embarqué et manipulation en mode texte. Il est assez simple de supprimer, en tant qu'administrateur, le paquetage &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; ainsi que deux autres paquetages qui tentent de gérer automatiquement la configuration réseau &amp;lt;code&amp;gt;dhcpcd5&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;openresolv&amp;lt;/code&amp;gt; :&lt;br /&gt;
 apt-get purge dhcpcd5 openresolv &lt;br /&gt;
 apt-get purge systemd &lt;br /&gt;
Attention pour que la seconde commande fonctionne, il faut que la Raspberry Pi puisse récupérer des paquetages, donc soit connectée au réseau. En salle E304, vous pouvez connecter votre Raspberry sur la seconde interface réseau d'une Zabeth. Dans le fichier &amp;lt;code&amp;gt;/etc/network/interface&amp;lt;/code&amp;gt; vous pouvez écrire la configuration ci-dessous :&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 172.26.79.1XX&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
avec &amp;lt;code&amp;gt;XX&amp;lt;/code&amp;gt; le numéro de votre Zabeth. Il faut aussi mettre une adresse de serveur de noms dans le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
 nameserver 193.48.57.34&lt;br /&gt;
Enfin pour que la Raspberry accède aux dépôts de paquetage sur Internet, il faut lui indiquer d'utiliser les serveurs mandataires Web de l'école :&lt;br /&gt;
 export http_proxy=http://proxy.polytech-lille.fr:3128&lt;br /&gt;
Il est normal que la suppression de &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; retourne une erreur, il faudra relancer la Raspberry pour l'enlever définitivement. Avant cela modifiez le fichier &amp;lt;code&amp;gt;/etc/inittab&amp;lt;/code&amp;gt; et remplacez la ligne&lt;br /&gt;
 #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100&lt;br /&gt;
par la ligne&lt;br /&gt;
 T0:23:respawn:/sbin/getty -L serial0 115200 vt100&lt;br /&gt;
Après le redémarrage de la Raspberry enlevez définitivement &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; en tapant à nouveau la commande&lt;br /&gt;
 apt-get purge systemd &lt;br /&gt;
&lt;br /&gt;
== Connexion sur la Raspberry par &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
La connexion sur la Raspberry par série a ses limites : le terminal texte est assez mal géré et à terme la connexion série sera dédié à la communication avec le micro-contrôleur. Maintenant que la Raspberry est configurée sur le réseau, il est souhaitable de s'y connecter en utilisant la commande &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour activer le serveur &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; sur la Raspberry, utilisez les commandes suivantes :&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
&lt;br /&gt;
Vous pouvez alors vous connecter sur la Raspberry avec la commande :&lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
Si le message d'erreur à la connexion vous énerve, il vous suffit de rajouter un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; devant l'appel de fonction &amp;lt;code&amp;gt;check_hash&amp;lt;/code&amp;gt; à l'avant-dernière ligne du fichier &amp;lt;code&amp;gt;/etc/profile.d/sshpasswd.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Configuration en point d'accès ==&lt;br /&gt;
&lt;br /&gt;
Pour que votre Raspberry Pi 3 devienne un point d'accès, installez le paquetage &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  apt-get install hostapd&lt;br /&gt;
&lt;br /&gt;
Copiez le fichier de configuration de &amp;lt;code&amp;gt;hostapd&amp;lt;/code&amp;gt; qui se trouve dans le répertoire &amp;lt;code&amp;gt;/usr/share/doc/hostapd/examples/&amp;lt;/code&amp;gt; dans le répertoire &amp;lt;code&amp;gt;/etc/hostapd&amp;lt;/code&amp;gt; :&lt;br /&gt;
  cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd&lt;br /&gt;
  gunzip /etc/hostapd/hostapd.conf.gz&lt;br /&gt;
Examinez le fichier &amp;lt;code&amp;gt;/etc/hostapd/hostapd.conf&amp;lt;/code&amp;gt; à la recherche des mots-clefs suivants :&lt;br /&gt;
* &amp;lt;code&amp;gt;ssid&amp;lt;/code&amp;gt;, indiquez votre nom de réseau WiFi ;&lt;br /&gt;
* &amp;lt;code&amp;gt;country_code&amp;lt;/code&amp;gt;, mettez le code de la France &amp;lt;code&amp;gt;FR&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;channel&amp;lt;/code&amp;gt;, faites en sorte que les Raspberry n'écoutent pas toutes sur le même canal ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa&amp;lt;/code&amp;gt;, activez l'option (mettre à 1) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_passphrase&amp;lt;/code&amp;gt;, donnez le mot de passe de votre réseau (au moins 8 caractères) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;wpa_key_mgmt&amp;lt;/code&amp;gt;, à configurer à la valeur &amp;lt;code&amp;gt;WPA-PSK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Enfin dans le fichier &amp;lt;code&amp;gt;/etc/default/hostapd&amp;lt;/code&amp;gt;, définissez le chemin du fichier de configuration :&lt;br /&gt;
 DAEMON_CONF=/etc/hostapd/hostapd.conf&lt;br /&gt;
Relancez le service par la commande :&lt;br /&gt;
 service hostapd restart&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier avec votre téléphone que votre réseau WiFi est bien visible.&lt;br /&gt;
&lt;br /&gt;
== Configuration IP des clients WiFi ==&lt;br /&gt;
&lt;br /&gt;
Pour que les clients WiFi puissent obtenir une adresse IP et autres coordonnées réseau, installez le paquetage &amp;lt;code&amp;gt;isc-dhcp-server&amp;lt;/code&amp;gt; :&lt;br /&gt;
  apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
Tout d'abord choisir un réseau IPv4, par exemple &amp;lt;code&amp;gt;192.168.100.0/24&amp;lt;/code&amp;gt; et affecter à la Raspberry une adresse de ce réseau, par exemple &amp;lt;code&amp;gt;192.168.100.1&amp;lt;/code&amp;gt;. Pour cela ajoutez le bloc ci-dessous à la fin du fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface wlan0 inet static&lt;br /&gt;
   address 192.168.100.1&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Il est alors possible de configurer le serveur DHCP au travers de son fichier de configuration &amp;lt;code&amp;gt;/etc/dhcp/dhcpd.conf&amp;lt;/code&amp;gt;. Les directives à modifier sont les suivantes :&lt;br /&gt;
* &amp;lt;code&amp;gt;option domain-name&amp;lt;/code&amp;gt;, spécifiez un nom de domaine de votre choix (&amp;lt;code&amp;gt;monrobot.org&amp;lt;/code&amp;gt; par exemple) ;&lt;br /&gt;
* &amp;lt;code&amp;gt;option domain-name-servers&amp;lt;/code&amp;gt;, spécifiez l'adresse &amp;lt;code&amp;gt;192.168.100.1&amp;lt;/code&amp;gt; comme serveur DNS ;&lt;br /&gt;
* &amp;lt;code&amp;gt;authoritative&amp;lt;/code&amp;gt;, déclarez votre serveur DHCP comme légitime.&lt;br /&gt;
Il faut aussi ajouter un bloc réseau comme celui-ci :&lt;br /&gt;
 subnet 192.168.100.0 netmask 255.255.255.0 {&lt;br /&gt;
   range 192.168.100.100 192.168.100.200;&lt;br /&gt;
   option routers 192.168.100.1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Relancez le service par la commande :&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
Vous devez maintenant pouvoir connecter votre téléphone sur votre réseau WiFi. La bonne connexion au réseau WiFi doit se voir dans le fichier de contrôle &amp;lt;code&amp;gt;/var/log/daemon.log&amp;lt;/code&amp;gt; et l'obtention d'une adresse IP doit se lire dans le fichier &amp;lt;code&amp;gt;/var/log/syslog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Ajout d'un nom réseau pour la Raspberry Pi ==&lt;br /&gt;
&lt;br /&gt;
A ce point votre téléphone peut contacter la Raspberry par son adresse IP. Pour pouvoir faire de même avec un nom significatif installez le paquetage &amp;lt;code&amp;gt;bind9&amp;lt;/code&amp;gt; :&lt;br /&gt;
  apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
Ajoutez un bloc dans le fichier de configuration &amp;lt;code&amp;gt;/etc/bind/named.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
 zone &amp;quot;monrobot.org&amp;quot;  {&lt;br /&gt;
   type master;&lt;br /&gt;
   file &amp;quot;/etc/bind/db.monrobot&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/bind/db.monrobot&amp;lt;/code&amp;gt; avec un contenu de ce type :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     localhost. root.localhost. (&lt;br /&gt;
                              2         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 @       IN      NS      localhost.&lt;br /&gt;
 robot   IN      A       192.168.100.1&lt;br /&gt;
&lt;br /&gt;
Enfin ajoutez en tête du fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; la ligne&lt;br /&gt;
 domain monrobot.org&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier le bon fonctionnement du résolveur de nom en tapant &lt;br /&gt;
  host -t any robot 192.168.100.1&lt;br /&gt;
&lt;br /&gt;
== Installation d'un serveur Web ==&lt;br /&gt;
&lt;br /&gt;
La commande du robot doit se faire via une interface Web. Il faut donc installer un serveur Web sur la Raspberry Pi avec un système de page dynamiques pour exécuter du code sur la Raspberry. Il suffit pour cela d'installer les paquetages &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;php5&amp;lt;/code&amp;gt; :&lt;br /&gt;
 apt-get install apache2 php5&lt;br /&gt;
&lt;br /&gt;
Un premier test consiste à donner &amp;lt;code&amp;gt;robot&amp;lt;/code&amp;gt; dans la barre d'adresses du navigateur Web de votre téléphone. La page de test du serveur Web &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; doit s'afficher.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi écrire une petite page permettant d'effectuer une action comme l'arrêt de la Raspberry Pi. Cette page est à mettre dans le répertoire &amp;lt;code&amp;gt;/var/www/html&amp;lt;/code&amp;gt;. Voila un exemple de page PHP, nommez la &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; et supprimez le fichier &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; :&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 if(array_key_exists('stop',$_POST)){ &lt;br /&gt;
   system('super halt');&lt;br /&gt;
   die('halting ...');&lt;br /&gt;
   }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;Contrôle Web&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;&amp;lt;?php echo $_SERVER['PHP_SELF']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;stop&amp;quot; value=&amp;quot;Arrêter&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez l'appel de fonction &amp;lt;code&amp;gt;system('super halt')&amp;lt;/code&amp;gt;. Pour que cet appel ait l'effet désiré, c'est à dire l'arrêt propre de la Raspberry Pi, il faut que le serveur Web puisse déclencher cet arrêt. De base, ce n'est pas possible pour une raison de droits : l'utilisateur &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; sous lequel tourne le serveur &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt; n'a pas le privilège de lancer la commande &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt;. Nous allons donc utiliser l'utilitaire &amp;lt;code&amp;gt;super&amp;lt;/code&amp;gt; pour autoriser le serveur Web à lancer la commande :&lt;br /&gt;
  apt-get install super&lt;br /&gt;
Ajoutez ensuite la ligne ci-dessous à la fin fichier de configuration de &amp;lt;code&amp;gt;super&amp;lt;/code&amp;gt; qui se nomme &amp;lt;code&amp;gt;/etc/super.tab&amp;lt;/code&amp;gt; :&lt;br /&gt;
 halt    /sbin/halt      uid=root        www-data&lt;br /&gt;
&lt;br /&gt;
Voila, vous devriez pouvoir arrêter votre Raspberry Pi en cliquant sur le bouton &amp;quot;Arrêter&amp;quot; de votre page Web.&lt;br /&gt;
&lt;br /&gt;
== Communication série ==&lt;br /&gt;
&lt;br /&gt;
Votre Raspberry Pi va probablement devoir communiquer avec un micro-contrôleur. Le plus simple est d'établir une communication série. Par contre les pages Web dynamiques peuvent difficilement utiliser le port série étant donné leur durée de vie, c'est à dire d'exécution, limitée. La solution propre pour permettre à des pages Web d'utiliser un port série est de passer par un serveur websocket. Ce type de processus est lancé au démarrage de la machine et accapare le port série. L'intérêt est que le serveur websocket est facilement contactable par un programma javascript tournant sur le navigateur.&lt;br /&gt;
&lt;br /&gt;
Sur votre Raspberry, vous devez installer le paquetage &amp;lt;code&amp;gt;libwebsockets-dev&amp;lt;/code&amp;gt; :&lt;br /&gt;
 apt-get install libwebsockets-dev&lt;br /&gt;
Récupérez ensuite le programme C stocké sur ce Wiki [[Fichier:Webserial.zip‎]]. Décompressez-le et compilez-le avec la commande :&lt;br /&gt;
  gcc -Wall webserial.c -o webserial -lwebsockets&lt;br /&gt;
Vous pouvez faire en sorte que ce programme soit lancé dès le démarrage de la Raspberry Pi en modifiant le fichier &amp;lt;code&amp;gt;/etc/rc.local&amp;lt;/code&amp;gt;. Pensez à préciser le chemin complet du programme et à suffixer par un &amp;amp; pour que le programme soit lancé en tâche de fond.&lt;br /&gt;
&lt;br /&gt;
Avec notre serveur websocket nous pouvons implanter des protocoles simples. L'exemple qui suit permet d'allumer et d'éteindre des LEDs connectées à un Arduino et à savoir quels boutons sont pressés. Pour les LEDs, le numéro de la LED à gérer est donné par les 7 bits de poids faible et le bit de poids fort permet de savoir s'il faut l'allumer ou l'éteindre. Pour les boutons, un octet est envoyé par l'Arduino dont chaque bit indique si le bouton est appuyé ou non.&lt;br /&gt;
&lt;br /&gt;
Le programme de l'Arduino est très court :&lt;br /&gt;
 #define LED1       8&lt;br /&gt;
 #define Bouton1    2&lt;br /&gt;
 #define Bouton2    3&lt;br /&gt;
 &lt;br /&gt;
 void setup(void){&lt;br /&gt;
 Serial.begin(9600);&lt;br /&gt;
 for(int i=0;i&amp;lt;6;i++) pinMode(LED1+i,OUTPUT);&lt;br /&gt;
 pinMode(Bouton1,INPUT);&lt;br /&gt;
 pinMode(Bouton2,INPUT);&lt;br /&gt;
 digitalWrite(Bouton1,HIGH);&lt;br /&gt;
 digitalWrite(Bouton2,HIGH);&lt;br /&gt;
 for(int i=0;i&amp;lt;6;i++){&lt;br /&gt;
     digitalWrite(LED1+i,HIGH);&lt;br /&gt;
     delay(200);&lt;br /&gt;
     digitalWrite(LED1+i,LOW);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void loop(void){&lt;br /&gt;
 if(Serial.available()&amp;gt;0){&lt;br /&gt;
   unsigned char actions=Serial.read();&lt;br /&gt;
   int led=LED1+actions&amp;amp;0x7f;&lt;br /&gt;
   if((actions&amp;amp;0x80)==0) digitalWrite(led,HIGH); else digitalWrite(led,LOW);&lt;br /&gt;
 }&lt;br /&gt;
 unsigned char capteurs=0;&lt;br /&gt;
 if(digitalRead(Bouton1)==LOW) capteurs |= 0x01;&lt;br /&gt;
 if(digitalRead(Bouton2)==LOW) capteurs |= 0x02;&lt;br /&gt;
 Serial.write(capteurs);&lt;br /&gt;
 delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
La page Web qui dialogue avec le serveur websocket encore plus courte est disponible sur ce Wiki [[Fichier:Jsserial.zip]].&lt;br /&gt;
&lt;br /&gt;
= Répartition des tâches =&lt;br /&gt;
&lt;br /&gt;
Nous n'imposons pas de répartition rigide des tâches. Pour qu'une démonstration puisse se faire en fin de bureau d'étude il faut au moins un robot proie et un robot prédateur.&lt;br /&gt;
&lt;br /&gt;
== Robot proie ==&lt;br /&gt;
&lt;br /&gt;
Un robot proie est constitué comme suit :&lt;br /&gt;
* un châssis roulant, un contrôleur pour chaque paire de moteurs, un Arduino Uno ou un circuit électronique maison à base de micro-contrôleur ATMega328p ;&lt;br /&gt;
* des détecteurs ultrason pour éviter les collisions ;&lt;br /&gt;
* un récepteur infra-rouge TSOP pour décoder les signaux infra-rouges modulés ;&lt;br /&gt;
* un émetteur infra-rouge pour émettre un signal signalant le robot comme une proie ;&lt;br /&gt;
* un dispositif récepteur à courte distance pour simuler la capture par un prédateur, vous pouvez partir sur l'idée d'un capteur à effet Hall.&lt;br /&gt;
&lt;br /&gt;
Dans son mode autonome, le robot se promène dans la pièce en évitant les obstacles de façon tranquille et prévisible. Quand il repère un prédateur à son signal infra-rouge, la proie se déplace plus vivement avec de brusques changements de direction. Quand le détecteur à courte distance indique que le robot proie est à portée du prédateur, il s'arrête. Faire clignoter des LED rouges serait assez à propos. &lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter un mode télécommande au robot. La modification la plus simple consiste à recevoir des ordres d'une télécommande infra-rouge. Le robot pourrait ainsi recevoir des ordres pour accélèrer ou décélérer, pour tourner tranquillement ou brusquement.&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin vous pouvez équiper votre robot d'une Raspberry PI 3 communiquant avec la carte de contrôle en série. Le robot peut alors être téléguidé par un téléphone.&lt;br /&gt;
&lt;br /&gt;
== Robot prédateur ==&lt;br /&gt;
&lt;br /&gt;
Un robot prédateur est constitué comme suit :&lt;br /&gt;
* un châssis roulant, un contrôleur pour chaque paire de moteurs, un Arduino Uno ou un circuit électronique maison à base de micro-contrôleur ATMega328p ;&lt;br /&gt;
* un détecteur ultrason pour ne pas rentrer dans les obstacles ;&lt;br /&gt;
* des récepteurs infra-rouges TSOP pour décoder les signaux infra-rouges modulés ;&lt;br /&gt;
* un émetteur infra-rouge pour émettre un signal signalant le robot comme un prédateur ;&lt;br /&gt;
* un dispositif émetteur à courte distance pour simuler la capture d'une proie, par exemple un électro-aimant.&lt;br /&gt;
&lt;br /&gt;
Dans son mode autonome, le robot tourne en rond à la recherche d'une proie. Dès qu'il en repère une, il se précipite vers elle en se calant sur son signal infra-rouge. Quand le prédateur pense être à porté de la proie, il active la communication à faible portée. Cette activation est temporaire pour donner une chance à la proie de s'échapper.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter un mode télécommande au robot. La modification la plus simple consiste à recevoir des ordres d'une télécommande infra-rouge. Le robot pourrait ainsi recevoir des ordres de direction, de vitesse et d'activation de la communication &amp;quot;capture&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin vous pouvez équiper votre robot d'une Raspberry PI 3 communiquant avec la carte de contrôle en série. Le robot peut alors être téléguidé par un téléphone.&lt;br /&gt;
&lt;br /&gt;
== Réalisations des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Numéro !! Elèves !! Type de robot !! Page&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 1&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-1|Binôme 1 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 2&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-2|Binôme 2 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 3&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-3|Binôme 3 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 4&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-4|Binôme 4 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 5&lt;br /&gt;
| Clémence Béchet / Pierre Gautreau&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-5|Binôme 5 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 6&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-6|Binôme 6 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 7&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-7|Binôme 7 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 8&lt;br /&gt;
| Prénom Nom / Prénom Nom&lt;br /&gt;
| &lt;br /&gt;
| [[Binome2017-8|Binôme 8 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
| Binôme 9&lt;br /&gt;
| Raphaël Bonvalet / Damien Tillaux&lt;br /&gt;
| Proie&lt;br /&gt;
| [[Binome2017-9|Binôme 9 2017/2018]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pgautrea</name></author>	</entry>

	</feed>