<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adescamd</id>
		<title>Wiki d'activités IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adescamd"/>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php/Sp%C3%A9cial:Contributions/Adescamd"/>
		<updated>2026-05-12T20:08:43Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:AlgoADPM.png&amp;diff=30742</id>
		<title>Fichier:AlgoADPM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:AlgoADPM.png&amp;diff=30742"/>
				<updated>2016-05-20T07:57:12Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30712</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30712"/>
				<updated>2016-05-18T13:09:19Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Établissement de la liste précise du matériel.&lt;br /&gt;
&lt;br /&gt;
*Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Choix du capteur : plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
Un simple pont en H peut nous permettre de contrôler les moteurs comme nous le souhaitons.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs (contrainte en courant). Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé WiFi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:RoutageADPM.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Travaux rendus=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30711</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30711"/>
				<updated>2016-05-18T13:03:33Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 8-9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Établissement de la liste précise du matériel.&lt;br /&gt;
&lt;br /&gt;
*Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Choix du capteur : plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
Un simple pont en H peut nous permettre de contrôler les moteurs comme nous le souhaitons.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs (contrainte en courant). Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé WiFi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:RoutageADPM.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:RoutageADPM.png&amp;diff=30710</id>
		<title>Fichier:RoutageADPM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:RoutageADPM.png&amp;diff=30710"/>
				<updated>2016-05-18T13:02:17Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30709</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30709"/>
				<updated>2016-05-18T12:41:08Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 2-3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Établissement de la liste précise du matériel.&lt;br /&gt;
&lt;br /&gt;
*Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Choix du capteur : plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
Un simple pont en H peut nous permettre de contrôler les moteurs comme nous le souhaitons.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs (contrainte en courant). Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé WiFi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30708</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30708"/>
				<updated>2016-05-18T12:40:33Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 2-3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Établissement de la liste précise du matériel.&lt;br /&gt;
&lt;br /&gt;
*Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Choix du capteur : plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
Un simple pont en H peut nous permettre de contrôler les moteurs comme nous le souhaitons.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs (contrainte en courant). Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30707</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30707"/>
				<updated>2016-05-18T12:39:05Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 2-3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Établissement de la liste précise du matériel.&lt;br /&gt;
&lt;br /&gt;
*Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Choix du capteur : plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
Un simple pont en H peut nous permettre de contrôler les moteurs comme nous le souhaitons.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30706</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30706"/>
				<updated>2016-05-18T12:37:35Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 1-2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Établissement de la liste précise du matériel.&lt;br /&gt;
&lt;br /&gt;
*Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Choix du capteur : plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30705</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30705"/>
				<updated>2016-05-18T12:37:14Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 1-2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Établissement de la liste précise du matériel.&lt;br /&gt;
&lt;br /&gt;
*Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Choix du capteur.&lt;br /&gt;
Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30704</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30704"/>
				<updated>2016-05-18T12:36:39Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 1-2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Établissement de la liste précise du matériel.&lt;br /&gt;
&lt;br /&gt;
*Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Choix du capteur.&lt;br /&gt;
Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30703</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30703"/>
				<updated>2016-05-18T12:36:11Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 1-2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
Établissement de la liste précise du matériel.&lt;br /&gt;
&lt;br /&gt;
*Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* hoix du capteur.&lt;br /&gt;
Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30702</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30702"/>
				<updated>2016-05-18T12:35:17Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 1-2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
*Établissement de la liste précise de matériels.&lt;br /&gt;
&lt;br /&gt;
**Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
**Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** hoix du capteur.&lt;br /&gt;
Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30701</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30701"/>
				<updated>2016-05-18T12:34:45Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Matériels utilisés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés WiFi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
*Établissement de la liste précise de matériels.&lt;br /&gt;
&lt;br /&gt;
** Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Choix du capteur.&lt;br /&gt;
Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30700</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30700"/>
				<updated>2016-05-18T12:33:46Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 1-2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. &lt;br /&gt;
Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille &amp;quot;conséquente&amp;quot; permettant au robot d'avoir une stabilité sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
*Établissement de la liste précise de matériels.&lt;br /&gt;
&lt;br /&gt;
** Utilisation de 3 clés WiFi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 niveaux de mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Calibrage régulier de la position du robot grâce à la caméra de la Raspberry. Le principe reposera sur la détection d'une image ou d'une forme par la caméra et le repositionnement du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Choix du capteur.&lt;br /&gt;
Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons. Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. On pilotera le servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30699</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30699"/>
				<updated>2016-05-18T12:27:55Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Objectifs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique (niveaux de qualité du signal WiFi) d'un bâtiment. Notre robot effectuera des mesures RSSI à différentes positions afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30698</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30698"/>
				<updated>2016-05-18T12:26:03Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Contexte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe (le GPS est utilisable mais peu adapté) et c'est pourquoi ce robot peut tenter de répondre à cette problématique via une cartographie électromagnétique. Il peut aussi répondre à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition d'un patient à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30697</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30697"/>
				<updated>2016-05-18T12:22:20Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 10-11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
* Repositionnement du robot par lecture de tags : &lt;br /&gt;
Utilisation d'OpenCV afin de segmenter une image pour isoler une couleur pré-choisie. &lt;br /&gt;
&lt;br /&gt;
* Soudure de la PCB - Début des tests pour mettre en marche le robot.&lt;br /&gt;
&lt;br /&gt;
* Préparation de la soutenance.&lt;br /&gt;
&lt;br /&gt;
* Réalisation de la vidéo.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30696</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30696"/>
				<updated>2016-05-18T12:19:13Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 10-11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30695</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30695"/>
				<updated>2016-05-18T12:15:30Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 8-9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Travaux de programmation sur les codes sources de Wireless Tools afin d'élaborer un code C pour le relevé et le traitement des mesures du niveau de qualité WiFi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30694</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30694"/>
				<updated>2016-05-18T12:12:22Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Planning prévisionnel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Recherche d'élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30693</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30693"/>
				<updated>2016-05-18T12:12:12Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Planning prévisionnel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9: Realisation d'un scenario - Gestion des obstacles temporaires.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10: Finalisation des programmes - Soudure des PCB - Tests/&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo - Préparation de la soutenance - Finalisation du projet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Étude des pilotes de moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Pont_h_in_action.gif|center|200px]] &lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
* Élaboration et commande des matériel recquis &lt;br /&gt;
'''Liste définitive de matériels'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons de nous tourner vers un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino avec l'utilisation d'un délai lors d'une détection d'obstacle .&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Recherche d'élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
* Aux vues des difficultés pour le traitement des données rssi relevées par le script shell établit, et après un bref échange avec Monsieur Redon, nous décidons de nous tourner vers les codes sources de wireless tools. La fonction iwlist permet de relever les données de tous les signaux wifi, et ce via les trois clés wifi branchées à la raspberry. Aucune connexion internet n'est requise.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Réalisation théorique d'un asservissement en vitesse des 2 moteurs. Utilisation d'un correcteur PID et programmation sur la carte Arduino.&lt;br /&gt;
**Utilisation d'un échantillonnage pour lancer l'asservissement et éviter une surchage d'utilisation du microprocesseur de l'Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Problème rencontré : Après les difficultés rencontrées à l'utilisation d'OpenCv sur la rapsberry, nous nous tournons vers Artoolkit comme plusieurs binômes. Après étude, déchiffrage et manipulation de code fournis par les librairies de ce software, nous nous rendons compte que la compatibilité avec une raspberry n'est pas validée. Retour donc à la case départ vers OpenCv.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mise en liaison de l'Arduino avec la Raspberry via le protocole I2C&lt;br /&gt;
&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30132</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30132"/>
				<updated>2016-04-25T13:04:33Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 7-8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts trouvés sur Internet.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la Raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wWiFi auquel est connectée la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30131</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30131"/>
				<updated>2016-04-25T13:03:22Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 6-7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts trouvés sur Internet.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au Fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB : les schématics sont terminées, nous avons commencé le routage. &lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte Arduino : utilisation d'un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30130</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30130"/>
				<updated>2016-04-25T13:01:14Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 5-6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts trouvés sur Internet.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Nous avons reçu notre matériel. Nous avons débuté les essais sur breadbord avec ceux-ci, via l'Arduino notamment.&lt;br /&gt;
* Nous avons ensuite continué de travailler avec la bibliothèque OpenCV pour le traitement d'image sur la Raspeberry et la Pi Caméra. Nous avons rencontré pas mal de difficultés, cette bibliothèque semble plus compliquée que prévu à maîtriser.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30129</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30129"/>
				<updated>2016-04-25T12:57:46Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 4-5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts trouvés sur Internet.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Travail sur la Raspberry.&lt;br /&gt;
** Mise en réseau de la Raspberry (via USB). &lt;br /&gt;
** Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON). &lt;br /&gt;
** La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
** Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30128</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30128"/>
				<updated>2016-04-25T12:56:49Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 4-5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts trouvés sur Internet.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry (via USB). Téléchargement de la bibliothèque OpenCV pour le traitement d'image (avec l'aide de Mr REDON).&lt;br /&gt;
La bibliothèque fonctionne principalement sur du code en Python - nous avons donc effectué une petite remise à niveau sur ce langage de programmation.&lt;br /&gt;
Nous avons essayé d'accéder au flux vidéo de la Pi caméra avec un résultat peu satisfaisant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30127</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30127"/>
				<updated>2016-04-25T12:54:26Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 4-5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts trouvés sur Internet.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Etablissement des bibliothéques Altium pour nos différents composants.&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry (via USB).&lt;br /&gt;
&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30126</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30126"/>
				<updated>2016-04-25T12:46:42Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 3-4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts trouvés sur Internet.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30125</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30125"/>
				<updated>2016-04-25T12:46:03Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 3-4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques.&lt;br /&gt;
&lt;br /&gt;
* Prise en main d'Altium.&lt;br /&gt;
** Réalisation d'un petit tutoriel de Mr Boé.&lt;br /&gt;
** Création des premières schématics pour les libraires.&lt;br /&gt;
** Réflexion sur les empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
* Prise en main de la Raspberry.&lt;br /&gt;
** Réalisation du montage de transmission vers l'ordinateur. &lt;br /&gt;
** Recherches sur le fonctionnement de la bibliothèque OpenCV.&lt;br /&gt;
** Essais de quelques scripts trouvés sur Internet.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30124</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30124"/>
				<updated>2016-04-25T12:38:32Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Planning prévisionnel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Choix réfléchi des composants - Etablissement d'une liste de matériel finale.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Programmation Arduino - Prise en main Altium - Prise en main de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Programmation Arduino - Création des bibliothèques sous Altium - Mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Programmation sous Raspberry (bibliothèque OpenCV) du module Caméra - Création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles - Elaboration des PCB (Routage) - Recherches et programmation sur la lecture de tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI - Impression des PCB - Constitution du rapport.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30123</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30123"/>
				<updated>2016-04-25T12:33:52Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Matériels utilisés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces de contrôle des moteurs (montées sur des PCB) pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Création des bibliothèques sous Altium et mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Début de la programmation sous Raspberry (bibliothèque OpenCV) du module Caméra et création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles, élaboration des PCB, travail sur la lecture de tags via OpenCV.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30122</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30122"/>
				<updated>2016-04-25T12:32:33Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Description du projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
Le niveau du signal WiFi dans un bâtiment n'est pas fixe puisqu'il dépend de modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes WiFi mais également du mobilier présent ou de tous les systèmes pouvant interférer avec le signal. Il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Le robot devra alors être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. A chacune de ses positions, le robot effectuera un relevé d'intensité du signal WiFi reçu (RSSI) qu'il stockera dans sa carte mémoire. Ces données permettront ensuite d'établir une carte du bâtiment.  &lt;br /&gt;
&lt;br /&gt;
La position du robot doit être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. Nous utiliserons une caméra et des motifs de couleurs pour repositionner le robot. Nous effectuerons aussi un asservissement des moteurs afin que le robot ne dérive pas trop pendant ses déplacements.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Création des bibliothèques sous Altium et mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Début de la programmation sous Raspberry (bibliothèque OpenCV) du module Caméra et création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles, élaboration des PCB, travail sur la lecture de tags via OpenCV.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30121</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30121"/>
				<updated>2016-04-25T12:24:01Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Objectifs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot autonome (en termes d'énergie et de déplacements) pouvant établir une cartographie électromagnétique d'un signal WiFi à l'intérieur d'un bâtiment. Notre robot effectuera des mesures RSSI à plusieurs coordonnées de l'espace afin d'établir cette carte. Cela permettra alors à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui existant dans la base de données.&lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer avec le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI), ce qui permettra ensuite d'établir une carte 3D. &lt;br /&gt;
&lt;br /&gt;
La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. &lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Création des bibliothèques sous Altium et mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Début de la programmation sous Raspberry (bibliothèque OpenCV) du module Caméra et création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles, élaboration des PCB, travail sur la lecture de tags via OpenCV.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30120</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30120"/>
				<updated>2016-04-25T12:21:25Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Contexte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. En effet, se localiser précisément à l'intérieur d'un bâtiment constitue une tâche très complexe et cela répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire. Ce protocole de localisation possède aussi d'autres applications mineures.&lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer avec le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI), ce qui permettra ensuite d'établir une carte 3D. &lt;br /&gt;
&lt;br /&gt;
La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. &lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Création des bibliothèques sous Altium et mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Début de la programmation sous Raspberry (bibliothèque OpenCV) du module Caméra et création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles, élaboration des PCB, travail sur la lecture de tags via OpenCV.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30028</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30028"/>
				<updated>2016-04-23T09:54:50Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 8-9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. Se localiser précisément à l'intérieur d'un bâtiment n'est pas une tâche facile et répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire.      &lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer avec le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI), ce qui permettra ensuite d'établir une carte 3D. &lt;br /&gt;
&lt;br /&gt;
La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. &lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Création des bibliothèques sous Altium et mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Début de la programmation sous Raspberry (bibliothèque OpenCV) du module Caméra et création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles, élaboration des PCB, travail sur la lecture de tags via OpenCV.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30027</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30027"/>
				<updated>2016-04-23T09:54:03Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Semaine 8-9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. Se localiser précisément à l'intérieur d'un bâtiment n'est pas une tâche facile et répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire.      &lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer avec le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI), ce qui permettra ensuite d'établir une carte 3D. &lt;br /&gt;
&lt;br /&gt;
La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. &lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Création des bibliothèques sous Altium et mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Début de la programmation sous Raspberry (bibliothèque OpenCV) du module Caméra et création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles, élaboration des PCB, travail sur la lecture de tags via OpenCV.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
Schematic utilisé à la création des PCB.&lt;br /&gt;
[[Fichier:Schematic_PCB.jpg]]&lt;br /&gt;
&lt;br /&gt;
Routage de la PCB (envoyé à Mr.Flamen pour l'impression).&lt;br /&gt;
[[Fichier:Routage_PCB.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Routage_PCB.png&amp;diff=30026</id>
		<title>Fichier:Routage PCB.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Routage_PCB.png&amp;diff=30026"/>
				<updated>2016-04-23T09:52:23Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Schematic_PCB.png&amp;diff=30025</id>
		<title>Fichier:Schematic PCB.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Schematic_PCB.png&amp;diff=30025"/>
				<updated>2016-04-23T09:51:55Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30024</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30024"/>
				<updated>2016-04-23T09:50:07Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Planning prévisionnel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. Se localiser précisément à l'intérieur d'un bâtiment n'est pas une tâche facile et répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire.      &lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer avec le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI), ce qui permettra ensuite d'établir une carte 3D. &lt;br /&gt;
&lt;br /&gt;
La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. &lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Création des bibliothèques sous Altium et mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Début de la programmation sous Raspberry (bibliothèque OpenCV) du module Caméra et création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles, élaboration des PCB, travail sur la lecture de tags via OpenCV.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8: Programmation pour les mesures RSSI.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30023</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30023"/>
				<updated>2016-04-23T09:49:31Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Planning prévisionnel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. Se localiser précisément à l'intérieur d'un bâtiment n'est pas une tâche facile et répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire.      &lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer avec le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI), ce qui permettra ensuite d'établir une carte 3D. &lt;br /&gt;
&lt;br /&gt;
La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. &lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Création des bibliothèques sous Altium et mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Début de la programmation sous Raspberry (bibliothèque OpenCV) du module Caméra et création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7: Programmation pour la détection d'obstacles, élaboration des PCB, travail sur la lecture de tags via OpenCV.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30022</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30022"/>
				<updated>2016-04-23T09:47:59Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Planning prévisionnel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. Se localiser précisément à l'intérieur d'un bâtiment n'est pas une tâche facile et répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire.      &lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer avec le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI), ce qui permettra ensuite d'établir une carte 3D. &lt;br /&gt;
&lt;br /&gt;
La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. &lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Création des bibliothèques sous Altium et mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6: Début de la programmation sous Raspberry (bibliothèque OpenCV) du module Caméra et création des PCB.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30021</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30021"/>
				<updated>2016-04-23T09:46:34Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Planning prévisionnel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. Se localiser précisément à l'intérieur d'un bâtiment n'est pas une tâche facile et répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire.      &lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer avec le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI), ce qui permettra ensuite d'établir une carte 3D. &lt;br /&gt;
&lt;br /&gt;
La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. &lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5: Création des bibliothèques sous Altium et mise en réseau de la Raspberry.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30020</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30020"/>
				<updated>2016-04-23T09:45:57Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Planning prévisionnel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. Se localiser précisément à l'intérieur d'un bâtiment n'est pas une tâche facile et répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire.      &lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer avec le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI), ce qui permettra ensuite d'établir une carte 3D. &lt;br /&gt;
&lt;br /&gt;
La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. &lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Début de la programmation de l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30019</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=30019"/>
				<updated>2016-04-23T09:44:32Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Planning prévisionnel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. Se localiser précisément à l'intérieur d'un bâtiment n'est pas une tâche facile et répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire.      &lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer avec le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présenteront à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI), ce qui permettra ensuite d'établir une carte 3D. &lt;br /&gt;
&lt;br /&gt;
La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture de tags se devra donc d'être implantée. &lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.&lt;br /&gt;
&lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
* Une platine mécanique dotée de capteurs. &amp;lt;br&amp;gt;&lt;br /&gt;
* Un capteur pour la détection des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
* Un servomoteur pour faire pivoter le sonar.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une Raspberry et des clés wifi pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
* Une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
* Une batterie pour gérer l'alimentation des différents composants et aussi des moteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
* Des puces drivers de moteurs pour les piloter.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Arduino_raspberry.png‎|center]]&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3: Établissement d'une liste de matériel précise.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4: Choix des derniers composants et établissement d'une liste définitive.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Avancement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 1-2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rencontre avec les élèves de CM5 travaillant sur la partie mécanique du robot et Alexandre Boé. Nous avons pris connaissance de l'architecture mécanique du robot, ainsi que des différents moteurs permettant sa mise en mouvement. Le projet des élèves de CM5 repose sur un robot pouvant monter des escaliers. Ainsi, le robot est pourvu de chenilles d'une taille permettant au robot d'être stable sur 3 marches d'escalier et également d'un bras mobile lui permettant de se hisser sur la première marche.&lt;br /&gt;
&lt;br /&gt;
'''Établissement de la liste précise de matériels'''&lt;br /&gt;
&lt;br /&gt;
* Utilisation de 3 clés wifi que l'on disposera le long d'un bras vertical, ce qui permettra de relever 3 mesures de signal RSSI à chaque position du robot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Calibrage régulière de la position du robot grâce à la caméra de la raspberry. Le principe reposera sur la détection d'une image ou forme par la caméra et l'asservissement ensuite du robot concernant sa position et la direction à prendre.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Choix du capteur :''' Plusieurs solutions sont envisageables, les capteurs infrarouges, lasers ou ultrasons.Les capteurs infrarouges sont difficiles à mettre en œuvre et sont sensibles à la lumière. Les capteurs lasers sont très précis mais relativement cher. Nous choisissons donc d'utiliser un capteur ultrasons puisque ceux-ci sont d'un prix très abordables, facile à utiliser et la lumière ambiante et l'opacité de la surface n'influent pas sur les résultats. Le capteur ultrason sera disposé sur un servomoteur pour la détection d'obstacle. Ainsi, la détection pourra se faire suivant toutes les directions par rapport au robot. Pilotage du servomoteur grâce à l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2-3==&lt;br /&gt;
&lt;br /&gt;
* Choix d'une fourche optique pour l'asservissement du robot. On disposera une roue libre associée à une roue crantée sur le robot. Les impulsions fournies par la fourche optique permettront de connaître et d'asservir les différents moteurs via l'Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choix des pilotes de moteurs en fonction du dimensionnement des différents moteurs. Il nous faudra par la suite réaliser des PCB en suivant la schématique de la figure suivante. Commande des différentes résistances et condensateurs.&lt;br /&gt;
[[Fichier:Schematic_gate_driver.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
'''Liste définitive de matérielle'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! Matériel !! Quantité requise !! Quantité disponible !! A commander !! Commentaires &lt;br /&gt;
 |-&lt;br /&gt;
 | Arduino UNO&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1 &lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Raspberry Pi 2&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | Carte SD&lt;br /&gt;
 | 1&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 | Clé Wifi&lt;br /&gt;
 | 3&lt;br /&gt;
 | 3&lt;br /&gt;
 | 0&lt;br /&gt;
 |  &lt;br /&gt;
 |-&lt;br /&gt;
 | Capteur Ultrason&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Servomoteur&lt;br /&gt;
 | 1&lt;br /&gt;
 | 0&lt;br /&gt;
 | 1&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Pilote de moteur&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Résistance 270 Ohm&lt;br /&gt;
 | 10&lt;br /&gt;
 | 0&lt;br /&gt;
 | 10&lt;br /&gt;
 | Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d]&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 100 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 33 nF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Condensateur 1 uF&lt;br /&gt;
 | 5&lt;br /&gt;
 | 0&lt;br /&gt;
 | 5&lt;br /&gt;
 | Magasin Polytech&lt;br /&gt;
 |-&lt;br /&gt;
 | Câble USB 2m&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm]&lt;br /&gt;
 |-&lt;br /&gt;
 | Fourche optique&lt;br /&gt;
 | 2&lt;br /&gt;
 | 0&lt;br /&gt;
 | 2&lt;br /&gt;
 | GoTronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Semaine 3-4==&lt;br /&gt;
&lt;br /&gt;
'''Architecture matérielle finale'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Architecture_materielle.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Programmation de la carte Arduino sur l'IDE Arduino dans un premier temps sans tenir compte d'une détection de tag visuels par la Raspberry.&lt;br /&gt;
** Pilotage du servomoteur. &lt;br /&gt;
** Détection présence grâce au sonar.&lt;br /&gt;
** Mise en marche des moteurs en fonction des pilotes de moteurs.&lt;br /&gt;
** Asservissement des moteurs en fonction des fourches optiques. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4-5==&lt;br /&gt;
&lt;br /&gt;
* Création de la bibliothéque Altium pour nos différents composants&lt;br /&gt;
&lt;br /&gt;
* Modèle de câblage de la carte arduino :&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fichier:Schema_arduino.png‎|center|400px]] &lt;br /&gt;
&lt;br /&gt;
* Mise en réseau de la Raspberry&lt;br /&gt;
==Semaine 5-6==&lt;br /&gt;
* Début de création des PCB sous Altium Designer pour les pilotes de moteurs.&lt;br /&gt;
* Reçu du matériel et prises en main de ceux-ci via l'Arduino sur breadboard.&lt;br /&gt;
* Utilisation de la bibliothèque OpenCV pour le traitement d'image sur la raspeberry et du module de la caméra Picamera.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6-7==&lt;br /&gt;
* Contact avec les élèves de CM5. Leur robot est désormais disponible au fablab, les élèves ayant terminés leur PFE et n'étant plus à Polytech. &lt;br /&gt;
** Le robot ne possède pas de bras au final.&lt;br /&gt;
** Il est alimenté par un générateur de tension pour le moment.&lt;br /&gt;
** 2 MCC entraînent des chenilles, permettant son déplacement.&lt;br /&gt;
[[Fichier:Robot_P21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Suite de création des PCB.&lt;br /&gt;
* Programmation de la carte Arduino en suivi un algorithme précis concernant la détection d'obstacle.&lt;br /&gt;
** Remarque 1: Lors du relevé de distance du capteur ultrason, quelques mesures parasites peuvent intervenir. Pour éviter de faire arrêter le robot par erreur de mesure, nous choisissons d'opérer sur des valeurs moyennes de mesures faites toutes les 10 ms.&lt;br /&gt;
&amp;lt;pre&amp;gt;int distance_moyenne()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  int val_i;&lt;br /&gt;
  int somme = 0;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i += 1) {&lt;br /&gt;
    val_i = getDistance();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    somme = somme + val_i;&lt;br /&gt;
  }&lt;br /&gt;
  val_moy = somme / 10;&lt;br /&gt;
  Serial.print(&amp;quot;valeur moyenne: val_moy&amp;quot;);&lt;br /&gt;
  return val_moy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int getDistance()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(trig, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(trig, LOW);&lt;br /&gt;
  lecture_echo = pulseIn(echo, HIGH);&lt;br /&gt;
  val = lecture_echo / 58;&lt;br /&gt;
  Serial.print(&amp;quot;Distance : &amp;quot;);&lt;br /&gt;
  Serial.println(val);&lt;br /&gt;
  return val;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Remarque 2 : Difficulté du servomoteur à se positionner très précisément suivant un ordre donné. Ainsi celui-ci tangue autour de la position souhaitée à cause d'un mauvais asservissement vraisemblablement. De ce fait, le programme se bloque à une certaine ligne du code. Recherches et tentatives de contournement du problème.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7-8==&lt;br /&gt;
&lt;br /&gt;
* Téléchargement de Wireless Tools sur la raspberry. La commande iwconfig permet d'obtenir les informations sur le réseau wifi auquel est connecté la raspberry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@raspberrypi:/home/pi/rssi# iwconfig                                &lt;br /&gt;
wlan0     IEEE 802.11bgn  ESSID:&amp;quot;PolytechLille&amp;quot;                         &lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:19:07:C5: &lt;br /&gt;
          Bit Rate=12 Mb/s   Tx-Power=20 dBm                            &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off          &lt;br /&gt;
          Encryption key:off                                            &lt;br /&gt;
          Power Management:off                                          &lt;br /&gt;
          Link Quality=55/70  Signal level=-55 dBm                      &lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0      &lt;br /&gt;
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0      &lt;br /&gt;
                                                                        &lt;br /&gt;
lo        no wireless extensions.                                       &lt;br /&gt;
                                                                        &lt;br /&gt;
eth0      no wireless extensions.                                       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Écriture d'un premier script permettant d’enregistrer le niveau du signal&lt;br /&gt;
** Remarque : Le niveau du signal n'étant pas constant, nous choisissons d'élaborer un programme permettant de faire une moyenne de 10 valeurs de rssi en décibel.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8-9==&lt;br /&gt;
&lt;br /&gt;
* Suite à un bilan avec Monsieur Boé, nous décidons de nous orienter dans un premier temps vers la réalisation d'un scénario pour le robot. &lt;br /&gt;
&lt;br /&gt;
* Gestion des obstacles temporaires dans le code Arduino.&lt;br /&gt;
&lt;br /&gt;
* Résolution des problèmes concernant l'élaboration des PCB, ceux-ci étant liés à de mauvaises empruntes des composants.&lt;br /&gt;
&lt;br /&gt;
* Élaboration d'un code C pour le relevé et le traitement des niveaux rssi.&lt;br /&gt;
&lt;br /&gt;
==Semaine 9-10==&lt;br /&gt;
==Semaine 10-11==&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA4_SC_%26_SA_2015/2016&amp;diff=26519</id>
		<title>Projets IMA4 SC &amp; SA 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA4_SC_%26_SA_2015/2016&amp;diff=26519"/>
				<updated>2016-02-06T12:42:23Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Matériel à acquérir */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en demandant une modification du format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
Toutes les sources doivent être déposées sur notre archive GIT. Le service est disponible à l'URL [https://archives.plil.fr archives.plil.fr]. Connectez-vous avec vos identifiants Polytech'Lille. Sauf indication contraire de vos encadrants, rendez le projet public et mettez le lien sur votre Wiki. Vous pouvez trouver de la documentation sur ce système d'archives sur ce [https://git-scm.com/book/fr/v1 site].&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Encadrants école !! Elèves&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[Commande USB par micro-contrôleur]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Arnaud DESHAYS&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Train de véhicules]]&lt;br /&gt;
| Xavier Redon &lt;br /&gt;
| Manuel BUENO / Maureen GILLET&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[Imprimante 3D à chocolat]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé &lt;br /&gt;
| Hugo VANDENBUNDER / Sylvain VERDONCK&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Zone de sécurité pour vélo]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Martin CLAVERIE / Victor CHARNET&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[Journée IMA]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé&lt;br /&gt;
| Michel MIKHAEL&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[Tableau blanc interactif]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Romuald LENTIEUL / Léo MAZIER&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Réseau de capteurs longue distance]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Sonia NDUWAYO / Cong CHEN&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Robots mobiles pour Arduino]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé&lt;br /&gt;
| Audrey AFFOYON / Leticia STEPHANES LIMA&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[Miroir intelligent]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Valentin BEAUCHAMP / Guillaume VILLEMONT&lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Robot autonome pour cartographie]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Pierre MICHEL / Alexandre DESCAMD&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Matelas connecté]]&lt;br /&gt;
| Nathalie Rolland / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Vincent ROBIC / Morgan OBEISSART&lt;br /&gt;
|-&lt;br /&gt;
| P27 [[BIOLOID commandé par Arduino]]&lt;br /&gt;
| Blaise Conrard&lt;br /&gt;
| Quentin GRUSON / Jordan RAZAFINDRAIBE&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[Imprimante 3D multi-fils]]&lt;br /&gt;
| Antoine Urquizar / Alexandre Boé&lt;br /&gt;
| Antonin CLAUS / Cédric DUVAL&lt;br /&gt;
|-&lt;br /&gt;
| P29 [[Aide anti-gaspillage alimentaire]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Florian GIOVANNANGELI / Pierre FITOUSSI&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Micro-robots auto-organisés]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon&lt;br /&gt;
| Corentin CASIER / Julie DEBOCK&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[Veilleuse enfant connecté]]&lt;br /&gt;
| Thomas Vantroys&lt;br /&gt;
| Romain RUET / Julien BIELLE&lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Jeu de plateforme tangible]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Stéphane MAIA / Maxime SZWECHOWIEZ&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interface de communication entre robots]]&lt;br /&gt;
| Rochdi Merzouki&lt;br /&gt;
| Vianney PAYELLE&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[Hydroponie]]&lt;br /&gt;
| Alexandre Boé&lt;br /&gt;
| Nicolas WEGRZYN&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[Dirigeable publicitaire]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Julien JOIGNAUX / Loïc DELECROIX&lt;br /&gt;
|-&lt;br /&gt;
| P41 [[Drone et occulus rift]]&lt;br /&gt;
| Jérémie Dequidt &lt;br /&gt;
| Geoffrey PIEKACZ / Nathan RICHEZ&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[Mini-drones]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Valentin TAFFIN / Alexandre CUADROS&lt;br /&gt;
|-&lt;br /&gt;
| P43 [[SmartMeter, gestion de consommation électrique]]&lt;br /&gt;
| Guillaume Renault / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Haroun ABDELALI / Charlène DA COSTA NETO &lt;br /&gt;
|-&lt;br /&gt;
| P44 [[Le marteau de Thor]]&lt;br /&gt;
| Emanuelle Pichonat&lt;br /&gt;
| Matthieu HERWEGH / Kevin LE VAN PHUNG&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[Orchestre électronique]]&lt;br /&gt;
| Lucas Prieux / Xavier Redon / Thomas Vantroys	&lt;br /&gt;
| Thomas ROJ / Joshua LETELLIER&lt;br /&gt;
|-&lt;br /&gt;
| P47 [[Commande d'une suspension magnétique]]&lt;br /&gt;
| Aziz Nakrachi&lt;br /&gt;
| Hongyu ZHANG / Weixing JIN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel à acquérir ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Matériel&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[Commande USB par micro-contrôleur]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Train de véhicules]]&lt;br /&gt;
|&lt;br /&gt;
LEDs IR (x20), RS [http://fr.rs-online.com/web/p/led-ir/6548334/], &amp;lt;br/&amp;gt;&lt;br /&gt;
Phototransistors IR (x20), RS [http://fr.rs-online.com/web/p/phototransistors/6655388/], &amp;lt;br/&amp;gt;&lt;br /&gt;
Drivers moteur Pololu (x1), GoTronic [http://www.gotronic.fr/art-commande-de-2-moteurs-tb6612fng-2x1a-21716.htm], &amp;lt;br/&amp;gt;&lt;br /&gt;
Drivers moteur TB6612FNG (x3), Mouser [http://www.mouser.fr/ProductDetail/Toshiba/TB6612FNGOC8EL/?qs=VMlqFFbv3sQEQqYF0HJbow%3D%3D], &amp;lt;br\&amp;gt;&lt;br /&gt;
Borniers à vis (x15), Farnell [http://fr.farnell.com/camdenboss/ctb0502-2/bornier-carte-a-fil-2-voies-12awg/dp/2493622?MER=en-me-sr-b-all], &amp;lt;br\&amp;gt;&lt;br /&gt;
Résistances 220 Ohms CMS (x6), Mouser [http://www.mouser.fr/ProductDetail/Vishay-Dale/CRCW0603220RFKEA/?qs=sGAEpiMZZMtlubZbdhIBIKySljYCMs0HAiopx1mcVY0%3d], &amp;lt;br\&amp;gt;&lt;br /&gt;
Résistances 470 kOhms CMS (x20), Mouser [http://www.mouser.fr/ProductDetail/Panasonic/ERJ-3GEYJ474V/?qs=sGAEpiMZZMtlubZbdhIBIDkNbKahCB4%252bXwMzav7V8qQ%3d],&lt;br /&gt;
&amp;lt;br\&amp;gt;LEDs couleur (x10), RS [http://fr.rs-online.com/web/p/led/8134845/], &amp;lt;br\&amp;gt;&lt;br /&gt;
Fils m-m (x1 lot de 65), Farnell [http://fr.farnell.com/multicomp/mcbbj65/assortiment-de-jumper-fil-65pcs/dp/2396146], &amp;lt;br\&amp;gt;&lt;br /&gt;
Capas 10uF CMS (x10) Mouser [http://www.mouser.fr/ProductDetail/Murata-Electronics/ZRB18AR61C106ME01L/?qs=sGAEpiMZZMs0AnBnWHyRQPHsfd5klL7FP%2fi0oh%252bVTwkomqr6NYKsqQ%3d%3d], &amp;lt;br\&amp;gt;&lt;br /&gt;
Capas 0.1uF CMS (x10) Mouser [http://www.mouser.fr/ProductDetail/Kemet/C0603C104K4RACTU/?qs=sGAEpiMZZMs0AnBnWHyRQFqPnX0OlvcoGdtRY%252bgH1%2fs%3d], &amp;lt;br\&amp;gt;&lt;br /&gt;
Embases CI 40 contacts 1 rangée (x4) RS [http://fr.rs-online.com/web/p/embases-de-circuit-imprime/4232841/], &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Arduino Uno (x3) [01/02/2016], &amp;lt;br\&amp;gt;&lt;br /&gt;
ESP8266 (x1) [01/02/2016], &amp;lt;br\&amp;gt;&lt;br /&gt;
Chassis 2WD (x4) [01/02/2016], &amp;lt;br\&amp;gt;&lt;br /&gt;
Capteurs Ultrasons SR04 (x3) [01/02/2016], &amp;lt;br\&amp;gt;&lt;br /&gt;
Piles ou accumulateurs (x16 à 1.5V) [01/02/2016], &amp;lt;/span&amp;gt; &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Odomètres codeurs (x8) [03/02/2016]&amp;lt;/span&amp;gt;, &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Boutons poussoirs (x3) [01/02/2016]&amp;lt;/span&amp;gt;, &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Shield Arduino + Breadboard (x3) [01/02/2016]&amp;lt;/span&amp;gt;, &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Colliers de serrage [01/02/2016]&amp;lt;/span&amp;gt;. &amp;lt;br /&amp;gt;&lt;br /&gt;
‎Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P4.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[Imprimante 3D à chocolat]]&lt;br /&gt;
|&lt;br /&gt;
Electrovanne, RS [http://fr.rs-online.com/web/p/vannes-solenoides/2551496683/],&amp;lt;br/&amp;gt;&lt;br /&gt;
Capteur de température, Mouser [http://www.mouser.fr/ProductDetail/Microchip-Technology/TC1047VNBTR/?qs=sGAEpiMZZMucenltShoSnjkfRJmEyKRQimeb4yJa%2fn8%3d],&amp;lt;br/&amp;gt;&lt;br /&gt;
Fil résistif, RS [http://fr.rs-online.com/web/p/cable-industriel-multiconducteur/7496348/],&amp;lt;br/&amp;gt;&lt;br /&gt;
Tuyau Clair, Diam.int 2,8mm, RS [http://fr.rs-online.com/web/p/tuyaux-dair/7747018/],&amp;lt;br/&amp;gt;&lt;br /&gt;
Capteur de pression, Mouser [http://www.mouser.fr/ProductDetail/EPCOS-TDK/B58601E3215B580/?qs=sGAEpiMZZMvhQj7WZhFIAEcnfodwemFjFFuwDryPIpY%3d],&amp;lt;br/&amp;gt;&lt;br /&gt;
Tube en cuivre, Diam.int 26mm, Leroy Merlin,[http://www.leroymerlin.fr/v3/p/produits/tube-d-alimentation-cuivre-diam-26-x-28-mm-en-barre-de-1-m-e8989],&amp;lt;br/&amp;gt;&lt;br /&gt;
Raccord en té, RS [http://fr.rs-online.com/web/p/adaptateurs-tube-a-tube-en-t/7715752/],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Ventilateurs type PC,&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Imprimante 3D, Fabricarium,&amp;lt;br/&amp;gt;&lt;br /&gt;
Raccords et buses, imprimés 3D,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Arduino UNO [04/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
‎Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P5.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Zone de sécurité pour vélo]]&lt;br /&gt;
|&lt;br /&gt;
Module Laser ligne (x3), Gotronic [http://www.gotronic.fr/art-module-laser-hlm1230-19016.htm],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Raspberry Pi 2 [01/02/2016]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Module caméra pour Raspberry Pi [01/02/2016] &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Dongle Bluetooth [01/02/2016] &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
Batterie(Accus), RS [http://fr.rs-online.com/web/p/batteries-externes/7757508/],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Embase à connecteur USB (x4 femelle) (x4 mâle) [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Cordon USB mâle-femelle (x4), Gotronic [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Téléphone sous Android [01/02/2016] &amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Capteur de distance (ultrasons), Gotronic [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
LED neopixel*8 (x4), Mouser [http://www.mouser.fr/ProductDetail/Adafruit/1426/?qs=sGAEpiMZZMu%252bmKbOcEVhFQfi8wYXkauJZrA7E1oPdUbRYeHGihkBqQ%3d%3d]. &amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[Journée IMA]]&lt;br /&gt;
| &lt;br /&gt;
Plaques de plexiglas (x5) (à part Gotronic, aucun magasin ne le propose) [http://www.gotronic.fr/art-plaque-lexan-lex20-11856.htm], &amp;lt;br/&amp;gt;&lt;br /&gt;
Réseau de 8 transistors ULN2803A (x4), Mouser [http://www.mouser.fr/ProductDetail/STMicroelectronics/ULN2803A/?qs=sGAEpiMZZMvAvBNgSS9LqpP7ived4CP2] &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Résistance 10kohm  (x75)&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Résistance 1kohm (x25), MAGASIN POLYTECH  [http://melectro.polytech-lille.net/main.php?p=consultation&amp;amp;np=3]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
AOP 74HC574 (x15), Mouser (pas de stock en MAGASIN) [http://www.mouser.fr/ProductDetail/Texas-Instruments/SN74HC574N/?qs=sGAEpiMZZMvxP%252bvr8KwMwBnwYCvkZxeQoMRe0GOGaSg%3d],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AOP 74HC138 (x4), MAGASIN POLYTECH &amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Condensateur 22pF (x5), Magasin Polytech  [http://melectro.polytech-lille.net/main.php?p=consultation&amp;amp;np=7]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Condensateur 1uF (x25), Magasin Polytech  [http://melectro.polytech-lille.net/main.php?p=consultation]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Condensateur 1000uF (x5), RS (Pas de stock en MAGASIN) [http://fr.rs-online.com/web/p/condensateurs-aluminium/5261446/?origin=null|fp&amp;amp;cm_sp=featureproducts-_-FeaturedProductsContent-_-5261446m],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Condensateur 10uF (x4), Magasin Polytech [http://melectro.polytech-lille.net/main.php?p=consultation&amp;amp;np=4]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Condensateur 100uF (x3)&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
Reseaux de résistance 10kohm (x5), farnell [http://fr.farnell.com/vishay/vsor1601103jtf/reseau-de-resistance-10k/dp/1203468],&amp;lt;br/&amp;gt;&lt;br /&gt;
Transistor CMS (x25), farnell [http://fr.farnell.com/diodes-inc/bc848b-7-f/transistor-npn-sot23/dp/1773620],&amp;lt;br/&amp;gt;&lt;br /&gt;
Transistor (x25), farnell [http://fr.farnell.com/on-semiconductor/bc548brl1g/transistor-npn-30v-100ma-to-92/dp/2317545],&amp;lt;br/&amp;gt;&lt;br /&gt;
Microcontroleur MBED (x1), RS [http://fr.rs-online.com/web/p/kits-de-developpement-pour-processeurs-et-microcontroleurs/7039238/],&amp;lt;br/&amp;gt;&lt;br /&gt;
Supercondensateur (x4), Mouser [http://www.mouser.fr/ProductDetail/Maxwell-Technologies/BCAP0010-P270-T01/?qs=sGAEpiMZZMuoE%252bleORarXmfAVBuwwvGh], &amp;lt;br/&amp;gt;&lt;br /&gt;
LED IR, (x6), RS [http://fr.rs-online.com/web/p/led-ir/8108247/], &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;LED (x15)&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
Mini moteur électrique (x3), gotronic [http://www.gotronic.fr/art-moteur-miniature-rm2-avec-pignon-12009.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;support d'AOP (x15) (Magasin électronique POLYTECH Lille) &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;E-theremin (projet IMA4 2014-2015)&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Arduino UNO &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry PI &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;BreadBoard &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Dé électronique communicant(projet IMA4 2014-2015)&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[Tableau blanc interactif]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Manette Wiimote [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Vidéo projecteur&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Adaptateur Bluetooth USB [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Led infrarouge [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi [03/02/2016]&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Réseau de capteurs longue distance]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;50 aimants néodyne épaisseur 1,5mm, diamètre 3mm &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 plaque MDF pour les pièces de puzzle&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Partie micro-contrôleur : &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;micro-contrôleur de type ATMEGA328P, FARNELL [http://fr.farnell.com/atmel/atmega328-pu/micro-8-bits-avr-32k-flash-28pdip/dp/1972087]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 résistance CMS 10K&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 résistance CMS 1K&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 résistance CMS 1M&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;3 capacités CMS 100n&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 diode CMS&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;2 LEDs &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 quartz, FARNELL [http://fr.farnell.com/iqd-frequency-products/lfxtal003240/quartz-16mhz/dp/9713700]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;4 piles de 1,5v AAA&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;1 pile de 9V&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 support 4 piles AAA à souder&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;1 support pile 9V à souder&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 bouton poussoir (reset)&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;1 fil de cuivre pour antenne&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 capteur de température&amp;lt;/span&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Partie alimentation :&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 résistance CMS 10K&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 résistance CMS 1K&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 capacité CMS 100n&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 capacité CMS 1u&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;2 capacité découplage CMS 47u&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 capacité CMS 100n&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 capacité CMS 1u&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 diode CMS&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;2 LEDs jaune et verte&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 transistor, RS ONLINE [http://fr.rs-online.com/web/p/transistors-mosfet/6710435/]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;2 amplificateurs, RS ONLINE [http://fr.rs-online.com/web/p/amplificateurs-operationnels/0426051/]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 régulateurs de tension NCP, RS ONLINE [http://fr.rs-online.com/web/p/regulateurs-de-tension-a-faible-chute-ldo/8022130/?searchTerm=regulateur+de+tension+NCP1117ST50T3G&amp;amp;relevancy-data=636F3D3126696E3D4931384E4C446573634D504E266C753D6672266D6D3D6D617463687061727469616C6D617826706D3D5E5B5C707B4C7D5C707B4E647D5C707B5A737D2D2C2F255C2E5D2B2426706F3D393326736E3D592673743D4B4559574F52445F4D554C54495F414C5048415F4E554D455249432673633D592677633D4E4F4E45267573743D726567756C61746575722064652074656E73696F6E204E4350313131375354353054334726]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 régulateur de tension DC, RS ONLINE [http://fr.rs-online.com/web/p/regulateurs-de-tension-lineaires/7140792/]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 régulateur de tension TPS, RS ONLINE [http://fr.rs-online.com/web/p/regulateurs-de-tension-a-faible-chute-ldo/0527340/]&amp;lt;/span&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Partie radio :&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;module radio de type RF-LORA-868-SO, RS ONLINE [http://fr.rs-online.com/web/p/modules-rf-faible-consommation/9033034/?origin=PSF_437731%7Cacc]&amp;lt;/span&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P10.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Robots mobiles pour Arduino]]&lt;br /&gt;
|&lt;br /&gt;
2 paires de roues de 65 mm de diamètre [http://www.gotronic.fr/art-paire-de-roues-jaunes-tam6626j-19346.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;2 moteurs [03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
1 capteur ultrasons [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
1 capteur de température [http://www.mouser.fr/ProductDetail/Analog-Devices/TMP36GT9Z/?qs=sGAEpiMZZMv9Q1JI0Mo%2ftZYNPIqRJ81F],&amp;lt;br/&amp;gt;&lt;br /&gt;
1 capteur de lumière [http://www.gotronic.fr/art-photoresistance-5-mm-vt93n2-22551.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
1 paquet de 4 piles AA [http://fr.farnell.com/energizer/635730/batterie-extreme-ni-mh-aa-2300mah/dp/2075717], &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;2 résistances de 330 Ω [disponible en B204]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;2 transistors [disponible en B204]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;2 diodes [disponible en B204]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;1 haut parleur&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;2 leds rouges [disponible en B204]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;2 leds jaunes [disponible en B204]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;1 breadboard&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un arduino UNO [03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Un boitier de 4 piles AA [http://www.mouser.fr/ProductDetail/Eagle-Plastic-Devices/12BH348-CS-GR/?qs=sGAEpiMZZMsRxHb9hCd0qoPCXJRSAWxUgxweyALoa2Q%3d]&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[Miroir intelligent]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Clé WiFi [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Câble USB-microUSB [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Carte SD [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Câble HDMI,&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecran : Amazon [http://www.amazon.fr/BenQ-Ecran-PC-LED-27/dp/B00HZF2ME0/ref=sr_1_1?ie=UTF8&amp;amp;qid=1451984469&amp;amp;sr=8-1&amp;amp;keywords=BenQ+GL2760H#productDetails] ou RS [http://fr.rs-online.com/web/p/moniteurs/8962732/],&amp;lt;br/&amp;gt;&lt;br /&gt;
Miroir sans tain de la taille de l'écran, tapplastics [http://www.tapplastics.com/product/plastics/cut_to_size_plastic/two_way_mirrored_acrylic/558],&amp;lt;br/&amp;gt;&lt;br /&gt;
Matrice de led tactile 40pouces.&lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Robot autonome pour cartographie]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 - [03/02/2016].&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Carte SD - [03/02/2016].&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Arduino UNO - [03/02/2016].&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Clef WiFi pour mesure RSSI (x3) - [03/02/2016].&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Capteur ultrason, Gotronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm].&amp;lt;br /&amp;gt;&lt;br /&gt;
Servomoteur, Gotronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm].&amp;lt;br /&amp;gt;&lt;br /&gt;
Pilote de moteur (x5), Mouser : [http://eu.mouser.com/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d].&amp;lt;br /&amp;gt;&lt;br /&gt;
Résistance 270 Ohm (x10), Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d].&amp;lt;br /&amp;gt; &lt;br /&gt;
Capacité 100 uF (x5), Gotronic : [http://www.gotronic.fr/art-condensateur-lcc-100-nf-66.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Capacité 100 nF (x5), Gotronic : [http://www.gotronic.fr/art-condensateur-lcc-100-nf-66.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Capacité 33 nF (x5), Gotronic : [http://www.gotronic.fr/art-condensateur-lcc-33-nf-3267.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Capacité 1 uF (x5), Gotronic : [http://www.gotronic.fr/art-condensateur-lcc-1-uf-3274.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Câble USB 2m (x1 ou x2), Gotronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Fourche optique (x2), Gotronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Fichier de commande :[[Fichier:CommandeElectronique-2015-P21.ods]].&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Matelas connecté]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Neopixel [4 fournis le 03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;RFduino [2 fournis le 03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Capteur de température DS18B20 1-Wire [1 fourni le 03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Résistance 4K7 [1 fournie le 03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P27 [[BIOLOID commandé par Arduino]]&lt;br /&gt;
| &lt;br /&gt;
Non inverting buffer 74HC126 x2 [http://www.mouser.fr/ProductDetail/NXP-Semiconductors/74HC126D653/?qs=sGAEpiMZZMuiiWkaIwCK2RTxPVPWGz6WVfjhJh2Mav0%3d], &amp;lt;br/&amp;gt;&lt;br /&gt;
Ardoise magnétique, &amp;lt;br/&amp;gt;&lt;br /&gt;
Kit bioloid&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Carte Arduino Uno [27/01/2016]&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[Imprimante 3D multi-fils]]&lt;br /&gt;
| &lt;br /&gt;
moteur NEMA 17 x6 [http://www.gotronic.fr/art-moteur-17hm15-0904s-23049.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
Driver NEMA 17 x6 [http://www.gotronic.fr/art-driver-de-moteur-pas-a-pas-drv8834-2134-22274.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
Engrenage x6  [http://www.banggood.com/fr/1_75MM-8MM-MK7-Extruder-Drive-Gear-Bore-For-3D-Printer-Accessories-p-1013103.html],&amp;lt;br/&amp;gt;&lt;br /&gt;
Roulement x6  [http://www.gotronic.fr/art-roulement-35-15-11mm-161.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
Courroie GT2,&amp;lt;br/&amp;gt;&lt;br /&gt;
Thermistance NTC100K.&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P29 [[Aide anti-gaspillage alimentaire]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Un Smartphone sous Android&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Micro-robots auto-organisés]]&lt;br /&gt;
|&lt;br /&gt;
Un microcontrôleur Atmega 328P-au x2 (farnell) [http://fr.farnell.com/atmel/atmega328p-au/micro-8-bits-avr-32k-flash-32tqfp/dp/1715486?selectedCategoryId=&amp;amp;exaMfpn=true&amp;amp;categoryId=&amp;amp;searchRef=SearchLookAhead],&lt;br /&gt;
&amp;lt;br\&amp;gt;Moteur vibreur x4 (mouser) [http://www.mouser.fr/ProductDetail/Parallax/28821/?qs=sGAEpiMZZMsv3%2fxVbQiciD2XahQ7lqLvcbiE4XVIbwo%3d],&amp;lt;br\&amp;gt;&lt;br /&gt;
Batterie lithium ion x2 (farnell) [http://fr.farnell.com/bak/18650ca-1s-3j/batterie-lithium-ion-3-7v-2250/dp/2401852?MER=BN-2401852], &amp;lt;br\&amp;gt;&lt;br /&gt;
Chargeur de batterie lithium ion x2 (farnell) [http://fr.farnell.com/microchip/mcp73834-fci-un/controleur-de-charge-li-ion-li/dp/1332162],&amp;lt;br\&amp;gt;&lt;br /&gt;
Régulateur de tension x2 (farnell) [http://fr.farnell.com/microchip/mcp1826s-3002e-db/ic-ldo-3-0v-1a-sot-223-3/dp/1578422],&amp;lt;br\&amp;gt;&lt;br /&gt;
Mini usb connecteur x2 (farnell) [http://fr.farnell.com/mill-max/896-43-005-00-100001/mini-usb-2-0-type-a-receptacle/dp/1925238],&amp;lt;br\&amp;gt;&lt;br /&gt;
Photo transistor x16 (farnell) [http://fr.farnell.com/kingbright/l-53p3c/phototransistor-5mm-940nm/dp/2290444?selectedCategoryId=&amp;amp;exaMfpn=true&amp;amp;categoryId=&amp;amp;searchRef=SearchLookAhead],&amp;lt;br\&amp;gt;&lt;br /&gt;
LED infrarouge x8 (farnell) [http://fr.farnell.com/kingbright/l-934f3c/emetteur-ir-t-1/dp/2290438],&amp;lt;br\&amp;gt;&lt;br /&gt;
LED verte x2 [http://fr.farnell.com/vishay/vlmg31k1l2-gs08/led-plcc2-green/dp/1328317], &amp;lt;br\&amp;gt;&lt;br /&gt;
LED rouge x4 [http://fr.farnell.com/toshiba/tlsh1100b-t11/led-rouge-plcc2-260mcd/dp/1761592],&amp;lt;br\&amp;gt;&lt;br /&gt;
LED bleu x2 [http://fr.farnell.com/vishay/vlmb41p1q2-gs18/led-plcc2-bleu/dp/1648564],&amp;lt;br\&amp;gt;&lt;br /&gt;
Interrupteur x2, &amp;lt;br\&amp;gt;&lt;br /&gt;
Transistor NPN CMS x4 (lot de 5) (farnell) [http://fr.farnell.com/fairchild-semiconductor/pzta42/transistor-npn-sot-223/dp/9846654], &amp;lt;br\&amp;gt;&lt;br /&gt;
Diode x4 (farnell) [http://fr.farnell.com/diodes-inc/bav21w-7-f/diode-commutateur-200v-0-25w-sod123/dp/1858652],&amp;lt;br\&amp;gt;&lt;br /&gt;
condensateurs 1uF x18 (farnell) [http://fr.farnell.com/avx-formerly-known-as-nichicon/f931c105maa/tantalum-capacitor-1uf-16v-7-5/dp/1818580], &amp;lt;br\&amp;gt;&lt;br /&gt;
résistances 470 Ohm x10 (farnell) [http://fr.farnell.com/vishay-draloric/rcl0612-470r-1-100-ppm-k-e3/res-couche-epaisse-470r-1-0-5w/dp/1877845], &amp;lt;br\&amp;gt;&lt;br /&gt;
résistances 4,7 kOhm x16 (farnell) [http://fr.farnell.com/vishay-draloric/rcl0612-4k7-1-100-ppm-k-e3/res-couche-epaisse-4-7k-1-0-5w/dp/1877852RL], &amp;lt;br\&amp;gt;&lt;br /&gt;
Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P30.ods]]..&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[Veilleuse enfant connecté]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Clé WiFi Wi-Pi [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Câble USB-microUSB [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Carte SD [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Câble HDMI [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Pico-projecteur ASUS S1 [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
Petit microphone (farnell) [http://fr.farnell.com/pro-signal/abm-715-rc/electret-microphone-omni-leads/dp/2066501],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Un capteur de température [Disponible a l'école].&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Jeu de plateforme tangible]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Webcam pour Raspberry Pi 2[27/01/2016]&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interface de communication entre robots]]&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Robotino (Robocup)&amp;lt;/span&amp;gt;.   &lt;br /&gt;
|-&lt;br /&gt;
| P38 [[Hydroponie]]&lt;br /&gt;
|&lt;br /&gt;
Un sac de billes d'argile : [http://www.ebay.fr/itm/Sac-de-Billes-d-argile-5L-substrat-de-culture-pour-plantes-amendement-/380377359803],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un pot panier : [http://www.indoorgardens.fr/fr/pots-panier-aero/207-pot-panier-teku-souple-5cm-2-pouces-123.html][http://www.cityplantes.com/pots-carres/774-pot-carre-godet-7x7xh8cm.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un bac réservoir d'eau : [http://www.lorvert-paris.com/growshop-hydroponique-culture-indoor/systeme-hydroponique/bac/nutrisystem-bac-reserve/255.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Une plaque en PVC : [http://www.leroymerlin.fr/v3/p/produits/plaque-pvc-expanse-100x50cm-ep-3mm-e162646],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un caisson (disponibilité au fab ?),&amp;lt;br /&amp;gt;&lt;br /&gt;
Deux m² de laine de roche : [http://www.castorama.fr/store/Panneau-laine-de-roche-Rocflam-ep30mm-PRDm474800.html?isSearchResult=true&amp;amp;navAction=jump],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un capteur d'humidité : [http://fr.farnell.com/multicomp/hcz-d5-a/capteur-humidite-20-90-rh-5/dp/1891428],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un ventilateur : [http://www.culture-dinterieur.fr/extracteur-intracteur-ventilateur-160m3-adda/product_info.php/products_id/2073],&amp;lt;br /&amp;gt;&lt;br /&gt;
Deux capteurs ne niveau : [http://fr.farnell.com/ist-innovative-sensor-technology/fs1l-a-1l-195/capteur-de-fluide-moule/dp/1266955],&amp;lt;br /&amp;gt;&lt;br /&gt;
Une pompe à air avec diffuseur : [http://www.aquaprems.com/pack-complet-pompes-a-air-aquarium/489-pack-complet-pompe-a-air-bulleur-aquarium.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Une résistance chauffante : [http://www.stego.de/fr/produits/chauffer/resistances-chauffantes/15-w-a-150-w.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Quatre LEDs RGB : [http://fr.rs-online.com/web/p/led/8294310P/],&amp;lt;br /&amp;gt;&lt;br /&gt;
Une pompe à eau : [http://www.aqua-store.fr/pompes-a-eau-aquarium-eau-de-mer/1990-eden-pompe-105-4010052571607.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Une batterie : [http://www.solar-kit.com/epages/62035995.sf/fr_FR/?ObjectPath=/Shops/62035995/Products/BAPLAG127.225-batterie-solaire-7ah],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un MPPT : [http://www.cdiscount.com/auto/outillage-auto/20a-mppt-panneau-solaire-regulat-charge-controlle/f-13399-auc8405971088286.html?idOffre=81825404#mpos=2|mp],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un système goutte à goutte : 2*[http://www.thecitygarden.fr/fr/raccords-goutteurs-sprayers/1031-jonction-4mm-tee.html],[http://www.thecitygarden.fr/fr/raccords-goutteurs-sprayers/1038-bouchon-90-micro-diametre-16.html],2*[http://www.thecitygarden.fr/fr/raccords-goutteurs-sprayers/1030-jonction-4mm-auto-percante.html],[http://www.thecitygarden.fr/fr/raccords-goutteurs-sprayers/1033-couronne-tuyau-capillaire-20m-3x5mm.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un Arduino Uno,&amp;lt;br /&amp;gt;&lt;br /&gt;
Un panneau solaire,&amp;lt;br /&amp;gt;&lt;br /&gt;
Un plant de fraise.&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[Dirigeable publicitaire]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un arduino UNO [03/02/2016] &amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Une enveloppe imperméable (A VERIFIER)&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
9 m3 d'hélium (lien du devis :[[https://projets-ima.polytech-lille.net:40079/mediawiki/index.php?title=Dirigeable_publicitaire#Devis_pour_l.27h.C3.A9lium]]),Air Liquide [27/01/2016],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Accessoires de drone HS (hélices, moteurs) [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
10 x Capteurs à ultrasons, Gotronic [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm],&amp;lt;br /&amp;gt;&lt;br /&gt;
Alim ARDUINO 5V 5000mAh, RS [http://fr.rs-online.com/web/p/batteries-externes/7757508/],&amp;lt;br /&amp;gt;&lt;br /&gt;
Alim moteurs (chez Parrot - hors sites autorisés),&amp;lt;br /&amp;gt;&lt;br /&gt;
Ballon gonflable à l'hélium [http://www.ballon-helium.com//ballon-geant-chloroprene-180/ballon-chloroprene-unis-mat-1-20m-12661.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P41 [[Drone et occulus rift]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Une plaque à essai pour nos tests [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;fils mâle/mâle x10 [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
2 Mini Webcam USB GT06051, Gotronic [http://www.gotronic.fr/art-mini-webcam-usb-gt06051-23495.htm],&amp;lt;br /&amp;gt;&lt;br /&gt;
Chargeur portable, PB-A5200, Power Bank, 5000mAh, Lithium Polymère, RS [http://fr.rs-online.com/web/p/batteries-externes/7757508/],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un câble &amp;quot;série&amp;quot; pour raspberry [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Servo-moteur 180° [01/02/2016, achat personnel]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;convertisseur HDMI-SVGA pour Raspberry Pi [03/02/2016]&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[Mini-drones]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Minidrones Parrot : JUMPING SUMO [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Minidrones Parrot : ROLLING SPIDER [01/02/2016]&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P43 [[SmartMeter, gestion de consommation électrique]]&lt;br /&gt;
| &lt;br /&gt;
Un panstamp NRG [02/02/2016] [http://panstamp.com/store/index.php?id_product=47&amp;amp;controller=product], &amp;lt;br /&amp;gt;&lt;br /&gt;
Maxim 78M6610+LMU [http://eu.mouser.com/ProductDetail/Maxim-Integrated/78M6610+LMU-B01/?qs=sGAEpiMZZMuicgbJr93hQVd6%252bEl2PjSnPQyvC3%252bgS6U%3d], &amp;lt;br /&amp;gt;&lt;br /&gt;
Quartz 20Mhz [http://fr.farnell.com/iqd-frequency-products/lfxtal003185/quartz-20mhz/dp/9712879], &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Capacités : &amp;lt;br/&amp;gt;&lt;br /&gt;
1 µF x9 unités [http://fr.farnell.com/tdk/c1608x5r1h105k080ab/condensateur-mlcc-x5r-1uf-50v/dp/2211179], &amp;lt;br /&amp;gt; &lt;br /&gt;
0.1uF x9 unités [http://fr.farnell.com/multicomp/mc0603f104z500ct/condensateur-mlcc-y5v-100nf-0603/dp/1759123], &amp;lt;br /&amp;gt; &lt;br /&gt;
18 pF x6 unités [http://fr.farnell.com/walsin/0603n180j500ct/condensateur-mlcc-np0-18pf-50v/dp/2496890?MER=en-me-sr-b-all] , &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Résistances : &amp;lt;br /&amp;gt;&lt;br /&gt;
100 Ohm, [http://fr.rs-online.com/web/p/resistances-cms/2132143/] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
750 Ohm, [http://fr.rs-online.com/web/p/resistances-cms/6790692/] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
1 KOhm,  [http://fr.rs-online.com/web/p/resistances-cms/2132266/] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
10 KOhm, [http://fr.rs-online.com/web/p/resistances-cms/2132418/] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
1 MOhm,  [http://fr.rs-online.com/web/p/resistances-cms/6789932/] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Résistance de shunt: 0.004 Ohm [http://fr.rs-online.com/web/p/resistances-cms/8665374/],&amp;lt;br /&amp;gt;&lt;br /&gt;
Leds rouge CMS x12, [http://fr.farnell.com/rohm/sml-310vtt86l/led-0603-rouge/dp/1685064] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
Bornier [http://fr.farnell.com/camdenboss/ctb0308-2/bornier-2-voies/dp/3882652]&amp;lt;br /&amp;gt;&lt;br /&gt;
Transformateur VTX-214 001 103 [http://fr.farnell.com/vigortronix/vtx-214-001-103/conv-ac-dc-fixe-1-o-p-1w-3-3v/dp/2401019],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Adaptateur USB [02/02/2016].&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P43.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[Le marteau de Thor]]&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un arduino UNO [27/01/2016]&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
un lecteur d'empreintes digitales : Mouser [http://www.mouser.fr/ProductDetail/MikroElektronika/MIKROE-1722/?qs=GJ%2F2ZGcr5uOW3uiL4M9shA%3D%3D], &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un shield NFC [27/01/2016] &amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un téléphone sous Androïd [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un capteur de pression [03/02/2016],&amp;lt;/span&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un électro aimant [25/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Une alimentation électroaimant (labo 24V), &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Une alimentation arduino [27/01/2016]&amp;lt;/span&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
‎Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P44.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[Orchestre électronique]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Alimentation PC [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Lecteurs de disquette (x2) [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Lecteur CD (x1) [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Disques durs (x3) [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Scanner [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 + alimentation + FTDI [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Cables GPIO femelle [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Cable Alimentation PC [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Buffers 3 états (Farnell) [http://fr.farnell.com/fairchild-semiconductor/nc7sp126p5x/buffer-single-tri-state-sc-70/dp/2453002]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Imprimantes [01/02/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Clavier MIDI [http://www.thomann.de/fr/m_audio_keystation_mini_32_mk2.htm?gclid=Cj0KEQiAoby1BRDA-fPXtITt3f0BEiQAPCkqQQKdntNWLwKu92GOUp2gHXfTCj5t0WB9LWyZjAaAZUkaAmDV8P8HAQ]&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
‎Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P45.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P47 [[Commande d'une suspension magnétique]]&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Logiciel Matlab simulink et la suspension magnétique Didastel. &amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==  Notes sur les projets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Mini-cahier des charges || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[Commande USB par micro-contrôleur]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:red;&amp;quot;&amp;gt;Vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Train de véhicules]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct, bien rédigé, illustré, un schéma intéressant, le sujet est compris. Une liste du matériel nécessaire, précise et raisonnable.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P5 [[Imprimante 3D à chocolat]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Très bon cahier des charges, bien rédigé, illustré, bonne synthèse du travail à effectuer. Le matériel nécessaire est listé mais sans référence précise.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange;&amp;quot;&amp;gt;Il n'est pas évident que ce matériel soit d'un coût raisonnable.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Zone de sécurité pour vélo]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Synthèse d'une réunion interne. Liste précise du matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P7 [[Journée IMA]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un cahier des charges finalement correct fin décembre.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P9 [[Tableau blanc interactif]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct, le projet semble être spécifié. Une rencontre avec l'encadrant. Attention tout de même au coté très ouvert du sujet. Un embryon de liste de matériel. Il faut donner des références pour la caméra par exemple.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Réseau de capteurs longue distance]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:yellowgreen&amp;quot;&amp;gt;Quelques coquilles de rédaction. Le sujet est décrit mais on pourrait souhaiter plus de détail. Une illustration.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange&amp;quot;&amp;gt;Quelques mention du matériel mais pas de liste.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Robots mobiles pour Arduino]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;Un cahier des charges finalement très correct.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange&amp;quot;&amp;gt;Pas de liste précise du matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P16 [[Miroir intelligent]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct même si on pourrait demander des précisions sur les retouches à apporter à l'image. Correctement rédigé, un effort de mise en forme. Une liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Robot autonome pour cartographie]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Attention à bien identifier des tâches à réaliser ne dépendant pas du projet des CM5. Préciser ce système de tags pour calibrer la position du robot. Une liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Matelas connecté]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Bel effort de présentation d'un cahier des charges pour un sujet très &amp;quot;ouvert&amp;quot;. Rédaction très correcte. Une inquiétude sur la possibilité d'obtenir le matériel. Merci de mettre à jour le cahier des charges après la rencontre avec l'industriel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P27 [[BIOLOID commandé par Arduino]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:yellowgreen;&amp;quot;&amp;gt;Les grandes lignes sont définies. Quand vous parlez de commander le robot sans logiciel vous voulez dire commander le robot sans logiciel propriétaire ? Le cahier des charges est un peu court. Préciser l'environnement de développement C des Bioloid et l'interface entre l'Arduino et les servos-moteurs.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P28 [[Imprimante 3D multi-fils]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Le cahier des charges est correct, vous avez contacté votre encadrant. Précisez que la solution de soudure de segments de filaments vient de vos encadrants ? Etablissez une liste du matériel nécessaire.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P29 [[Aide anti-gaspillage alimentaire]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:red;&amp;quot;&amp;gt;Pas de différence notable avec le sujet initial. Un doute sur l'intérêt d'un portable pour la lecture des étiquettes. Un autre doute sur la possibilité de cette lecture. La date d'expiration est généralement difficile à trouver et mal imprimée, quelles solutions envisagez-vous ? Aucune modication entre le 3 décembre et fin janvier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Micro-robots auto-organisés]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Une bonne description du projet et du but à atteindre. Un doute sur les moteurs choisis (non commandable par l'université d'ailleurs) : ce sont des moteurs très rapides. Des réflexions avancées sur le matériel. Il reste à trouver des références exploitables.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P32 [[Veilleuse enfant connecté]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct. Bien rédigé. Clairement le projet a été bien appréhendé. Une liste du matériel avec des références.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Jeu de plateforme tangible]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Enfin un cahier des charges à peu près correct fin janvier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interface de communication entre robots]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Quelques coquilles manque de formatage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P38 [[Hydroponie]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un cahier des charges finalisé très tardivement fin janvier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P39 [[Dirigeable publicitaire]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct. Pour l'hélium il faudrait contacter le fournisseur de l'université pour un devis. Vous pouvez commencer à concevoir la nacelle avec les hélices. Il faut aussi trouver des références pour la liste du matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P41 [[Drone et occulus rift]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un Wiki illustré et formaté correctement. Toujours aucune précision sur la connexion entre l'occulus rift et le drone.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P42 [[Mini-drones]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Un effort d'illustration avec un schéma. Vous pouvez commencer à manipuler le SDK des mini-drônes, ces derniers sont disponibles en E306.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P43 [[SmartMeter, gestion de consommation électrique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:orange;&amp;quot;&amp;gt;Bel effort de Wiki vu le retard pris pour la rédaction du cahier des charges. Je pense qu'il y a une confusion sur la signification de &amp;quot;puissance effective&amp;quot;. Mettre à jour le Wiki après entretien avec Guillaume Renault. Au 27 janvier toujours en attente d'une réelle étude du sujet.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P44 [[Le marteau de Thor]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Projet enfin attaqué fin décembre. Un vrai cahier des charges, très correct.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P45 [[Orchestre électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Projet correctement appréhendé. Le cahier des charges est précisé dans ses grandes lignes. Une partie sur les instruments reste à affiner mais c'est normal. Essayez de trouver une référence pour les dispositifs MIDI à connecter à la RaspBerry Pi. Ces dispositifs sont fondamentaux pour lancer le projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P47 [[Commande d'une suspension magnétique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un cahier des charges enfin correct le 4 janvier 2016.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange;&amp;quot;&amp;gt;Pourriez-vous mettre en perspective votre projet par rapport à celui de 2012/2013 [[Suspension_magnétique_2013]] ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA4_SC_%26_SA_2015/2016&amp;diff=26518</id>
		<title>Projets IMA4 SC &amp; SA 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA4_SC_%26_SA_2015/2016&amp;diff=26518"/>
				<updated>2016-02-06T12:41:08Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Matériel à acquérir */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en demandant une modification du format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
Toutes les sources doivent être déposées sur notre archive GIT. Le service est disponible à l'URL [https://archives.plil.fr archives.plil.fr]. Connectez-vous avec vos identifiants Polytech'Lille. Sauf indication contraire de vos encadrants, rendez le projet public et mettez le lien sur votre Wiki. Vous pouvez trouver de la documentation sur ce système d'archives sur ce [https://git-scm.com/book/fr/v1 site].&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Encadrants école !! Elèves&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[Commande USB par micro-contrôleur]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Arnaud DESHAYS&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Train de véhicules]]&lt;br /&gt;
| Xavier Redon &lt;br /&gt;
| Manuel BUENO / Maureen GILLET&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[Imprimante 3D à chocolat]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé &lt;br /&gt;
| Hugo VANDENBUNDER / Sylvain VERDONCK&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Zone de sécurité pour vélo]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Martin CLAVERIE / Victor CHARNET&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[Journée IMA]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé&lt;br /&gt;
| Michel MIKHAEL&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[Tableau blanc interactif]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Romuald LENTIEUL / Léo MAZIER&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Réseau de capteurs longue distance]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Sonia NDUWAYO / Cong CHEN&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Robots mobiles pour Arduino]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé&lt;br /&gt;
| Audrey AFFOYON / Leticia STEPHANES LIMA&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[Miroir intelligent]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Valentin BEAUCHAMP / Guillaume VILLEMONT&lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Robot autonome pour cartographie]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Pierre MICHEL / Alexandre DESCAMD&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Matelas connecté]]&lt;br /&gt;
| Nathalie Rolland / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Vincent ROBIC / Morgan OBEISSART&lt;br /&gt;
|-&lt;br /&gt;
| P27 [[BIOLOID commandé par Arduino]]&lt;br /&gt;
| Blaise Conrard&lt;br /&gt;
| Quentin GRUSON / Jordan RAZAFINDRAIBE&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[Imprimante 3D multi-fils]]&lt;br /&gt;
| Antoine Urquizar / Alexandre Boé&lt;br /&gt;
| Antonin CLAUS / Cédric DUVAL&lt;br /&gt;
|-&lt;br /&gt;
| P29 [[Aide anti-gaspillage alimentaire]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Florian GIOVANNANGELI / Pierre FITOUSSI&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Micro-robots auto-organisés]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon&lt;br /&gt;
| Corentin CASIER / Julie DEBOCK&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[Veilleuse enfant connecté]]&lt;br /&gt;
| Thomas Vantroys&lt;br /&gt;
| Romain RUET / Julien BIELLE&lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Jeu de plateforme tangible]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Stéphane MAIA / Maxime SZWECHOWIEZ&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interface de communication entre robots]]&lt;br /&gt;
| Rochdi Merzouki&lt;br /&gt;
| Vianney PAYELLE&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[Hydroponie]]&lt;br /&gt;
| Alexandre Boé&lt;br /&gt;
| Nicolas WEGRZYN&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[Dirigeable publicitaire]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Julien JOIGNAUX / Loïc DELECROIX&lt;br /&gt;
|-&lt;br /&gt;
| P41 [[Drone et occulus rift]]&lt;br /&gt;
| Jérémie Dequidt &lt;br /&gt;
| Geoffrey PIEKACZ / Nathan RICHEZ&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[Mini-drones]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Valentin TAFFIN / Alexandre CUADROS&lt;br /&gt;
|-&lt;br /&gt;
| P43 [[SmartMeter, gestion de consommation électrique]]&lt;br /&gt;
| Guillaume Renault / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Haroun ABDELALI / Charlène DA COSTA NETO &lt;br /&gt;
|-&lt;br /&gt;
| P44 [[Le marteau de Thor]]&lt;br /&gt;
| Emanuelle Pichonat&lt;br /&gt;
| Matthieu HERWEGH / Kevin LE VAN PHUNG&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[Orchestre électronique]]&lt;br /&gt;
| Lucas Prieux / Xavier Redon / Thomas Vantroys	&lt;br /&gt;
| Thomas ROJ / Joshua LETELLIER&lt;br /&gt;
|-&lt;br /&gt;
| P47 [[Commande d'une suspension magnétique]]&lt;br /&gt;
| Aziz Nakrachi&lt;br /&gt;
| Hongyu ZHANG / Weixing JIN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel à acquérir ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Matériel&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[Commande USB par micro-contrôleur]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Train de véhicules]]&lt;br /&gt;
|&lt;br /&gt;
LEDs IR (x20), RS [http://fr.rs-online.com/web/p/led-ir/6548334/], &amp;lt;br/&amp;gt;&lt;br /&gt;
Phototransistors IR (x20), RS [http://fr.rs-online.com/web/p/phototransistors/6655388/], &amp;lt;br/&amp;gt;&lt;br /&gt;
Drivers moteur Pololu (x1), GoTronic [http://www.gotronic.fr/art-commande-de-2-moteurs-tb6612fng-2x1a-21716.htm], &amp;lt;br/&amp;gt;&lt;br /&gt;
Drivers moteur TB6612FNG (x3), Mouser [http://www.mouser.fr/ProductDetail/Toshiba/TB6612FNGOC8EL/?qs=VMlqFFbv3sQEQqYF0HJbow%3D%3D], &amp;lt;br\&amp;gt;&lt;br /&gt;
Borniers à vis (x15), Farnell [http://fr.farnell.com/camdenboss/ctb0502-2/bornier-carte-a-fil-2-voies-12awg/dp/2493622?MER=en-me-sr-b-all], &amp;lt;br\&amp;gt;&lt;br /&gt;
Résistances 220 Ohms CMS (x6), Mouser [http://www.mouser.fr/ProductDetail/Vishay-Dale/CRCW0603220RFKEA/?qs=sGAEpiMZZMtlubZbdhIBIKySljYCMs0HAiopx1mcVY0%3d], &amp;lt;br\&amp;gt;&lt;br /&gt;
Résistances 470 kOhms CMS (x20), Mouser [http://www.mouser.fr/ProductDetail/Panasonic/ERJ-3GEYJ474V/?qs=sGAEpiMZZMtlubZbdhIBIDkNbKahCB4%252bXwMzav7V8qQ%3d],&lt;br /&gt;
&amp;lt;br\&amp;gt;LEDs couleur (x10), RS [http://fr.rs-online.com/web/p/led/8134845/], &amp;lt;br\&amp;gt;&lt;br /&gt;
Fils m-m (x1 lot de 65), Farnell [http://fr.farnell.com/multicomp/mcbbj65/assortiment-de-jumper-fil-65pcs/dp/2396146], &amp;lt;br\&amp;gt;&lt;br /&gt;
Capas 10uF CMS (x10) Mouser [http://www.mouser.fr/ProductDetail/Murata-Electronics/ZRB18AR61C106ME01L/?qs=sGAEpiMZZMs0AnBnWHyRQPHsfd5klL7FP%2fi0oh%252bVTwkomqr6NYKsqQ%3d%3d], &amp;lt;br\&amp;gt;&lt;br /&gt;
Capas 0.1uF CMS (x10) Mouser [http://www.mouser.fr/ProductDetail/Kemet/C0603C104K4RACTU/?qs=sGAEpiMZZMs0AnBnWHyRQFqPnX0OlvcoGdtRY%252bgH1%2fs%3d], &amp;lt;br\&amp;gt;&lt;br /&gt;
Embases CI 40 contacts 1 rangée (x4) RS [http://fr.rs-online.com/web/p/embases-de-circuit-imprime/4232841/], &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Arduino Uno (x3) [01/02/2016], &amp;lt;br\&amp;gt;&lt;br /&gt;
ESP8266 (x1) [01/02/2016], &amp;lt;br\&amp;gt;&lt;br /&gt;
Chassis 2WD (x4) [01/02/2016], &amp;lt;br\&amp;gt;&lt;br /&gt;
Capteurs Ultrasons SR04 (x3) [01/02/2016], &amp;lt;br\&amp;gt;&lt;br /&gt;
Piles ou accumulateurs (x16 à 1.5V) [01/02/2016], &amp;lt;/span&amp;gt; &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Odomètres codeurs (x8) [03/02/2016]&amp;lt;/span&amp;gt;, &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Boutons poussoirs (x3) [01/02/2016]&amp;lt;/span&amp;gt;, &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Shield Arduino + Breadboard (x3) [01/02/2016]&amp;lt;/span&amp;gt;, &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Colliers de serrage [01/02/2016]&amp;lt;/span&amp;gt;. &amp;lt;br /&amp;gt;&lt;br /&gt;
‎Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P4.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[Imprimante 3D à chocolat]]&lt;br /&gt;
|&lt;br /&gt;
Electrovanne, RS [http://fr.rs-online.com/web/p/vannes-solenoides/2551496683/],&amp;lt;br/&amp;gt;&lt;br /&gt;
Capteur de température, Mouser [http://www.mouser.fr/ProductDetail/Microchip-Technology/TC1047VNBTR/?qs=sGAEpiMZZMucenltShoSnjkfRJmEyKRQimeb4yJa%2fn8%3d],&amp;lt;br/&amp;gt;&lt;br /&gt;
Fil résistif, RS [http://fr.rs-online.com/web/p/cable-industriel-multiconducteur/7496348/],&amp;lt;br/&amp;gt;&lt;br /&gt;
Tuyau Clair, Diam.int 2,8mm, RS [http://fr.rs-online.com/web/p/tuyaux-dair/7747018/],&amp;lt;br/&amp;gt;&lt;br /&gt;
Capteur de pression, Mouser [http://www.mouser.fr/ProductDetail/EPCOS-TDK/B58601E3215B580/?qs=sGAEpiMZZMvhQj7WZhFIAEcnfodwemFjFFuwDryPIpY%3d],&amp;lt;br/&amp;gt;&lt;br /&gt;
Tube en cuivre, Diam.int 26mm, Leroy Merlin,[http://www.leroymerlin.fr/v3/p/produits/tube-d-alimentation-cuivre-diam-26-x-28-mm-en-barre-de-1-m-e8989],&amp;lt;br/&amp;gt;&lt;br /&gt;
Raccord en té, RS [http://fr.rs-online.com/web/p/adaptateurs-tube-a-tube-en-t/7715752/],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Ventilateurs type PC,&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Imprimante 3D, Fabricarium,&amp;lt;br/&amp;gt;&lt;br /&gt;
Raccords et buses, imprimés 3D,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Arduino UNO [04/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
‎Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P5.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Zone de sécurité pour vélo]]&lt;br /&gt;
|&lt;br /&gt;
Module Laser ligne (x3), Gotronic [http://www.gotronic.fr/art-module-laser-hlm1230-19016.htm],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Raspberry Pi 2 [01/02/2016]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Module caméra pour Raspberry Pi [01/02/2016] &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Dongle Bluetooth [01/02/2016] &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
Batterie(Accus), RS [http://fr.rs-online.com/web/p/batteries-externes/7757508/],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Embase à connecteur USB (x4 femelle) (x4 mâle) [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Cordon USB mâle-femelle (x4), Gotronic [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Téléphone sous Android [01/02/2016] &amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Capteur de distance (ultrasons), Gotronic [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
LED neopixel*8 (x4), Mouser [http://www.mouser.fr/ProductDetail/Adafruit/1426/?qs=sGAEpiMZZMu%252bmKbOcEVhFQfi8wYXkauJZrA7E1oPdUbRYeHGihkBqQ%3d%3d]. &amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[Journée IMA]]&lt;br /&gt;
| &lt;br /&gt;
Plaques de plexiglas (x5) (à part Gotronic, aucun magasin ne le propose) [http://www.gotronic.fr/art-plaque-lexan-lex20-11856.htm], &amp;lt;br/&amp;gt;&lt;br /&gt;
Réseau de 8 transistors ULN2803A (x4), Mouser [http://www.mouser.fr/ProductDetail/STMicroelectronics/ULN2803A/?qs=sGAEpiMZZMvAvBNgSS9LqpP7ived4CP2] &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Résistance 10kohm  (x75)&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Résistance 1kohm (x25), MAGASIN POLYTECH  [http://melectro.polytech-lille.net/main.php?p=consultation&amp;amp;np=3]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
AOP 74HC574 (x15), Mouser (pas de stock en MAGASIN) [http://www.mouser.fr/ProductDetail/Texas-Instruments/SN74HC574N/?qs=sGAEpiMZZMvxP%252bvr8KwMwBnwYCvkZxeQoMRe0GOGaSg%3d],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AOP 74HC138 (x4), MAGASIN POLYTECH &amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Condensateur 22pF (x5), Magasin Polytech  [http://melectro.polytech-lille.net/main.php?p=consultation&amp;amp;np=7]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Condensateur 1uF (x25), Magasin Polytech  [http://melectro.polytech-lille.net/main.php?p=consultation]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Condensateur 1000uF (x5), RS (Pas de stock en MAGASIN) [http://fr.rs-online.com/web/p/condensateurs-aluminium/5261446/?origin=null|fp&amp;amp;cm_sp=featureproducts-_-FeaturedProductsContent-_-5261446m],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Condensateur 10uF (x4), Magasin Polytech [http://melectro.polytech-lille.net/main.php?p=consultation&amp;amp;np=4]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Condensateur 100uF (x3)&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
Reseaux de résistance 10kohm (x5), farnell [http://fr.farnell.com/vishay/vsor1601103jtf/reseau-de-resistance-10k/dp/1203468],&amp;lt;br/&amp;gt;&lt;br /&gt;
Transistor CMS (x25), farnell [http://fr.farnell.com/diodes-inc/bc848b-7-f/transistor-npn-sot23/dp/1773620],&amp;lt;br/&amp;gt;&lt;br /&gt;
Transistor (x25), farnell [http://fr.farnell.com/on-semiconductor/bc548brl1g/transistor-npn-30v-100ma-to-92/dp/2317545],&amp;lt;br/&amp;gt;&lt;br /&gt;
Microcontroleur MBED (x1), RS [http://fr.rs-online.com/web/p/kits-de-developpement-pour-processeurs-et-microcontroleurs/7039238/],&amp;lt;br/&amp;gt;&lt;br /&gt;
Supercondensateur (x4), Mouser [http://www.mouser.fr/ProductDetail/Maxwell-Technologies/BCAP0010-P270-T01/?qs=sGAEpiMZZMuoE%252bleORarXmfAVBuwwvGh], &amp;lt;br/&amp;gt;&lt;br /&gt;
LED IR, (x6), RS [http://fr.rs-online.com/web/p/led-ir/8108247/], &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;LED (x15)&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
Mini moteur électrique (x3), gotronic [http://www.gotronic.fr/art-moteur-miniature-rm2-avec-pignon-12009.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;support d'AOP (x15) (Magasin électronique POLYTECH Lille) &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;E-theremin (projet IMA4 2014-2015)&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Arduino UNO &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry PI &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;BreadBoard &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Dé électronique communicant(projet IMA4 2014-2015)&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[Tableau blanc interactif]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Manette Wiimote [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Vidéo projecteur&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Adaptateur Bluetooth USB [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Led infrarouge [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi [03/02/2016]&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Réseau de capteurs longue distance]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;50 aimants néodyne épaisseur 1,5mm, diamètre 3mm &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 plaque MDF pour les pièces de puzzle&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Partie micro-contrôleur : &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;micro-contrôleur de type ATMEGA328P, FARNELL [http://fr.farnell.com/atmel/atmega328-pu/micro-8-bits-avr-32k-flash-28pdip/dp/1972087]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 résistance CMS 10K&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 résistance CMS 1K&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 résistance CMS 1M&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;3 capacités CMS 100n&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 diode CMS&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;2 LEDs &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 quartz, FARNELL [http://fr.farnell.com/iqd-frequency-products/lfxtal003240/quartz-16mhz/dp/9713700]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;4 piles de 1,5v AAA&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;1 pile de 9V&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 support 4 piles AAA à souder&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;1 support pile 9V à souder&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 bouton poussoir (reset)&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;1 fil de cuivre pour antenne&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 capteur de température&amp;lt;/span&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Partie alimentation :&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 résistance CMS 10K&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 résistance CMS 1K&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 capacité CMS 100n&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 capacité CMS 1u&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;2 capacité découplage CMS 47u&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 capacité CMS 100n&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 capacité CMS 1u&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 diode CMS&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;2 LEDs jaune et verte&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 transistor, RS ONLINE [http://fr.rs-online.com/web/p/transistors-mosfet/6710435/]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;2 amplificateurs, RS ONLINE [http://fr.rs-online.com/web/p/amplificateurs-operationnels/0426051/]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 régulateurs de tension NCP, RS ONLINE [http://fr.rs-online.com/web/p/regulateurs-de-tension-a-faible-chute-ldo/8022130/?searchTerm=regulateur+de+tension+NCP1117ST50T3G&amp;amp;relevancy-data=636F3D3126696E3D4931384E4C446573634D504E266C753D6672266D6D3D6D617463687061727469616C6D617826706D3D5E5B5C707B4C7D5C707B4E647D5C707B5A737D2D2C2F255C2E5D2B2426706F3D393326736E3D592673743D4B4559574F52445F4D554C54495F414C5048415F4E554D455249432673633D592677633D4E4F4E45267573743D726567756C61746575722064652074656E73696F6E204E4350313131375354353054334726]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 régulateur de tension DC, RS ONLINE [http://fr.rs-online.com/web/p/regulateurs-de-tension-lineaires/7140792/]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;1 régulateur de tension TPS, RS ONLINE [http://fr.rs-online.com/web/p/regulateurs-de-tension-a-faible-chute-ldo/0527340/]&amp;lt;/span&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Partie radio :&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;module radio de type RF-LORA-868-SO, RS ONLINE [http://fr.rs-online.com/web/p/modules-rf-faible-consommation/9033034/?origin=PSF_437731%7Cacc]&amp;lt;/span&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P10.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Robots mobiles pour Arduino]]&lt;br /&gt;
|&lt;br /&gt;
2 paires de roues de 65 mm de diamètre [http://www.gotronic.fr/art-paire-de-roues-jaunes-tam6626j-19346.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;2 moteurs [03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
1 capteur ultrasons [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
1 capteur de température [http://www.mouser.fr/ProductDetail/Analog-Devices/TMP36GT9Z/?qs=sGAEpiMZZMv9Q1JI0Mo%2ftZYNPIqRJ81F],&amp;lt;br/&amp;gt;&lt;br /&gt;
1 capteur de lumière [http://www.gotronic.fr/art-photoresistance-5-mm-vt93n2-22551.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
1 paquet de 4 piles AA [http://fr.farnell.com/energizer/635730/batterie-extreme-ni-mh-aa-2300mah/dp/2075717], &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;2 résistances de 330 Ω [disponible en B204]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;2 transistors [disponible en B204]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;2 diodes [disponible en B204]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;1 haut parleur&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;2 leds rouges [disponible en B204]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;2 leds jaunes [disponible en B204]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;1 breadboard&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un arduino UNO [03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Un boitier de 4 piles AA [http://www.mouser.fr/ProductDetail/Eagle-Plastic-Devices/12BH348-CS-GR/?qs=sGAEpiMZZMsRxHb9hCd0qoPCXJRSAWxUgxweyALoa2Q%3d]&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[Miroir intelligent]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Clé WiFi [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Câble USB-microUSB [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Carte SD [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Câble HDMI,&amp;lt;br /&amp;gt;&lt;br /&gt;
Ecran : Amazon [http://www.amazon.fr/BenQ-Ecran-PC-LED-27/dp/B00HZF2ME0/ref=sr_1_1?ie=UTF8&amp;amp;qid=1451984469&amp;amp;sr=8-1&amp;amp;keywords=BenQ+GL2760H#productDetails] ou RS [http://fr.rs-online.com/web/p/moniteurs/8962732/],&amp;lt;br/&amp;gt;&lt;br /&gt;
Miroir sans tain de la taille de l'écran, tapplastics [http://www.tapplastics.com/product/plastics/cut_to_size_plastic/two_way_mirrored_acrylic/558],&amp;lt;br/&amp;gt;&lt;br /&gt;
Matrice de led tactile 40pouces.&lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Robot autonome pour cartographie]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 - [03/02/2016].&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Carte SD - [03/02/2016].&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Arduino UNO - [03/02/2016].&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Clef WiFi pour mesure RSSI (x3) - [03/02/2016].&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Capteur ultrason, Gotronic : [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm].&amp;lt;br /&amp;gt;&lt;br /&gt;
Servomoteur, Gotronic : [http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm].&amp;lt;br /&amp;gt;&lt;br /&gt;
Pilote de moteur (x5), Mouser : [http://eu.mouser.com/ProductDetail/Freescale-Semiconductor/MC34931EK/?qs=sGAEpiMZZMvQcoNRkxSQkiOBqyFfjGe5mG1PBZLkPLE%3d].&amp;lt;br /&amp;gt;&lt;br /&gt;
Résistance 270 Ohm (x10), Mouser : [http://www.mouser.fr/ProductDetail/TE-Connectivity-Holsworthy/3521270RFT/?qs=sGAEpiMZZMu61qfTUdNhG15ROd0nQ7Wlf0zCDKWeZ5snBOgjDqh8dA%3d%3d].&amp;lt;br /&amp;gt; &lt;br /&gt;
Capacité 100 uF (x5), Gotronic : [http://www.gotronic.fr/art-condensateur-lcc-100-nf-66.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Capacité 100 nF (x5), Gotronic : [http://www.gotronic.fr/art-condensateur-lcc-100-nf-66.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Capacité 33 nF (x5), Gotronic : [http://www.gotronic.fr/art-condensateur-lcc-33-nf-3267.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Capacité 1 uF (x5), Gotronic : [http://www.gotronic.fr/art-condensateur-lcc-1-uf-3274.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Câble USB 2m (x1 ou x2), Gotronic : [http://www.gotronic.fr/art-cordon-2m-cw091b-15249.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Fourche optique (x2), Gotronic : [http://www.gotronic.fr/art-interrupteur-optique-gp1a57hrj00f-21001.htm].&amp;lt;br /&amp;gt; &lt;br /&gt;
Fichier de commande :.&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Matelas connecté]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Neopixel [4 fournis le 03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;RFduino [2 fournis le 03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Capteur de température DS18B20 1-Wire [1 fourni le 03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Résistance 4K7 [1 fournie le 03/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P27 [[BIOLOID commandé par Arduino]]&lt;br /&gt;
| &lt;br /&gt;
Non inverting buffer 74HC126 x2 [http://www.mouser.fr/ProductDetail/NXP-Semiconductors/74HC126D653/?qs=sGAEpiMZZMuiiWkaIwCK2RTxPVPWGz6WVfjhJh2Mav0%3d], &amp;lt;br/&amp;gt;&lt;br /&gt;
Ardoise magnétique, &amp;lt;br/&amp;gt;&lt;br /&gt;
Kit bioloid&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Carte Arduino Uno [27/01/2016]&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[Imprimante 3D multi-fils]]&lt;br /&gt;
| &lt;br /&gt;
moteur NEMA 17 x6 [http://www.gotronic.fr/art-moteur-17hm15-0904s-23049.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
Driver NEMA 17 x6 [http://www.gotronic.fr/art-driver-de-moteur-pas-a-pas-drv8834-2134-22274.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
Engrenage x6  [http://www.banggood.com/fr/1_75MM-8MM-MK7-Extruder-Drive-Gear-Bore-For-3D-Printer-Accessories-p-1013103.html],&amp;lt;br/&amp;gt;&lt;br /&gt;
Roulement x6  [http://www.gotronic.fr/art-roulement-35-15-11mm-161.htm],&amp;lt;br/&amp;gt;&lt;br /&gt;
Courroie GT2,&amp;lt;br/&amp;gt;&lt;br /&gt;
Thermistance NTC100K.&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P29 [[Aide anti-gaspillage alimentaire]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Un Smartphone sous Android&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Micro-robots auto-organisés]]&lt;br /&gt;
|&lt;br /&gt;
Un microcontrôleur Atmega 328P-au x2 (farnell) [http://fr.farnell.com/atmel/atmega328p-au/micro-8-bits-avr-32k-flash-32tqfp/dp/1715486?selectedCategoryId=&amp;amp;exaMfpn=true&amp;amp;categoryId=&amp;amp;searchRef=SearchLookAhead],&lt;br /&gt;
&amp;lt;br\&amp;gt;Moteur vibreur x4 (mouser) [http://www.mouser.fr/ProductDetail/Parallax/28821/?qs=sGAEpiMZZMsv3%2fxVbQiciD2XahQ7lqLvcbiE4XVIbwo%3d],&amp;lt;br\&amp;gt;&lt;br /&gt;
Batterie lithium ion x2 (farnell) [http://fr.farnell.com/bak/18650ca-1s-3j/batterie-lithium-ion-3-7v-2250/dp/2401852?MER=BN-2401852], &amp;lt;br\&amp;gt;&lt;br /&gt;
Chargeur de batterie lithium ion x2 (farnell) [http://fr.farnell.com/microchip/mcp73834-fci-un/controleur-de-charge-li-ion-li/dp/1332162],&amp;lt;br\&amp;gt;&lt;br /&gt;
Régulateur de tension x2 (farnell) [http://fr.farnell.com/microchip/mcp1826s-3002e-db/ic-ldo-3-0v-1a-sot-223-3/dp/1578422],&amp;lt;br\&amp;gt;&lt;br /&gt;
Mini usb connecteur x2 (farnell) [http://fr.farnell.com/mill-max/896-43-005-00-100001/mini-usb-2-0-type-a-receptacle/dp/1925238],&amp;lt;br\&amp;gt;&lt;br /&gt;
Photo transistor x16 (farnell) [http://fr.farnell.com/kingbright/l-53p3c/phototransistor-5mm-940nm/dp/2290444?selectedCategoryId=&amp;amp;exaMfpn=true&amp;amp;categoryId=&amp;amp;searchRef=SearchLookAhead],&amp;lt;br\&amp;gt;&lt;br /&gt;
LED infrarouge x8 (farnell) [http://fr.farnell.com/kingbright/l-934f3c/emetteur-ir-t-1/dp/2290438],&amp;lt;br\&amp;gt;&lt;br /&gt;
LED verte x2 [http://fr.farnell.com/vishay/vlmg31k1l2-gs08/led-plcc2-green/dp/1328317], &amp;lt;br\&amp;gt;&lt;br /&gt;
LED rouge x4 [http://fr.farnell.com/toshiba/tlsh1100b-t11/led-rouge-plcc2-260mcd/dp/1761592],&amp;lt;br\&amp;gt;&lt;br /&gt;
LED bleu x2 [http://fr.farnell.com/vishay/vlmb41p1q2-gs18/led-plcc2-bleu/dp/1648564],&amp;lt;br\&amp;gt;&lt;br /&gt;
Interrupteur x2, &amp;lt;br\&amp;gt;&lt;br /&gt;
Transistor NPN CMS x4 (lot de 5) (farnell) [http://fr.farnell.com/fairchild-semiconductor/pzta42/transistor-npn-sot-223/dp/9846654], &amp;lt;br\&amp;gt;&lt;br /&gt;
Diode x4 (farnell) [http://fr.farnell.com/diodes-inc/bav21w-7-f/diode-commutateur-200v-0-25w-sod123/dp/1858652],&amp;lt;br\&amp;gt;&lt;br /&gt;
condensateurs 1uF x18 (farnell) [http://fr.farnell.com/avx-formerly-known-as-nichicon/f931c105maa/tantalum-capacitor-1uf-16v-7-5/dp/1818580], &amp;lt;br\&amp;gt;&lt;br /&gt;
résistances 470 Ohm x10 (farnell) [http://fr.farnell.com/vishay-draloric/rcl0612-470r-1-100-ppm-k-e3/res-couche-epaisse-470r-1-0-5w/dp/1877845], &amp;lt;br\&amp;gt;&lt;br /&gt;
résistances 4,7 kOhm x16 (farnell) [http://fr.farnell.com/vishay-draloric/rcl0612-4k7-1-100-ppm-k-e3/res-couche-epaisse-4-7k-1-0-5w/dp/1877852RL], &amp;lt;br\&amp;gt;&lt;br /&gt;
Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P30.ods]]..&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[Veilleuse enfant connecté]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Clé WiFi Wi-Pi [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Câble USB-microUSB [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Carte SD [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Câble HDMI [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Pico-projecteur ASUS S1 [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
Petit microphone (farnell) [http://fr.farnell.com/pro-signal/abm-715-rc/electret-microphone-omni-leads/dp/2066501],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Un capteur de température [Disponible a l'école].&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Jeu de plateforme tangible]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Webcam pour Raspberry Pi 2[27/01/2016]&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interface de communication entre robots]]&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Robotino (Robocup)&amp;lt;/span&amp;gt;.   &lt;br /&gt;
|-&lt;br /&gt;
| P38 [[Hydroponie]]&lt;br /&gt;
|&lt;br /&gt;
Un sac de billes d'argile : [http://www.ebay.fr/itm/Sac-de-Billes-d-argile-5L-substrat-de-culture-pour-plantes-amendement-/380377359803],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un pot panier : [http://www.indoorgardens.fr/fr/pots-panier-aero/207-pot-panier-teku-souple-5cm-2-pouces-123.html][http://www.cityplantes.com/pots-carres/774-pot-carre-godet-7x7xh8cm.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un bac réservoir d'eau : [http://www.lorvert-paris.com/growshop-hydroponique-culture-indoor/systeme-hydroponique/bac/nutrisystem-bac-reserve/255.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Une plaque en PVC : [http://www.leroymerlin.fr/v3/p/produits/plaque-pvc-expanse-100x50cm-ep-3mm-e162646],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un caisson (disponibilité au fab ?),&amp;lt;br /&amp;gt;&lt;br /&gt;
Deux m² de laine de roche : [http://www.castorama.fr/store/Panneau-laine-de-roche-Rocflam-ep30mm-PRDm474800.html?isSearchResult=true&amp;amp;navAction=jump],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un capteur d'humidité : [http://fr.farnell.com/multicomp/hcz-d5-a/capteur-humidite-20-90-rh-5/dp/1891428],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un ventilateur : [http://www.culture-dinterieur.fr/extracteur-intracteur-ventilateur-160m3-adda/product_info.php/products_id/2073],&amp;lt;br /&amp;gt;&lt;br /&gt;
Deux capteurs ne niveau : [http://fr.farnell.com/ist-innovative-sensor-technology/fs1l-a-1l-195/capteur-de-fluide-moule/dp/1266955],&amp;lt;br /&amp;gt;&lt;br /&gt;
Une pompe à air avec diffuseur : [http://www.aquaprems.com/pack-complet-pompes-a-air-aquarium/489-pack-complet-pompe-a-air-bulleur-aquarium.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Une résistance chauffante : [http://www.stego.de/fr/produits/chauffer/resistances-chauffantes/15-w-a-150-w.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Quatre LEDs RGB : [http://fr.rs-online.com/web/p/led/8294310P/],&amp;lt;br /&amp;gt;&lt;br /&gt;
Une pompe à eau : [http://www.aqua-store.fr/pompes-a-eau-aquarium-eau-de-mer/1990-eden-pompe-105-4010052571607.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Une batterie : [http://www.solar-kit.com/epages/62035995.sf/fr_FR/?ObjectPath=/Shops/62035995/Products/BAPLAG127.225-batterie-solaire-7ah],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un MPPT : [http://www.cdiscount.com/auto/outillage-auto/20a-mppt-panneau-solaire-regulat-charge-controlle/f-13399-auc8405971088286.html?idOffre=81825404#mpos=2|mp],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un système goutte à goutte : 2*[http://www.thecitygarden.fr/fr/raccords-goutteurs-sprayers/1031-jonction-4mm-tee.html],[http://www.thecitygarden.fr/fr/raccords-goutteurs-sprayers/1038-bouchon-90-micro-diametre-16.html],2*[http://www.thecitygarden.fr/fr/raccords-goutteurs-sprayers/1030-jonction-4mm-auto-percante.html],[http://www.thecitygarden.fr/fr/raccords-goutteurs-sprayers/1033-couronne-tuyau-capillaire-20m-3x5mm.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
Un Arduino Uno,&amp;lt;br /&amp;gt;&lt;br /&gt;
Un panneau solaire,&amp;lt;br /&amp;gt;&lt;br /&gt;
Un plant de fraise.&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[Dirigeable publicitaire]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un arduino UNO [03/02/2016] &amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Une enveloppe imperméable (A VERIFIER)&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
9 m3 d'hélium (lien du devis :[[https://projets-ima.polytech-lille.net:40079/mediawiki/index.php?title=Dirigeable_publicitaire#Devis_pour_l.27h.C3.A9lium]]),Air Liquide [27/01/2016],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Accessoires de drone HS (hélices, moteurs) [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
10 x Capteurs à ultrasons, Gotronic [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm],&amp;lt;br /&amp;gt;&lt;br /&gt;
Alim ARDUINO 5V 5000mAh, RS [http://fr.rs-online.com/web/p/batteries-externes/7757508/],&amp;lt;br /&amp;gt;&lt;br /&gt;
Alim moteurs (chez Parrot - hors sites autorisés),&amp;lt;br /&amp;gt;&lt;br /&gt;
Ballon gonflable à l'hélium [http://www.ballon-helium.com//ballon-geant-chloroprene-180/ballon-chloroprene-unis-mat-1-20m-12661.html],&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P41 [[Drone et occulus rift]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Une plaque à essai pour nos tests [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;fils mâle/mâle x10 [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
2 Mini Webcam USB GT06051, Gotronic [http://www.gotronic.fr/art-mini-webcam-usb-gt06051-23495.htm],&amp;lt;br /&amp;gt;&lt;br /&gt;
Chargeur portable, PB-A5200, Power Bank, 5000mAh, Lithium Polymère, RS [http://fr.rs-online.com/web/p/batteries-externes/7757508/],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un câble &amp;quot;série&amp;quot; pour raspberry [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Servo-moteur 180° [01/02/2016, achat personnel]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;convertisseur HDMI-SVGA pour Raspberry Pi [03/02/2016]&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[Mini-drones]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Minidrones Parrot : JUMPING SUMO [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Minidrones Parrot : ROLLING SPIDER [01/02/2016]&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P43 [[SmartMeter, gestion de consommation électrique]]&lt;br /&gt;
| &lt;br /&gt;
Un panstamp NRG [02/02/2016] [http://panstamp.com/store/index.php?id_product=47&amp;amp;controller=product], &amp;lt;br /&amp;gt;&lt;br /&gt;
Maxim 78M6610+LMU [http://eu.mouser.com/ProductDetail/Maxim-Integrated/78M6610+LMU-B01/?qs=sGAEpiMZZMuicgbJr93hQVd6%252bEl2PjSnPQyvC3%252bgS6U%3d], &amp;lt;br /&amp;gt;&lt;br /&gt;
Quartz 20Mhz [http://fr.farnell.com/iqd-frequency-products/lfxtal003185/quartz-20mhz/dp/9712879], &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Capacités : &amp;lt;br/&amp;gt;&lt;br /&gt;
1 µF x9 unités [http://fr.farnell.com/tdk/c1608x5r1h105k080ab/condensateur-mlcc-x5r-1uf-50v/dp/2211179], &amp;lt;br /&amp;gt; &lt;br /&gt;
0.1uF x9 unités [http://fr.farnell.com/multicomp/mc0603f104z500ct/condensateur-mlcc-y5v-100nf-0603/dp/1759123], &amp;lt;br /&amp;gt; &lt;br /&gt;
18 pF x6 unités [http://fr.farnell.com/walsin/0603n180j500ct/condensateur-mlcc-np0-18pf-50v/dp/2496890?MER=en-me-sr-b-all] , &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Résistances : &amp;lt;br /&amp;gt;&lt;br /&gt;
100 Ohm, [http://fr.rs-online.com/web/p/resistances-cms/2132143/] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
750 Ohm, [http://fr.rs-online.com/web/p/resistances-cms/6790692/] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
1 KOhm,  [http://fr.rs-online.com/web/p/resistances-cms/2132266/] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
10 KOhm, [http://fr.rs-online.com/web/p/resistances-cms/2132418/] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
1 MOhm,  [http://fr.rs-online.com/web/p/resistances-cms/6789932/] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Résistance de shunt: 0.004 Ohm [http://fr.rs-online.com/web/p/resistances-cms/8665374/],&amp;lt;br /&amp;gt;&lt;br /&gt;
Leds rouge CMS x12, [http://fr.farnell.com/rohm/sml-310vtt86l/led-0603-rouge/dp/1685064] ,&amp;lt;br /&amp;gt;&lt;br /&gt;
Bornier [http://fr.farnell.com/camdenboss/ctb0308-2/bornier-2-voies/dp/3882652]&amp;lt;br /&amp;gt;&lt;br /&gt;
Transformateur VTX-214 001 103 [http://fr.farnell.com/vigortronix/vtx-214-001-103/conv-ac-dc-fixe-1-o-p-1w-3-3v/dp/2401019],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Adaptateur USB [02/02/2016].&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P43.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[Le marteau de Thor]]&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un arduino UNO [27/01/2016]&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
un lecteur d'empreintes digitales : Mouser [http://www.mouser.fr/ProductDetail/MikroElektronika/MIKROE-1722/?qs=GJ%2F2ZGcr5uOW3uiL4M9shA%3D%3D], &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un shield NFC [27/01/2016] &amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un téléphone sous Androïd [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un capteur de pression [03/02/2016],&amp;lt;/span&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un électro aimant [25/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&lt;br /&gt;
Une alimentation électroaimant (labo 24V), &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Une alimentation arduino [27/01/2016]&amp;lt;/span&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
‎Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P44.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[Orchestre électronique]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Alimentation PC [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Lecteurs de disquette (x2) [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Lecteur CD (x1) [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Disques durs (x3) [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Scanner [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 + alimentation + FTDI [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Cables GPIO femelle [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Cable Alimentation PC [27/01/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Buffers 3 états (Farnell) [http://fr.farnell.com/fairchild-semiconductor/nc7sp126p5x/buffer-single-tri-state-sc-70/dp/2453002]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Imprimantes [01/02/2016]&amp;lt;/span&amp;gt;, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Clavier MIDI [http://www.thomann.de/fr/m_audio_keystation_mini_32_mk2.htm?gclid=Cj0KEQiAoby1BRDA-fPXtITt3f0BEiQAPCkqQQKdntNWLwKu92GOUp2gHXfTCj5t0WB9LWyZjAaAZUkaAmDV8P8HAQ]&amp;lt;/span&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
‎Récapitulatif électronique [[Fichier:CommandeElectronique-2015-P45.ods]].&lt;br /&gt;
|-&lt;br /&gt;
| P47 [[Commande d'une suspension magnétique]]&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Logiciel Matlab simulink et la suspension magnétique Didastel. &amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==  Notes sur les projets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Mini-cahier des charges || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[Commande USB par micro-contrôleur]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:red;&amp;quot;&amp;gt;Vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Train de véhicules]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct, bien rédigé, illustré, un schéma intéressant, le sujet est compris. Une liste du matériel nécessaire, précise et raisonnable.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P5 [[Imprimante 3D à chocolat]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Très bon cahier des charges, bien rédigé, illustré, bonne synthèse du travail à effectuer. Le matériel nécessaire est listé mais sans référence précise.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange;&amp;quot;&amp;gt;Il n'est pas évident que ce matériel soit d'un coût raisonnable.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Zone de sécurité pour vélo]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Synthèse d'une réunion interne. Liste précise du matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P7 [[Journée IMA]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un cahier des charges finalement correct fin décembre.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P9 [[Tableau blanc interactif]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct, le projet semble être spécifié. Une rencontre avec l'encadrant. Attention tout de même au coté très ouvert du sujet. Un embryon de liste de matériel. Il faut donner des références pour la caméra par exemple.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Réseau de capteurs longue distance]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:yellowgreen&amp;quot;&amp;gt;Quelques coquilles de rédaction. Le sujet est décrit mais on pourrait souhaiter plus de détail. Une illustration.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange&amp;quot;&amp;gt;Quelques mention du matériel mais pas de liste.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Robots mobiles pour Arduino]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;Un cahier des charges finalement très correct.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange&amp;quot;&amp;gt;Pas de liste précise du matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P16 [[Miroir intelligent]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct même si on pourrait demander des précisions sur les retouches à apporter à l'image. Correctement rédigé, un effort de mise en forme. Une liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Robot autonome pour cartographie]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Attention à bien identifier des tâches à réaliser ne dépendant pas du projet des CM5. Préciser ce système de tags pour calibrer la position du robot. Une liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Matelas connecté]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Bel effort de présentation d'un cahier des charges pour un sujet très &amp;quot;ouvert&amp;quot;. Rédaction très correcte. Une inquiétude sur la possibilité d'obtenir le matériel. Merci de mettre à jour le cahier des charges après la rencontre avec l'industriel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P27 [[BIOLOID commandé par Arduino]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:yellowgreen;&amp;quot;&amp;gt;Les grandes lignes sont définies. Quand vous parlez de commander le robot sans logiciel vous voulez dire commander le robot sans logiciel propriétaire ? Le cahier des charges est un peu court. Préciser l'environnement de développement C des Bioloid et l'interface entre l'Arduino et les servos-moteurs.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P28 [[Imprimante 3D multi-fils]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Le cahier des charges est correct, vous avez contacté votre encadrant. Précisez que la solution de soudure de segments de filaments vient de vos encadrants ? Etablissez une liste du matériel nécessaire.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P29 [[Aide anti-gaspillage alimentaire]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:red;&amp;quot;&amp;gt;Pas de différence notable avec le sujet initial. Un doute sur l'intérêt d'un portable pour la lecture des étiquettes. Un autre doute sur la possibilité de cette lecture. La date d'expiration est généralement difficile à trouver et mal imprimée, quelles solutions envisagez-vous ? Aucune modication entre le 3 décembre et fin janvier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Micro-robots auto-organisés]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Une bonne description du projet et du but à atteindre. Un doute sur les moteurs choisis (non commandable par l'université d'ailleurs) : ce sont des moteurs très rapides. Des réflexions avancées sur le matériel. Il reste à trouver des références exploitables.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P32 [[Veilleuse enfant connecté]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct. Bien rédigé. Clairement le projet a été bien appréhendé. Une liste du matériel avec des références.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Jeu de plateforme tangible]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Enfin un cahier des charges à peu près correct fin janvier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interface de communication entre robots]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Quelques coquilles manque de formatage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P38 [[Hydroponie]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un cahier des charges finalisé très tardivement fin janvier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P39 [[Dirigeable publicitaire]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct. Pour l'hélium il faudrait contacter le fournisseur de l'université pour un devis. Vous pouvez commencer à concevoir la nacelle avec les hélices. Il faut aussi trouver des références pour la liste du matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P41 [[Drone et occulus rift]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un Wiki illustré et formaté correctement. Toujours aucune précision sur la connexion entre l'occulus rift et le drone.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P42 [[Mini-drones]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Un effort d'illustration avec un schéma. Vous pouvez commencer à manipuler le SDK des mini-drônes, ces derniers sont disponibles en E306.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P43 [[SmartMeter, gestion de consommation électrique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:orange;&amp;quot;&amp;gt;Bel effort de Wiki vu le retard pris pour la rédaction du cahier des charges. Je pense qu'il y a une confusion sur la signification de &amp;quot;puissance effective&amp;quot;. Mettre à jour le Wiki après entretien avec Guillaume Renault. Au 27 janvier toujours en attente d'une réelle étude du sujet.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P44 [[Le marteau de Thor]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Projet enfin attaqué fin décembre. Un vrai cahier des charges, très correct.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P45 [[Orchestre électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Projet correctement appréhendé. Le cahier des charges est précisé dans ses grandes lignes. Une partie sur les instruments reste à affiner mais c'est normal. Essayez de trouver une référence pour les dispositifs MIDI à connecter à la RaspBerry Pi. Ces dispositifs sont fondamentaux pour lancer le projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P47 [[Commande d'une suspension magnétique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un cahier des charges enfin correct le 4 janvier 2016.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange;&amp;quot;&amp;gt;Pourriez-vous mettre en perspective votre projet par rapport à celui de 2012/2013 [[Suspension_magnétique_2013]] ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA4_SC_%26_SA_2015/2016&amp;diff=25837</id>
		<title>Projets IMA4 SC &amp; SA 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA4_SC_%26_SA_2015/2016&amp;diff=25837"/>
				<updated>2016-02-01T13:34:39Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Matériel à acquérir */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en demandant une modification du format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
Toutes les sources doivent être déposées sur notre archive GIT. Le service est disponible à l'URL [https://archives.plil.fr archives.plil.fr]. Connectez-vous avec vos identifiants Polytech'Lille. Sauf indication contraire de vos encadrants, rendez le projet public et mettez le lien sur votre Wiki. Vous pouvez trouver de la documentation sur ce système d'archives sur ce [https://git-scm.com/book/fr/v1 site].&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Encadrants école !! Elèves&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[Commande USB par micro-contrôleur]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Arnaud DESHAYS&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Train de véhicules]]&lt;br /&gt;
| Xavier Redon &lt;br /&gt;
| Manuel BUENO / Maureen GILLET&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[Imprimante 3D à chocolat]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé &lt;br /&gt;
| Hugo VANDENBUNDER / Sylvain VERDONCK&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Zone de sécurité pour vélo]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Martin CLAVERIE / Victor CHARNET&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[Journée IMA]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé&lt;br /&gt;
| Michel MIKHAEL&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[Tableau blanc interactif]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Romuald LENTIEUL / Léo MAZIER&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Réseau de capteurs longue distance]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Sonia NDUWAYO / Cong CHEN&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Robots mobiles pour Arduino]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé&lt;br /&gt;
| Audrey AFFOYON / Leticia STEPHANES LIMA&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[Miroir intelligent]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Valentin BEAUCHAMP / Guillaume VILLEMONT&lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Robot autonome pour cartographie]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Pierre MICHEL / Alexandre DESCAMD&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Matelas connecté]]&lt;br /&gt;
| Nathalie Rolland / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Vincent ROBIC / Morgan OBEISSART&lt;br /&gt;
|-&lt;br /&gt;
| P27 [[BIOLOID commandé par Arduino]]&lt;br /&gt;
| Blaise Conrard&lt;br /&gt;
| Quentin GRUSON / Jordan RAZAFINDRAIBE&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[Imprimante 3D multi-fils]]&lt;br /&gt;
| Antoine Urquizar / Alexandre Boé&lt;br /&gt;
| Antonin CLAUS / Cédric DUVAL&lt;br /&gt;
|-&lt;br /&gt;
| P29 [[Aide anti-gaspillage alimentaire]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Florian GIOVANNANGELI / Pierre FITOUSSI&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Micro-robots auto-organisés]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon&lt;br /&gt;
| Corentin CASIER / Julie DEBOCK&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[Veilleuse enfant connecté]]&lt;br /&gt;
| Thomas Vantroys&lt;br /&gt;
| Romain RUET / Julien BIELLE&lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Jeu de plateforme tangible]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Stéphane MAIA / Maxime SZWECHOWIEZ&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interface de communication entre robots]]&lt;br /&gt;
| Rochdi Merzouki&lt;br /&gt;
| Vianney PAYELLE&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[Hydroponie]]&lt;br /&gt;
| Alexandre Boé&lt;br /&gt;
| Nicolas WEGRZYN&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[Dirigeable publicitaire]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Julien JOIGNAUX / Loïc DELECROIX&lt;br /&gt;
|-&lt;br /&gt;
| P41 [[Drone et occulus rift]]&lt;br /&gt;
| Jérémie Dequidt &lt;br /&gt;
| Geoffrey PIEKACZ / Nathan RICHEZ&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[Mini-drones]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Valentin TAFFIN / Alexandre CUADROS&lt;br /&gt;
|-&lt;br /&gt;
| P43 [[SmartMeter, gestion de consommation électrique]]&lt;br /&gt;
| Guillaume Renault / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Haroun ABDELALI&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[Le marteau de Thor]]&lt;br /&gt;
| Emanuelle Pichonat&lt;br /&gt;
| Matthieu HERWEGH / Kevin LE VAN PHUNG&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[Orchestre électronique]]&lt;br /&gt;
| Lucas Prieux / Xavier Redon / Thomas Vantroys	&lt;br /&gt;
| Thomas ROJ / Joshua LETELLIER&lt;br /&gt;
|-&lt;br /&gt;
| P47 [[Commande d'une suspension magnétique]]&lt;br /&gt;
| Aziz Nakrachi&lt;br /&gt;
| Hongyu ZHANG / Weixing JIN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel à acquérir ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Matériel&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[Commande USB par micro-contrôleur]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Train de véhicules]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P5 [[Imprimante 3D à chocolat]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Zone de sécurité pour vélo]]&lt;br /&gt;
| Module Laser ligne (x3), Apinex [https://www.apinex.com/det/LN60-650.html],&amp;lt;br/&amp;gt; Raspberry Pi 2,&amp;lt;br/&amp;gt; Module caméra pour Raspberry Pi,RS, [http://fr.rs-online.com/web/p/modules-videos/7757731/]&amp;lt;br/&amp;gt; Dongle Bluetooth, RS, [http://fr.rs-online.com/web/p/modules-bluetooth/8077742/]&amp;lt;br/&amp;gt;Batteries(Accus)(x2),Gotronic,[http://projets-imasc.plil.net/mediawiki/index.php?title=Zone_de_s%C3%A9curit%C3%A9_pour_v%C3%A9lo]&amp;lt;br&amp;gt;Embase à connecteur USB femelle (x4), Gotronic [http://www.gotronic.fr/art-embase-a-connecteur-usb-femelle-21540.htm],&amp;lt;br/&amp;gt; Cordon USB mâle-mâle (x2), Gotronic [http://www.gotronic.fr/art-cordon-2-m-cw092b-15248.htm],&amp;lt;br/&amp;gt; Dynamo, Mouser [http://www.mouser.fr/ProductDetail/Seeed-Studio/108990013/?qs=%2fha2pyFaduhjG6TP7uGQ3FsI8UZXfwBpSryxi2JNL0E%3d],&amp;lt;br/&amp;gt; Téléphone sous Android,&amp;lt;br/&amp;gt;Capteur de distance (ultrasons),Gotronic [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&amp;lt;br&amp;gt;LED rouge (x20)&amp;lt;br&amp;gt;LED orange (x10)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[Journée IMA]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P9 [[Tableau blanc interactif]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Manette Wiimote [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt; Vidéo projecteur,&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Adaptateur Bluetooth USB [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Led infrarouge [27/01/2016]&amp;lt;/span&amp;gt;. &lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Réseau de capteurs longue distance]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Robots mobiles pour Arduino]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P16 [[Miroir intelligent]]&lt;br /&gt;
|  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Clé WiFi [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Câble USB-microUSB [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Carte SD [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt; Câble HDMI,&amp;lt;br /&amp;gt; Ecran : Amazon [http://www.amazon.fr/BenQ-Ecran-PC-LED-27/dp/B00HZF2ME0/ref=sr_1_1?ie=UTF8&amp;amp;qid=1451984469&amp;amp;sr=8-1&amp;amp;keywords=BenQ+GL2760H#productDetails] ou RS [http://fr.rs-online.com/web/p/moniteurs/8962732/],&amp;lt;br/&amp;gt; Miroir sans tain de la taille de l'écran, tapplastics [http://www.tapplastics.com/product/plastics/cut_to_size_plastic/two_way_mirrored_acrylic/558],&amp;lt;br/&amp;gt; webcam RS [http://fr.rs-online.com/web/p/webcams/8801426/].&lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Robot autonome pour cartographie]]&lt;br /&gt;
| Raspberry Pi 2,&amp;lt;br /&amp;gt;Arduino UNO,&amp;lt;br /&amp;gt;Clef wifi pour mesure RSSI,&amp;lt;br /&amp;gt;Capteur ultrason, Gotronic:[http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm],&amp;lt;br /&amp;gt;Servomoteurs, Gotronic:[http://www.gotronic.fr/art-servomoteur-s05nf-21481.htm],&amp;lt;br /&amp;gt;Pilote de moteur, Gotronic:[http://www.gotronic.fr/art-l293d-14072.htm],&amp;lt;br /&amp;gt;Batterie.&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Matelas connecté]]&lt;br /&gt;
|  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Neopixel [disponible à l'école]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;RFduino [disponible à l'école]&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Capteur de température [disponible à l'école]&amp;lt;/span&amp;gt;. &lt;br /&gt;
|-&lt;br /&gt;
| P27 [[BIOLOID commandé par Arduino]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P28 [[Imprimante 3D multi-fils]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P29 [[Aide anti-gaspillage alimentaire]]&lt;br /&gt;
| Un Smartphone sous Android &amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Micro-robots auto-organisés]]&lt;br /&gt;
| Un microcontroleur Atmega 328P x1 (farnell) [http://fr.farnell.com/atmel/atmega328p-pu/micro-8-bits-avr-32k-flash-28pdip/dp/1715487],&amp;lt;br/&amp;gt;Embase pour le microcontroleur x1 (farnell) [http://fr.farnell.com/mill-max/110-99-328-41-001000/dip-socket-28-position-through/dp/1924174],&amp;lt;br\&amp;gt; Moteur vibreur x2 (mouser) [http://www.mouser.fr/ProductDetail/Parallax/28821/?qs=sGAEpiMZZMsv3%2fxVbQiciD2XahQ7lqLvcbiE4XVIbwo%3d],&amp;lt;br\&amp;gt; Batterie lithium ion x1 (farnell) [http://fr.farnell.com/bak/103456a-1s-3m/batterie-lithium-ion-3-7v-2050/dp/2401856], &amp;lt;br\&amp;gt;Chargeur de batterie lithium ion x1 (farnell) [http://fr.farnell.com/texas-instruments/lm3658sd-a/chargeur-de-batterie-li-ion-usb/dp/1312585],&amp;lt;br\&amp;gt; Régulateur de tension x2 (farnell) [http://fr.farnell.com/torex/xc6221b302mr/ldo-3-0v-high-speed-low-noise/dp/1454271?ost=XC6221B302MR-G+&amp;amp;categoryIdBox=&amp;amp;selectedCategoryId=&amp;amp;categoryName=Toutes+les+cat%C3%A9gories&amp;amp;categoryNameResp=Toutes+les+cat%C3%A9gories],&amp;lt;br\&amp;gt; Mini usb connecteur x1(farnell) [http://fr.farnell.com/mill-max/896-43-005-00-100001/mini-usb-2-0-type-a-receptacle/dp/1925238],&amp;lt;br\&amp;gt; Photo transistor X8 (farnell) [http://fr.farnell.com/fairchild-semiconductor/qse113/detecteur-infrarouge/dp/1021147?ost=phototransistor+infrarouge&amp;amp;selectedCategoryId=&amp;amp;categoryId=700000006140],&amp;lt;br\&amp;gt;LED infrarouge x4 (farnell) [http://fr.farnell.com/kingbright/l-934f3c/emetteur-ir-t-1/dp/2290438],&amp;lt;br\&amp;gt; LED verte x1, &amp;lt;br\&amp;gt; LED rouge x2, &amp;lt;br\&amp;gt; LED bleu x1 &amp;lt;br\n&amp;gt;Interrupteur x1, &amp;lt;br\n&amp;gt;Transistor NPN x2 (farnell) [http://fr.farnell.com/fairchild-semiconductor/ksc945gta/transistor-bipol-npn-50v-to-92/dp/2453961], &amp;lt;br\n&amp;gt;Diode x2 (farnell) [http://fr.farnell.com/multicomp/1n4148/diode-rapide-boitier-do-35/dp/9565124],&amp;lt;br\&amp;gt; convertisseur USB/isp (en stock à l'école ?)&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[Veilleuse enfant connecté]]&lt;br /&gt;
| Raspberry Pi 2,&amp;lt;br /&amp;gt;Clé WiFi Wi-Pi,&amp;lt;br /&amp;gt;Câble USB-microUSB,&amp;lt;br /&amp;gt;Carte SD,&amp;lt;br/&amp;gt; Câble HDMI,&amp;lt;br /&amp;gt;Pico-projecteur ASUS S1,&amp;lt;br /&amp;gt;Petit microphone,&amp;lt;br /&amp;gt;Petit haut-parleur,&amp;lt;br /&amp;gt;LEDS (nombre inconnu pour l'instant),&amp;lt;br /&amp;gt;Un capteur de température.&lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Jeu de plateforme tangible]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interface de communication entre robots]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P38 [[Hydroponie]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P39 [[Dirigeable publicitaire]]&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un arduino UNO [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Une enveloppe imperméable[27/01/2016] (A VERIFIER)&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
5 m3 d'hélium (devis en attente),Air Liquide[27/01/2016],&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Accessoires de drone HS (hélices, moteurs) [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
10 x Capteurs à ultrasons, Gotronic, [http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm],&amp;lt;br /&amp;gt;&lt;br /&gt;
Alim ARDUINO 5V 5000mAh, RS, [http://fr.rs-online.com/web/p/batteries-externes/7757508/],&amp;lt;br /&amp;gt;&lt;br /&gt;
OU Alim ARDUINO 5V 2200mAh, RS, [http://fr.rs-online.com/web/p/batteries-externes/7757504/],&amp;lt;br /&amp;gt;&lt;br /&gt;
Alim pour 3 moteurs, Mouser, [http://www.mouser.fr/ProductDetail/Panasonic-Battery/LC-R127R2P/?qs=sGAEpiMZZMuXcNZ31nzYhaSsneKiWkB%2fo4ryjNfUHro%3d].&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P41 [[Drone et occulus rift]]&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Une plaque à essai pour nos tests [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;fils mâle/mâle x10 [01/02/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt;&lt;br /&gt;
2 caméras 800*600 (à venir),&amp;lt;br /&amp;gt;&lt;br /&gt;
Une batterie (alimentation raspberry à venir),&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Servo-moteur 180° [01/02/2016, achat personnel]&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[Mini-drones]]&lt;br /&gt;
&lt;br /&gt;
Minidrones Parrot : JUMPING SUMO et ROLLING SPIDER&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P43 [[SmartMeter, gestion de consommation électrique]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P44 [[Le marteau de Thor]]&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un arduino UNO [27/01/2016]&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
un lecteur d'empreintes digitales : Mouser [http://www.mouser.fr/ProductDetail/MikroElektronika/MIKROE-1722/?qs=GJ%2F2ZGcr5uOW3uiL4M9shA%3D%3D] &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un shield NFC [27/01/2016] &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un téléphone sous Androïd [27/01/2016]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Un capteur de pression &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Un électro aimant [25/01/2016]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Une alimentation électroaimant (12V) &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Une alimentation arduino [27/01/2016]&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| P45 [[Orchestre électronique]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Alimentation PC [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Lecteurs de disquette (x2) [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Lecteur CD (x1) [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Disques durs (x3) [27/01/2016]&amp;lt;/span&amp;gt;,&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Scanner&amp;lt;/span&amp;gt;,&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 2 + alimentation + FTDI [27/01/2016]&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Cables GPIO femelle [27/01/2016] &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Cable Alimentation PC [27/01/2016]&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;Buffers 3 états (Farnell) [http://fr.farnell.com/fairchild-semiconductor/nc7sp126p5x/buffer-single-tri-state-sc-70/dp/2453002]&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P47 [[Commande d'une suspension magnétique]]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==  Notes sur les projets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Mini-cahier des charges || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[Commande USB par micro-contrôleur]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:red;&amp;quot;&amp;gt;Vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Train de véhicules]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct, bien rédigé, illustré, un schéma intéressant, le sujet est compris. Une liste du matériel nécessaire, précise et raisonnable.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P5 [[Imprimante 3D à chocolat]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Très bon cahier des charges, bien rédigé, illustré, bonne synthèse du travail à effectuer. Le matériel nécessaire est listé mais sans référence précise.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange;&amp;quot;&amp;gt;Il n'est pas évident que ce matériel soit d'un coût raisonnable.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Zone de sécurité pour vélo]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Synthèse d'une réunion interne. Liste précise du matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P7 [[Journée IMA]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un cahier des charges finalement correct fin décembre.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P9 [[Tableau blanc interactif]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct, le projet semble être spécifié. Une rencontre avec l'encadrant. Attention tout de même au coté très ouvert du sujet. Un embryon de liste de matériel. Il faut donner des références pour la caméra par exemple.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Réseau de capteurs longue distance]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:yellowgreen&amp;quot;&amp;gt;Quelques coquilles de rédaction. Le sujet est décrit mais on pourrait souhaiter plus de détail. Une illustration.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange&amp;quot;&amp;gt;Quelques mention du matériel mais pas de liste.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Robots mobiles pour Arduino]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;Un cahier des charges finalement très correct.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color:orange&amp;quot;&amp;gt;Pas de liste précise du matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P16 [[Miroir intelligent]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct même si on pourrait demander des précisions sur les retouches à apporter à l'image. Correctement rédigé, un effort de mise en forme. Une liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Robot autonome pour cartographie]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Attention à bien identifier des tâches à réaliser ne dépendant pas du projet des CM5. Préciser ce système de tags pour calibrer la position du robot. Une liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Matelas connecté]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Bel effort de présentation d'un cahier des charges pour un sujet très &amp;quot;ouvert&amp;quot;. Rédaction très correcte. Une inquiétude sur la possibilité d'obtenir le matériel. Merci de mettre à jour le cahier des charges après la rencontre avec l'industriel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P27 [[BIOLOID commandé par Arduino]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:yellowgreen;&amp;quot;&amp;gt;Les grandes lignes sont définies. Quand vous parlez de commander le robot sans logiciel vous voulez dire commander le robot sans logiciel propriétaire ? Le cahier des charges est un peu court. Préciser l'environnement de développement C des Bioloid et l'interface entre l'Arduino et les servos-moteurs.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P28 [[Imprimante 3D multi-fils]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Le cahier des charges est correct, vous avez contacté votre encadrant. Précisez que la solution de soudure de segments de filaments vient de vos encadrants ? Etablissez une liste du matériel nécessaire.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P29 [[Aide anti-gaspillage alimentaire]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:red;&amp;quot;&amp;gt;Pas de différence notable avec le sujet initial. Un doute sur l'intérêt d'un portable pour la lecture des étiquettes. Un autre doute sur la possibilité de cette lecture. La date d'expiration est généralement difficile à trouver et mal imprimée, quelles solutions envisagez-vous ? Aucune modication entre le 3 décembre et fin janvier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Micro-robots auto-organisés]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Une bonne description du projet et du but à atteindre. Un doute sur les moteurs choisis (non commandable par l'université d'ailleurs) : ce sont des moteurs très rapides. Des réflexions avancées sur le matériel. Il reste à trouver des références exploitables.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P32 [[Veilleuse enfant connecté]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct. Bien rédigé. Clairement le projet a été bien appréhendé. Une liste du matériel avec des références.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Jeu de plateforme tangible]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Enfin un cahier des charges à peu près correct fin janvier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interface de communication entre robots]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Quelques coquilles manque de formatage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P38 [[Hydroponie]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un cahier des charges finalisé très tardivement fin janvier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P39 [[Dirigeable publicitaire]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges très correct. Pour l'hélium il faudrait contacter le fournisseur de l'université pour un devis. Vous pouvez commencer à concevoir la nacelle avec les hélices. Il faut aussi trouver des références pour la liste du matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P41 [[Drone et occulus rift]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Un Wiki illustré et formaté correctement. Toujours aucune précision sur la connexion entre l'occulus rift et le drone.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P42 [[Mini-drones]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Cahier des charges correct. Un effort d'illustration avec un schéma. Vous pouvez commencer à manipuler le SDK des mini-drônes, ces derniers sont disponibles en E306.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P43 [[SmartMeter, gestion de consommation électrique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:orange;&amp;quot;&amp;gt;Bel effort de Wiki vu le retard pris pour la rédaction du cahier des charges. Je pense qu'il y a une confusion sur la signification de &amp;quot;puissance effective&amp;quot;. Mettre à jour le Wiki après entretien avec Guillaume Renault. Au 27 janvier toujours en attente d'une réelle étude du sujet.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P44 [[Le marteau de Thor]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:lightgreen;&amp;quot;&amp;gt;Projet enfin attaqué fin décembre. Un vrai cahier des charges, très correct.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P45 [[Orchestre électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:green;&amp;quot;&amp;gt;Projet correctement appréhendé. Le cahier des charges est précisé dans ses grandes lignes. Une partie sur les instruments reste à affiner mais c'est normal. Essayez de trouver une référence pour les dispositifs MIDI à connecter à la RaspBerry Pi. Ces dispositifs sont fondamentaux pour lancer le projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P47 [[Commande d'une suspension magnétique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color:red;&amp;quot;&amp;gt;Le cahier des charges est plutôt imprécis. Pourriez-vous mettre en perspective votre projet par rapport à celui de 2012/2013 [[Suspension_magnétique_2013]] ? Wiki toujours vide le 27 janvier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=23933</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=23933"/>
				<updated>2015-12-03T18:46:17Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. Se localiser précisément à l'intérieur d'un bâtiment n'est pas une tâche facile et répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire.      &lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tous les systèmes pouvant interférer le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
&lt;br /&gt;
Ainsi, le robot devra être capable de se déplacer librement dans son environnement tout en détectant et contournant les obstacles qui se présentent à lui. &lt;br /&gt;
A chacune de ses positions, le robot devra faire des relevés d'intensité du signal Wifi reçu (RSSI) grâce à un bras vertical qui permettra d'établir une carte 3D. La position du robot devant être connue à chaque instant, un calibrage régulier grâce à une lecture par tag se devra donc d'être implantée.&lt;br /&gt;
&lt;br /&gt;
La partie mécanique du robot ne relève pas de notre projet. Celle ci est en cours d'étude par des élèves de CM5. Nous devons alors entrer en contact avec eux afin de faire correspondre leurs objectifs avec les nôtres.  &lt;br /&gt;
   &lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
(à définir plus précisément par le futur)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous utiliserons le matériel suivant :&amp;lt;br&amp;gt;&lt;br /&gt;
-une platine mécanique dotée de capteurs en tout genre (sonar, ...) pour le repérage et l'évitement des obstacles.&amp;lt;br&amp;gt;&lt;br /&gt;
-une carte Arduino pour le contrôle des moteurs et capteurs.&amp;lt;br&amp;gt;&lt;br /&gt;
-une raspberry pour récupérer les mesures RSSI, gérer ces données, et faire la reconnaissance des tags visuels.&amp;lt;br&amp;gt;&lt;br /&gt;
-une liaison série (entre la raspberry et l'arduino) pour la communication (gestion des ordres et des données).&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;br /&gt;
&lt;br /&gt;
Semaine 1-2: Recherches bibliographiques et élaboration du cahier des charges.&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 2-3:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 3-4:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 4-5:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 5-6:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 6-7:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 7-8:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 8-9:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 9-10:&amp;lt;br&amp;gt;&lt;br /&gt;
Semaine 10-11: Réalisation de la vidéo.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=23799</id>
		<title>Robot autonome pour cartographie</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Robot_autonome_pour_cartographie&amp;diff=23799"/>
				<updated>2015-12-02T20:26:47Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cahier des charges=&lt;br /&gt;
==Présentation générale ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
&lt;br /&gt;
De nos jours, la localisation indoor est devenu un enjeu important. Se localiser précisément à l'intérieur d'un bâtiment n'est pas une tâche facile et répond à de nombreuses applications relevant du domaine de la santé, afin de mesurer l'exposition à certaines ondes par exemple, ou encore du militaire.      &lt;br /&gt;
&lt;br /&gt;
===Objectifs=== &lt;br /&gt;
&lt;br /&gt;
Notre projet a pour but de développer un robot pouvant établir une cartographie électromagnétique d'un signal Wifi à l'intérieur d'un bâtiment. Cela permettra par la suite à un utilisateur de pouvoir se localiser en comparant le signal qu'il reçoit avec celui établit dans la base de données de la cartographie. &lt;br /&gt;
&lt;br /&gt;
===Description du projet===&lt;br /&gt;
&lt;br /&gt;
La cartographie Wifi d'un bâtiment n'est pas fixe puisqu'elle dépend des modifications apportées en terme d'ajout, de retrait ou de déplacement de bornes wifi mais également du mobilier ou de tout les systèmes pouvant interférer le signal, il faut ainsi pouvoir concevoir un robot parfaitement autonome, que ce soit énergétiquement mais également du point de vue de son déplacement et de la récupération des données. &lt;br /&gt;
   &lt;br /&gt;
===Matériels utilisés===&lt;br /&gt;
&lt;br /&gt;
==Planning prévisionnel==&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2014/2015,_TD1&amp;diff=18691</id>
		<title>Gestion afficheurs, 2014/2015, TD1</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2014/2015,_TD1&amp;diff=18691"/>
				<updated>2015-03-13T11:05:32Z</updated>
		
		<summary type="html">&lt;p&gt;Adescamd : /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Présentation ''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de réaliser un circuit de décodage pour des afficheurs 16 segments connectés à la Nanoboard. Nous devons également créer un programme, permettant de faire défiler un message sur ces afficheurs, à l'aide de la Foxboard.&lt;br /&gt;
&lt;br /&gt;
== '''Partie informatique''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On doit réaliser une page html qui demande une chaîne de caractère à renvoyer sur quatre afficheurs 16 segments. Les caractères transmis devront pouvoir défiler sur les différents afficheurs, et l'utilisateur devra être en mesure de contrôler la vitesse de défilement. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''' Première séance :'' Découverte du projet '' ''' ===&lt;br /&gt;
&lt;br /&gt;
On a d'abord commencé a se familiariser avec le projet, les codes fournis et a créer le code c permettant le décodage et l'affichage des caractères sur les afficheurs.&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier les codes fournis et par la suite les adaptation à notre application.&lt;br /&gt;
&lt;br /&gt;
Ensuite, la recherche de la correspondance entre chaque segments d'un afficheur et le code binaire (ou hexadecimal) rentré occupa notre temps.   &lt;br /&gt;
&lt;br /&gt;
Et enfin, nous avons élaborer les différents chiffres, lettres et quelques caractères en fonction des mots binaires envoyés. Nous avons donc établit tout l'alphabet, en concordant majuscule et minuscule.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''  Deuxième séance : '' Codage C '' ''' ===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes attardés dans un premier temps à la mise en place de la fonction ci dessous. Celle ci vise à mettre en concordance les mots binaires ( ou hexadécimaux ) représentant les caractères sur les afficheurs, élaborés dans le code c, avec la chaîne de caractère que l'utilisateur souhaite afficher. A ce stade, l'utilisateur rentre ce qu'il veut afficher dans le terminal.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons créer un fichier .txt, où l'utilisateur inscrit ce qu'il veut afficher et le code c traduit comme précédemment. &lt;br /&gt;
&lt;br /&gt;
Nous avons installé le serveur Websocket et les modules complémentaires, il ne reste qu'à le lier avec notre code c pour pouvoir le rendre opérationnel.&lt;br /&gt;
&lt;br /&gt;
=== ''' Troisième séance : Correction des bugs et Foxboard ''' ===&lt;br /&gt;
&lt;br /&gt;
Pour cette dernière séance, nous avons dans un premier temps compléter et corriger les erreurs de nos codes c afin de rendre notre application opérationnelle. Nous remercions par ailleurs Monsieur Redon pour son aide non négligeable qui nous a permis d'avancer dans nos travaux.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite mis en place la page html permettant pour l'utilisateur de rentrer le message qu'il souhaite afficher sur les afficheurs et également lui permettant de contrôler la vitesse de défilement par le biais de deux cases '+' et '-'.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous nous sommes penchés sur le serveur Websocket une dernière fois afin de le rendre fonctionnel pour notre application. C'est à dire que l'écriture du message à afficher et des caractères '+' et '-' sont traduits respectivement par ce qu'ils correspondent, donc soit en message soit en informations de vitesse de défilement.&lt;br /&gt;
&lt;br /&gt;
-Concernant le message, celui-ci est envoyé dans un fichier nommé test.txt et est lu par le programme.c qui gère l'affichage sur les afficheurs.&lt;br /&gt;
&lt;br /&gt;
-Concernant la vitesse de défilement, elle est directement transmise du serveur au programme.c qui modifie donc la variable globale relative à la vitesse.&lt;br /&gt;
&lt;br /&gt;
'''Foxboard'''&lt;br /&gt;
&lt;br /&gt;
Au niveau de la Foxboard, nous avons du la configurer en installant une adresse IP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients des limites de notre programme. En effet, celui-ci ne gère pas totalement les requêtes de moins de 8 caractères, c'est à dire que le message est tout de même affiché mais que les afficheurs qui ne devraient comporter aucun caractère sont remplis de caractères absurdes.&lt;br /&gt;
De plus, la vitesse de défilement ne peut être modifiée qu'à la fin du défilement de la requête. En d'autres mots, la modification de vitesse de défilement n'est pas instantanée.&lt;br /&gt;
&lt;br /&gt;
== '''Partie électronique''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''  Première séance :'' Découverte du projet '' ''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour débuter ce projet, nous ne savions pas par où commencer. Nous avons donc étudié en détails le sujet afin de définir précisément ce que l'on attendait de nous. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons essayé de retranscrire le plus méticuleusement possible la consigne, en définissant un cahier des charges. &lt;br /&gt;
&lt;br /&gt;
Au niveau électronique, on nous demandait d'afficher 4 octets, présents en entrée, sur 4 afficheurs 16 segments. De plus, l'entrée devait disposer d'un bit autorisant la lecture, tandis que la sortie pourrait sélectionner lequel des afficheurs fonctionnerait.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également pris connaissance des travaux des élèves des années précédentes. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etant donné que par la suite nous devions utilisé le logiciel Altium pour effectuer le circuit, nous avons suivi le tutoriel proposé. &lt;br /&gt;
On a pu découvrir les différentes bibliothèques qui contenaient les bascules, les clocks, les compteurs et d'autres outils majeurs, utiles à la résolution de nos problèmes. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis nous nous sommes renseignés sur le fonctionnement de la Nanoboard et des afficheurs 16 segments grâce aux datasheets proposées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons défini les principaux éléments pour réaliser ce montage :&lt;br /&gt;
&lt;br /&gt;
- Des bascules D pour mémoriser le message. &lt;br /&gt;
&lt;br /&gt;
- Des multiplexeurs et démultiplexeurs pour isoler chaque bit du message.&lt;br /&gt;
&lt;br /&gt;
- Des compteurs pour autoriser l'enregistrement du message dans chaque bascule.&lt;br /&gt;
&lt;br /&gt;
- Un décodeur pour sélectionner les afficheurs qui doivent fonctionner.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons fini cette séance en réalisant une ébauche du montage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ebauche.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''' Deuxième séance :'' Schéma Altium'' ''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lors de la deuxième séance, notre objectif était de réaliser et finaliser notre montage.&lt;br /&gt;
&lt;br /&gt;
Le circuit peut se décomposer en deux parties : la mémorisation et l'affichage.&lt;br /&gt;
&lt;br /&gt;
La partie mémorisation est constituée d'un démultiplexeur qui isole chaque bit du message d'entrée, les dirigeant dans 4 bascules qui enregistreront ces données. &lt;br /&gt;
Un compteur nous permet d'autoriser ou non l'enregistrement des données dans les registres.&lt;br /&gt;
&lt;br /&gt;
La partie affichage récupère les données des registres par un multiplexeur qui reforme le message complet. Le message arrive alors au niveau des afficheurs 16 segments.&lt;br /&gt;
Un décodeur, muni d'un compteur et d'une clock, nous permet de sélectionner (tour à tour) lequel des quatre afficheurs va fonctionner. Ainsi chaque afficheur va pouvoir, tour à tour, afficher le contenu d'un registre, permettant ainsi de faire &amp;quot;défiler le message&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:circuitfinal.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lors de la réalisation du circuit, nous avons rencontré quelques légers problèmes. &lt;br /&gt;
&lt;br /&gt;
Tout d'abord il fallait bien faire correspondre la valeur de la taille de chaque bus de donnés en sortie et en entrée. Il était impératif de faire correspondre ces valeurs pour la compilation du programme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi pris le soin de choisir des compteurs 2 bits(0..3), pour parcourir les 4 afficheurs ainsi que les 4 bascules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, après la réalisation de notre montage, les premiers essais réalisés n'étaient pas concluant. Nous n'obtenions pas le même message en entrée qu'en sortie. &lt;br /&gt;
Pour corriger ce problème, nous avons utilisé plusieurs entrées/sorties fictives, à l'aide des DIGITAL I/O (voir schéma ci-dessus), positionnées à différents endroits du circuit pour pouvoir isoler les erreurs existantes. Nous avons pu alors corriger toutes nos erreurs de montage et nous avons effectué des tests à nouveau.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ces derniers ce sont alors avérés concluant. Nous pouvions afficher sur l'afficheur de notre choix le message d'entrée stocké dans les registres.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:testafficheur.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la présentation et l'explication du test, chaque cadran avait son utilité : &lt;br /&gt;
&lt;br /&gt;
Le premier cadran correspond au rendu sur l'afficheur sélectionné (par le décodeur).&lt;br /&gt;
&lt;br /&gt;
Le deuxième cadran correspond au message souhaité en entrée.&lt;br /&gt;
&lt;br /&gt;
Pour le troisième, lorsque la clk est à 1, le message en entrée est envoyé dans les registres.&lt;br /&gt;
&lt;br /&gt;
La quatrième fenêtre correspond à la fréquence de défilement.&lt;br /&gt;
&lt;br /&gt;
La cinquième fenêtre correspond à l'afficheur choisi par le décodeur (4 possible).&lt;br /&gt;
&lt;br /&gt;
Le dernier cadran correspond aux valeurs des 4 registres 16 bits.&lt;br /&gt;
&lt;br /&gt;
Sur les deux images suivantes, on observe parfaitement le message qui défile.&lt;br /&gt;
&lt;br /&gt;
Chaque registre contient une valeur différente, le premier contient la valeur 1, le deuxième la valeur 2 et ainsi de suite.&lt;br /&gt;
&lt;br /&gt;
Sur la première image ci-dessous, c'est l'afficheur 2 qui est sélectionné (5ème cadran). Dans le premier cadran, on observe qu'il affiche le bon message : la valeur 2 contenu dans le deuxième registre.&lt;br /&gt;
&lt;br /&gt;
Sur la deuxième image ci-dessous, c'est l'afficheur 4 qui est sélectionné (5ème cadran). Dans le premier cadran, on observe à nouveau le bon message : la valeur 4 contenu dans le quatrième  registre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test_affich2.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test_affich4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''' Troisième séance''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la troisième partie de ce projet, il fallait câbler la Nanoboard de façon à tester &amp;quot;réellement&amp;quot; le défilement du message sur 4 afficheurs.&lt;br /&gt;
&lt;br /&gt;
Le câblage a été pour nous la partie la plus difficile du projet, et aussi la plus contraignante. &lt;br /&gt;
&lt;br /&gt;
Tout d'abord, c'était quelque chose de très fastidieux au vue du nombre de fils nécessaire. Il fallait être très patient.&lt;br /&gt;
&lt;br /&gt;
Ensuite, d'après nos enseignants (pas plus de 20mA par diode) et la datasheet de la Nanoboard (3,3V de fourni), on a remarqué que celle-ci ne pourrait pas d'allumer toutes les diodes seule (3,8V nécessaire par grand segment, 2 diodes par grand segment). Il était alors nécessaire d'utiliser des amplificateurs opérationnels pour &amp;quot;aider&amp;quot; la Nanoboard à alimenter toutes les diodes des afficheurs, et ainsi avoir les bonnes tensions au niveau des afficheurs.&lt;br /&gt;
&lt;br /&gt;
De plus, il était important de placer des résistances devant chaque segment, pour protéger les diodes. Une résistance de 50 Ohm devant les petits segments, et une résistance de 300 Ohm devant les grands segments, ont été nécessaires pour notre câblage.&lt;br /&gt;
&lt;br /&gt;
Cependant, par manque de temps, et à cause de quelques difficultés rencontrées lors du câblage, nous n'avons pas pu terminer cette étape cruciale pour les tests réels de nos afficheurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Conclusion''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme tout projet, le travail de groupe a été un point clé des travaux. C'est quelque chose d'agréable qui demande de l'organisation, du sérieux, et de la communication.&lt;br /&gt;
&lt;br /&gt;
De plus, les professeurs nous ont laissé une certaine liberté de travail, ce qui nous a permis de nous confronter directement aux problématiques de projets.&lt;br /&gt;
&lt;br /&gt;
Nous avons pu mettre en pratique nos connaissances acquises lors des cours magistraux de cette année, mais nous avons aussi découvert de nombreuses notions qui n'avaient jamais été abordées. Elles sont désormais apprises et comprises.&lt;br /&gt;
&lt;br /&gt;
Ce genre de projet constitue des bonnes mises en situation, c'est un vrai entrainement pour nos projets futurs. &lt;br /&gt;
&lt;br /&gt;
De plus, nous avons pu remarqué que de nombreux domaines scientifiques tels que l'Electronique, la Logique/Microprocesseur et l'Informatique sont étroitement liés ; et qu'il faut alors une &amp;quot;équipe&amp;quot; maitrisant chaque domaine pour pouvoir travailler efficacement.&lt;br /&gt;
&lt;br /&gt;
Nous remercions les professeurs pour l'aide qu'ils nous ont apporté.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DESCAMD Alexandre&lt;br /&gt;
RAZAFINDRAIBE Jordan&lt;br /&gt;
MICHEL Pierre&lt;br /&gt;
BIELLE Julien&lt;br /&gt;
&lt;br /&gt;
IMA3, TD1, MARS 2015.&lt;/div&gt;</summary>
		<author><name>Adescamd</name></author>	</entry>

	</feed>