<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://projets-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hvelly</id>
		<title>Wiki de Projets IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://projets-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hvelly"/>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Hvelly"/>
		<updated>2026-05-14T08:02:11Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CR_P31_FoucaultVelly.PDF&amp;diff=75739</id>
		<title>Fichier:CR P31 FoucaultVelly.PDF</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CR_P31_FoucaultVelly.PDF&amp;diff=75739"/>
				<updated>2019-05-09T13:35:04Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : Hvelly a téléversé une nouvelle version de Fichier:CR P31 FoucaultVelly.PDF&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CR_P31_FoucaultVelly.PDF&amp;diff=75725</id>
		<title>Fichier:CR P31 FoucaultVelly.PDF</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CR_P31_FoucaultVelly.PDF&amp;diff=75725"/>
				<updated>2019-05-09T13:09:06Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75724</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75724"/>
				<updated>2019-05-09T13:08:32Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Documents Rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 Piles rechargeables 1,2V pour l'alimentation des servomoteurs&lt;br /&gt;
&lt;br /&gt;
* 1 batterie externe pour l'alimentation de l'arduino&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Réalisation du robot&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| 2h&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3h&lt;br /&gt;
| 6h&lt;br /&gt;
| 5h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (1h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes renseignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Nous savons que le robot doit se déplacer et monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG1_RFHV.png|250px|thumb|left|Articulation d'une patte d'insecte]]&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur [https://www.thingiverse.com/thing:2204279 Thingiverse]&lt;br /&gt;
&lt;br /&gt;
Ce modèle est très courant dans la conception de robot hexapode et il imite le mouvement d'une patte d'insecte à l'aide de trois axes de rotations. La patte d'un insecte se divise en trois parties : le tibia, le fémur et le coxa.&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Il y aura trois servomoteurs sur chacune des six pattes du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG2_RFHV.jpg|200px|thumb|right|Articulation d'une patte du robot]]&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
'''Samedi matin (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces.&lt;br /&gt;
&lt;br /&gt;
Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel '''''Fusion 360''''' d'Autodesk car il existe une version gratuite, plutôt complète et prévue pour l’impression 3D.&lt;br /&gt;
Nous modifions donc les pièces et créons un nouveau prototype de pièce, qui a pour but de relier le coxa au châssis. Lors de la conception du châssis nous intégrerons directement cette pièce à celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce &amp;quot;prototype&amp;quot;]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançons donc l'impression des 6 tibias nécessaires au robot pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
'''Mardi (2h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique permettant de fixer les axes des servomoteurs aux pièces ainsi et les vis associées.&lt;br /&gt;
Nous finissons ensuite de travailler sur la conception du modèle de châssis. En fin de séance, il est terminé et prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le modèle de chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servo-moteurs et le début de programmation de mouvement d'une patte avec les ports PWM classiques de l'arduino (nous n'avons pas encore reçu notre shield PWM).&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les derniers servo-moteurs et éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servo-moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les axes servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot le plus vite possible.&lt;br /&gt;
&lt;br /&gt;
En fin de séance nous avons notre structure de robot montée, il ne reste qu'à y ajouter les autres composants (arduino, piles, ...).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez retrouvez sur l'archive git du projet toutes les pièces ayant étaient imprimées lors de la conception du robot.&lt;br /&gt;
[[Fichier:ROBOTNUDE_RFHV.jpg ‎|300px|thumb|center|Le robot monté]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Pour cette séance nous commençons donc la prise en main du matériel reçu : le module WiFi ESP8266 et les capteurs de distance ultrason.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|130px|thumb|left|ESP8266 - 04]]&lt;br /&gt;
'''''Le module WiFi ESP8266'''''&lt;br /&gt;
&lt;br /&gt;
L'ESP8266 est un microcontrôleur à bas coût permettant de travailler avec le signal WiFi. Il en existe différentes versions, la différence étant la présence ou non d'une antenne (et le type d'antenne) pour la réception du signal par exemple.&lt;br /&gt;
Le modèle que nous avons commandé est un ESP8266-04 qui ne possède pas d'antenne intégrée. Il va donc falloir que nous en concevions une nous même ou que nous en achetions une.&lt;br /&gt;
Nous devrons donc concevoir un PCB pour l'utilisation de l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|130px|thumb|left|Capteur Ultrason]]&lt;br /&gt;
'''''Les capteurs de distance ultrason'''''&lt;br /&gt;
&lt;br /&gt;
Les capteurs disposent de 4 pins : une entrée 5 V, un GND et deux pins TRIG et ECHO. Le fonctionnement de ces capteurs est assez simple : on indique sur le pin TRIG l'envoi d'un signal ultrason. Le signal est réfléchi contre l'obstacle le plus proche puis nous connaissons l'instant auquel il revient sur le capteur grâce au pin ECHO. il ne nous reste donc qu'à mesurer le temps mis par le signal entre l'envoi et la réception pour connaître la distance.  &lt;br /&gt;
&lt;br /&gt;
L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir au robot un champ de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à réfléchir à la façon de modéliser ces pièces cependant nous préférons attendre d'avoir monté les autres éléments sur le robot pour être sûr de bien les positionner afin d'éviter qu'ils ne soient pas gênés par les autres éléments.&lt;br /&gt;
&lt;br /&gt;
Il est aussi essentiel de savoir comment relier ces capteurs à l'Arduino. Un PCB devant être conçu pour la partie carte WiFi, nous pensons prévoir des connecteurs pour nos capteurs sur ce PCB.&lt;br /&gt;
&lt;br /&gt;
Nous avons par ailleurs réalisé un programme simple permettant la mesure de la distance avec un capteur. Il ne nous restera qu'à utiliser ce morceau de code lorsque nous programmerons le déplacement du robot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte WiFi qui sera intégrée à notre robot. Le composant ESP8266 qui va nous permettre de capter le flux RSSI et de le transmettre à notre Arduino nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un shield personnalisé qui se posera au dessus de notre shield PWM.&lt;br /&gt;
&lt;br /&gt;
L'Arduino pourra communiquer avec l'ESP8266 via une liaison série. Nous relions donc les ports série RX et TX de l'ESP aux ports UART (0 et 1) de l'arduino. Pour l'alimentation de l'ESP nous utilisons la broche 3,3V de l'Arduino Uno. Nous relions également le pin CH_PD de l'ESP à la broche 3,3V afin d'activer l'ESP.&lt;br /&gt;
&lt;br /&gt;
En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les capteurs à ultrasons qui équipent notre robot mais aussi pour les servomoteurs qui ne sont pas contrôlés par le shield PWM. Pour réaliser ce shield nous utilisons le logiciel gratuit '''''Fritzing'''''.&lt;br /&gt;
&lt;br /&gt;
Nous commençons le schematic de notre carte. Il nous parait plus efficace de poser notre shield WiFi au dessus du shield PWM, pour que l'antenne WiFi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'Arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Cependant mettre notre shield WiFi au dessus nécessite de lui donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard, il nous faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
'''Dimanche (2h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur '''''Inscape''''' (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de PCB précédemment réalisée, nous avons commencé à router le shield WiFi. Puisque notre composant ESP8266 ne possède pas d'antenne, nous avons décidé d'en tracer une sur la plaque du PCB. Cependant pour que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et également isoler cette partie du PCB d'une alimentation ou de tout autre composant pouvant interférer avec elle. Nous avançons donc dans le routage de la carte et commençons des recherches sur un modèle d'antenne que nous pourrons tracer sur notre PCB.&lt;br /&gt;
&lt;br /&gt;
Nous pensons finir la carte la semaine prochaine puis la faire graver et la tester.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de mettre de côté la carte WiFi et de s'occuper de la partie matérielle PWM qui nous permettra ensuite enfin de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de 1000 microfarad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'Arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'Arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
[[Fichier:ShieldPWM_RFHV.jpg ‎|300px|thumb|center|Le shield PWM monté sur le robot]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées. Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa).&lt;br /&gt;
&lt;br /&gt;
Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'Arduino. La fonction prend donc en compte cette distinction&lt;br /&gt;
.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc toutes les bases pour la programmation du déplacement, il ne nous reste plus qu'à écrire la liste des positions successives des moteurs faisant se déplacer le robot. Nous utilisons pour la programmation l'IDE Arduino avec la bibliothèque du constructeur du shield : ''Adafruit_PWMServoDriver''&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de la [http://www.ti.com/lit/an/swra117d/swra117d.pdf datasheet] d'un dongle USB possédant une antenne WiFi 2,4 GHz&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antenne_RFHV.JPG|250px|thumb|left|Datasheet de l'antenne]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par créer un composant Antenne respectant les indications de la datasheet puis nous avons ajouté ce composant à notre shield pour le router. Nous avons ensuite récupéré une librairie sur internet contenant notre composant ESP8266, ce qui nous a permis de gagner du temps, n'ayant pas à créer ce composant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Pour cette séance, nous finissons la conception de la carte WiFi. Le routage nous aura pris un certain temps mais en fin de séance nous avons fini notre PCB.&lt;br /&gt;
Afin d'avoir le meilleur fonctionnement possible de l'antenne et du PCB nous avons du respecter certaines contraintes :&lt;br /&gt;
* la ligne de masse de l'antenne doit être la plus large possible&lt;br /&gt;
* la ligne reliant l'antenne à l'ESP8266 doit transmettre une impédance de 50Ω, ce qui correspond à une largeur de 0.5 mm&lt;br /&gt;
* les angles des lignes en entrée/sortie de l'antenne sont arrondis&lt;br /&gt;
* le PCB est gravé sur du FR4&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antennealtium_RFHV.JPG|250px|thumb|left|L'antenne réalisée sur Altium Designer]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Fichier:Schematicaltium_RFHV.JPG|400px|thumb|left|Schematic de la carte sur Altium]]&lt;br /&gt;
[[Fichier:Pcbaltium_RFHV.JPG|400px|thumb|center|PCB de la carte sur Altium]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Travail supplémentaire==&lt;br /&gt;
&lt;br /&gt;
Pendant la première semaine de vacances, nous avons profité de l'ouverture de l'école pour venir faire graver puis souder notre carte.&lt;br /&gt;
[[Fichier:PremierShield_RFHV.JPG|100px|thumb|center|Le shield réaliser et soudé]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite essayé d'utiliser notre carte mais celle ci ne fonctionne pas. En effet il nous apparaît impossible d'interagir avec l'ESP-04 dans l'état actuel.&lt;br /&gt;
Après avoir des recherches approfondies, il est apparu que le problème pouvait venir du fait que la liaison série de l'ESP8266 soit connecté aux ports UART de l'Arduino. Nous pouvons pour contourner cela, connecter la liaison série de l'ESP sur des entrées-sorties classiques de l'Arduino que nous utiliserons comme liaison série grâce à la librairie Arduino ''SoftwareSerial''.&lt;br /&gt;
De plus pour certains types d'ESP, il peut être utile d'abaisser la tension sortant du TX de l'Arduino et allant vers le RX de l'ESP. Nous avons donc modifier notre carte en soudant des fils et ajoutant le composants nécessaires pour baisser la tension.&lt;br /&gt;
[[Fichier:DeuxiemeShield_RFHV.JPG|100px|thumb|center|Le shield modifié]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec ces modifications, nous n'arrivons toujours pas à communiquer avec notre ESP8266.&lt;br /&gt;
La carte nous sera malgré tout utile puisque que l'alimentation et la masse commune (pour les capteurs et moteurs) fonctionne.&lt;br /&gt;
Arrivant à la fin du projet, nous demandons alors un ESP-01 qui, contrairement à notre ESP-04, à l'avantage d'être un circuit complet avec antenne et liaisons à des headers, prêt à l'emploi.&lt;br /&gt;
[[Fichier:ESP01_RFHV.JPG|100px|thumb|center|ESP-01]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec ce nouvel ESP, nous sommes capables de communiquer à travers le moniteur série de l'IDE Arduino. Le branchement de l'ESP sur l'Arduino se fait simplement selon le schéma suivant.&lt;br /&gt;
[[Fichier:Esp01_RFHV.png|200px|thumb|center|Branchement ESP-01]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour interagir avec l'ESP, il faut utiliser des commandes AT qui vont nous permettre d'obtenir par exemple la liste des réseaux WiFi à proximité ainsi que leur RSSI (ce qui nous intéresse).&lt;br /&gt;
[[Fichier:CWLAP_RFHV.png|100px|thumb|center|AT+CWLAP]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, le robot est maintenant capable de se déplacer sans être relié à un ordinateur. Il est maintenant temps de lui implémenter les capteurs à ultrason pour lui permettre d'être autonome dans sont environnent. Les capteurs, qui seront fixés au chassie, doivent être à une dizaine de centimètres en hauteur pour que les pattes du robot lors du déplacent ne passent pas dans leur champs de vision. Pour cela nous modélisons des panneaux auxquels les capteurs seront fixés.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau3DModel_RFHV.PNG|100px|thumb|center|Model 3D du panneau]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et nous les réalisons à la découpeuse laser.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau_RFHV.JPG|100px|thumb|center|Panneau avec le capteur]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
Le robot en maintenait équipé d'un capteur à l'avant, un à gauche te un droite. Cela nous permet de coder différente fonction comme pour éviter un obstacle ou longer un mur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
[[Fichier:CR_P31_FoucaultVelly.PDF|100px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
&lt;br /&gt;
==Conception du robot==&lt;br /&gt;
&lt;br /&gt;
;La source d'inspiration principale pour la conception de notre robot hexapode :&lt;br /&gt;
&lt;br /&gt;
:https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
:https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped&lt;br /&gt;
&lt;br /&gt;
==Programmation déplacement==&lt;br /&gt;
&lt;br /&gt;
;La libraire utilisée pour la programmation du shield PWM :&lt;br /&gt;
&lt;br /&gt;
:https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/using-the-adafruit-library&lt;br /&gt;
&lt;br /&gt;
;Pour la programmation du capteur ultrason :&lt;br /&gt;
&lt;br /&gt;
:https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/&lt;br /&gt;
&lt;br /&gt;
==Programmation RSSI==&lt;br /&gt;
&lt;br /&gt;
;Datasheet de l'ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
;Pour la réalisation de l'antenne :&lt;br /&gt;
&lt;br /&gt;
:http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
&lt;br /&gt;
;La librairie Altium contenant les ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://github.com/SashsLab/ESP8266&lt;br /&gt;
&lt;br /&gt;
;Détail des commandes pour communiquer via liaison série avec l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf&lt;br /&gt;
&lt;br /&gt;
;Tutoriel pour la mise en place d'un serveur web sur l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://forum.arduino.cc/index.php?topic=501923.0&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75667</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75667"/>
				<updated>2019-05-09T11:04:24Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Travail supplémentaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 Piles rechargeables 1,2V pour l'alimentation des servomoteurs&lt;br /&gt;
&lt;br /&gt;
* 1 batterie externe pour l'alimentation de l'arduino&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Réalisation du robot&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| 2h&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3h&lt;br /&gt;
| 6h&lt;br /&gt;
| 5h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (1h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes renseignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Nous savons que le robot doit se déplacer et monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG1_RFHV.png|250px|thumb|left|Articulation d'une patte d'insecte]]&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur [https://www.thingiverse.com/thing:2204279 Thingiverse]&lt;br /&gt;
&lt;br /&gt;
Ce modèle est très courant dans la conception de robot hexapode et il imite le mouvement d'une patte d'insecte à l'aide de trois axes de rotations. La patte d'un insecte se divise en trois parties : le tibia, le fémur et le coxa.&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Il y aura trois servomoteurs sur chacune des six pattes du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG2_RFHV.jpg|200px|thumb|right|Articulation d'une patte du robot]]&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
'''Samedi matin (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces.&lt;br /&gt;
&lt;br /&gt;
Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel '''''Fusion 360''''' d'Autodesk car il existe une version gratuite, plutôt complète et prévue pour l’impression 3D.&lt;br /&gt;
Nous modifions donc les pièces et créons un nouveau prototype de pièce, qui a pour but de relier le coxa au châssis. Lors de la conception du châssis nous intégrerons directement cette pièce à celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce &amp;quot;prototype&amp;quot;]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançons donc l'impression des 6 tibias nécessaires au robot pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
'''Mardi (2h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique permettant de fixer les axes des servomoteurs aux pièces ainsi et les vis associées.&lt;br /&gt;
Nous finissons ensuite de travailler sur la conception du modèle de châssis. En fin de séance, il est terminé et prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le modèle de chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servo-moteurs et le début de programmation de mouvement d'une patte avec les ports PWM classiques de l'arduino (nous n'avons pas encore reçu notre shield PWM).&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les derniers servo-moteurs et éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servo-moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les axes servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot le plus vite possible.&lt;br /&gt;
&lt;br /&gt;
En fin de séance nous avons notre structure de robot montée, il ne reste qu'à y ajouter les autres composants (arduino, piles, ...).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez retrouvez sur l'archive git du projet toutes les pièces ayant étaient imprimées lors de la conception du robot.&lt;br /&gt;
[[Fichier:ROBOTNUDE_RFHV.jpg ‎|300px|thumb|center|Le robot monté]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Pour cette séance nous commençons donc la prise en main du matériel reçu : le module WiFi ESP8266 et les capteurs de distance ultrason.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|130px|thumb|left|ESP8266 - 04]]&lt;br /&gt;
'''''Le module WiFi ESP8266'''''&lt;br /&gt;
&lt;br /&gt;
L'ESP8266 est un microcontrôleur à bas coût permettant de travailler avec le signal WiFi. Il en existe différentes versions, la différence étant la présence ou non d'une antenne (et le type d'antenne) pour la réception du signal par exemple.&lt;br /&gt;
Le modèle que nous avons commandé est un ESP8266-04 qui ne possède pas d'antenne intégrée. Il va donc falloir que nous en concevions une nous même ou que nous en achetions une.&lt;br /&gt;
Nous devrons donc concevoir un PCB pour l'utilisation de l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|130px|thumb|left|Capteur Ultrason]]&lt;br /&gt;
'''''Les capteurs de distance ultrason'''''&lt;br /&gt;
&lt;br /&gt;
Les capteurs disposent de 4 pins : une entrée 5 V, un GND et deux pins TRIG et ECHO. Le fonctionnement de ces capteurs est assez simple : on indique sur le pin TRIG l'envoi d'un signal ultrason. Le signal est réfléchi contre l'obstacle le plus proche puis nous connaissons l'instant auquel il revient sur le capteur grâce au pin ECHO. il ne nous reste donc qu'à mesurer le temps mis par le signal entre l'envoi et la réception pour connaître la distance.  &lt;br /&gt;
&lt;br /&gt;
L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir au robot un champ de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à réfléchir à la façon de modéliser ces pièces cependant nous préférons attendre d'avoir monté les autres éléments sur le robot pour être sûr de bien les positionner afin d'éviter qu'ils ne soient pas gênés par les autres éléments.&lt;br /&gt;
&lt;br /&gt;
Il est aussi essentiel de savoir comment relier ces capteurs à l'Arduino. Un PCB devant être conçu pour la partie carte WiFi, nous pensons prévoir des connecteurs pour nos capteurs sur ce PCB.&lt;br /&gt;
&lt;br /&gt;
Nous avons par ailleurs réalisé un programme simple permettant la mesure de la distance avec un capteur. Il ne nous restera qu'à utiliser ce morceau de code lorsque nous programmerons le déplacement du robot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte WiFi qui sera intégrée à notre robot. Le composant ESP8266 qui va nous permettre de capter le flux RSSI et de le transmettre à notre Arduino nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un shield personnalisé qui se posera au dessus de notre shield PWM.&lt;br /&gt;
&lt;br /&gt;
L'Arduino pourra communiquer avec l'ESP8266 via une liaison série. Nous relions donc les ports série RX et TX de l'ESP aux ports UART (0 et 1) de l'arduino. Pour l'alimentation de l'ESP nous utilisons la broche 3,3V de l'Arduino Uno. Nous relions également le pin CH_PD de l'ESP à la broche 3,3V afin d'activer l'ESP.&lt;br /&gt;
&lt;br /&gt;
En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les capteurs à ultrasons qui équipent notre robot mais aussi pour les servomoteurs qui ne sont pas contrôlés par le shield PWM. Pour réaliser ce shield nous utilisons le logiciel gratuit '''''Fritzing'''''.&lt;br /&gt;
&lt;br /&gt;
Nous commençons le schematic de notre carte. Il nous parait plus efficace de poser notre shield WiFi au dessus du shield PWM, pour que l'antenne WiFi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'Arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Cependant mettre notre shield WiFi au dessus nécessite de lui donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard, il nous faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
'''Dimanche (2h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur '''''Inscape''''' (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de PCB précédemment réalisée, nous avons commencé à router le shield WiFi. Puisque notre composant ESP8266 ne possède pas d'antenne, nous avons décidé d'en tracer une sur la plaque du PCB. Cependant pour que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et également isoler cette partie du PCB d'une alimentation ou de tout autre composant pouvant interférer avec elle. Nous avançons donc dans le routage de la carte et commençons des recherches sur un modèle d'antenne que nous pourrons tracer sur notre PCB.&lt;br /&gt;
&lt;br /&gt;
Nous pensons finir la carte la semaine prochaine puis la faire graver et la tester.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de mettre de côté la carte WiFi et de s'occuper de la partie matérielle PWM qui nous permettra ensuite enfin de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de 1000 microfarad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'Arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'Arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
[[Fichier:ShieldPWM_RFHV.jpg ‎|300px|thumb|center|Le shield PWM monté sur le robot]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées. Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa).&lt;br /&gt;
&lt;br /&gt;
Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'Arduino. La fonction prend donc en compte cette distinction&lt;br /&gt;
.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc toutes les bases pour la programmation du déplacement, il ne nous reste plus qu'à écrire la liste des positions successives des moteurs faisant se déplacer le robot. Nous utilisons pour la programmation l'IDE Arduino avec la bibliothèque du constructeur du shield : ''Adafruit_PWMServoDriver''&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de la [http://www.ti.com/lit/an/swra117d/swra117d.pdf datasheet] d'un dongle USB possédant une antenne WiFi 2,4 GHz&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antenne_RFHV.JPG|250px|thumb|left|Datasheet de l'antenne]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par créer un composant Antenne respectant les indications de la datasheet puis nous avons ajouté ce composant à notre shield pour le router. Nous avons ensuite récupéré une librairie sur internet contenant notre composant ESP8266, ce qui nous a permis de gagner du temps, n'ayant pas à créer ce composant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Pour cette séance, nous finissons la conception de la carte WiFi. Le routage nous aura pris un certain temps mais en fin de séance nous avons fini notre PCB.&lt;br /&gt;
Afin d'avoir le meilleur fonctionnement possible de l'antenne et du PCB nous avons du respecter certaines contraintes :&lt;br /&gt;
* la ligne de masse de l'antenne doit être la plus large possible&lt;br /&gt;
* la ligne reliant l'antenne à l'ESP8266 doit transmettre une impédance de 50Ω, ce qui correspond à une largeur de 0.5 mm&lt;br /&gt;
* les angles des lignes en entrée/sortie de l'antenne sont arrondis&lt;br /&gt;
* le PCB est gravé sur du FR4&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antennealtium_RFHV.JPG|250px|thumb|left|L'antenne réalisée sur Altium Designer]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Fichier:Schematicaltium_RFHV.JPG|400px|thumb|left|Schematic de la carte sur Altium]]&lt;br /&gt;
[[Fichier:Pcbaltium_RFHV.JPG|400px|thumb|center|PCB de la carte sur Altium]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Travail supplémentaire==&lt;br /&gt;
&lt;br /&gt;
Pendant la première semaine de vacances, nous avons profité de l'ouverture de l'école pour venir faire graver puis souder notre carte.&lt;br /&gt;
[[Fichier:PremierShield_RFHV.JPG|100px|thumb|center|Le shield réaliser et soudé]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite essayé d'utiliser notre carte mais celle ci ne fonctionne pas. En effet il nous apparaît impossible d'interagir avec l'ESP-04 dans l'état actuel.&lt;br /&gt;
Après avoir des recherches approfondies, il est apparu que le problème pouvait venir du fait que la liaison série de l'ESP8266 soit connecté aux ports UART de l'Arduino. Nous pouvons pour contourner cela, connecter la liaison série de l'ESP sur des entrées-sorties classiques de l'Arduino que nous utiliserons comme liaison série grâce à la librairie Arduino ''SoftwareSerial''.&lt;br /&gt;
De plus pour certains types d'ESP, il peut être utile d'abaisser la tension sortant du TX de l'Arduino et allant vers le RX de l'ESP. Nous avons donc modifier notre carte en soudant des fils et ajoutant le composants nécessaires pour baisser la tension.&lt;br /&gt;
[[Fichier:DeuxiemeShield_RFHV.JPG|100px|thumb|center|Le shield modifié]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec ces modifications, nous n'arrivons toujours pas à communiquer avec notre ESP8266.&lt;br /&gt;
La carte nous sera malgré tout utile puisque que l'alimentation et la masse commune (pour les capteurs et moteurs) fonctionne.&lt;br /&gt;
Arrivant à la fin du projet, nous demandons alors un ESP-01 qui, contrairement à notre ESP-04, à l'avantage d'être un circuit complet avec antenne et liaisons à des headers, prêt à l'emploi.&lt;br /&gt;
[[Fichier:ESP01_RFHV.JPG|100px|thumb|center|ESP-01]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec ce nouvel ESP, nous sommes capables de communiquer à travers le moniteur série de l'IDE Arduino. Le branchement de l'ESP sur l'Arduino se fait simplement selon le schéma suivant.&lt;br /&gt;
[[Fichier:Esp01_RFHV.png|200px|thumb|center|Branchement ESP-01]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour interagir avec l'ESP, il faut utiliser des commandes AT qui vont nous permettre d'obtenir par exemple la liste des réseaux WiFi à proximité ainsi que leur RSSI (ce qui nous intéresse).&lt;br /&gt;
[[Fichier:CWLAP_RFHV.png|100px|thumb|center|AT+CWLAP]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, le robot est maintenant capable de se déplacer sans être relié à un ordinateur. Il est maintenant temps de lui implémenter les capteurs à ultrason pour lui permettre d'être autonome dans sont environnent. Les capteurs, qui seront fixés au chassie, doivent être à une dizaine de centimètres en hauteur pour que les pattes du robot lors du déplacent ne passent pas dans leur champs de vision. Pour cela nous modélisons des panneaux auxquels les capteurs seront fixés.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau3DModel_RFHV.PNG|100px|thumb|center|Model 3D du panneau]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et nous les réalisons à la découpeuse laser.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau_RFHV.JPG|100px|thumb|center|Panneau avec le capteur]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
Le robot en maintenait équipé d'un capteur à l'avant, un à gauche te un droite. Cela nous permet de coder différente fonction comme pour éviter un obstacle ou longer un mur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
&lt;br /&gt;
==Conception du robot==&lt;br /&gt;
&lt;br /&gt;
;La source d'inspiration principale pour la conception de notre robot hexapode :&lt;br /&gt;
&lt;br /&gt;
:https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
:https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped&lt;br /&gt;
&lt;br /&gt;
==Programmation déplacement==&lt;br /&gt;
&lt;br /&gt;
;La libraire utilisée pour la programmation du shield PWM :&lt;br /&gt;
&lt;br /&gt;
:https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/using-the-adafruit-library&lt;br /&gt;
&lt;br /&gt;
;Pour la programmation du capteur ultrason :&lt;br /&gt;
&lt;br /&gt;
:https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/&lt;br /&gt;
&lt;br /&gt;
==Programmation RSSI==&lt;br /&gt;
&lt;br /&gt;
;Datasheet de l'ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
;Pour la réalisation de l'antenne :&lt;br /&gt;
&lt;br /&gt;
:http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
&lt;br /&gt;
;La librairie Altium contenant les ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://github.com/SashsLab/ESP8266&lt;br /&gt;
&lt;br /&gt;
;Détail des commandes pour communiquer via liaison série avec l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf&lt;br /&gt;
&lt;br /&gt;
;Tutoriel pour la mise en place d'un serveur web sur l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://forum.arduino.cc/index.php?topic=501923.0&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Panneau3DModel_RFHV.PNG&amp;diff=75666</id>
		<title>Fichier:Panneau3DModel RFHV.PNG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Panneau3DModel_RFHV.PNG&amp;diff=75666"/>
				<updated>2019-05-09T11:03:55Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Panneau_RFHV.JPG&amp;diff=75665</id>
		<title>Fichier:Panneau RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Panneau_RFHV.JPG&amp;diff=75665"/>
				<updated>2019-05-09T11:00:27Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : Hvelly a téléversé une nouvelle version de Fichier:Panneau RFHV.JPG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Panneau_RFHV.JPG&amp;diff=75663</id>
		<title>Fichier:Panneau RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Panneau_RFHV.JPG&amp;diff=75663"/>
				<updated>2019-05-09T11:00:03Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75661</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75661"/>
				<updated>2019-05-09T10:58:53Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Travail supplémentaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 Piles rechargeables 1,2V pour l'alimentation des servomoteurs&lt;br /&gt;
&lt;br /&gt;
* 1 batterie externe pour l'alimentation de l'arduino&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Réalisation du robot&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| 2h&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3h&lt;br /&gt;
| 6h&lt;br /&gt;
| 5h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (1h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes renseignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Nous savons que le robot doit se déplacer et monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG1_RFHV.png|250px|thumb|left|Articulation d'une patte d'insecte]]&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur [https://www.thingiverse.com/thing:2204279 Thingiverse]&lt;br /&gt;
&lt;br /&gt;
Ce modèle est très courant dans la conception de robot hexapode et il imite le mouvement d'une patte d'insecte à l'aide de trois axes de rotations. La patte d'un insecte se divise en trois parties : le tibia, le fémur et le coxa.&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Il y aura trois servomoteurs sur chacune des six pattes du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG2_RFHV.jpg|200px|thumb|right|Articulation d'une patte du robot]]&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
'''Samedi matin (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces.&lt;br /&gt;
&lt;br /&gt;
Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel '''''Fusion 360''''' d'Autodesk car il existe une version gratuite, plutôt complète et prévue pour l’impression 3D.&lt;br /&gt;
Nous modifions donc les pièces et créons un nouveau prototype de pièce, qui a pour but de relier le coxa au châssis. Lors de la conception du châssis nous intégrerons directement cette pièce à celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce &amp;quot;prototype&amp;quot;]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançons donc l'impression des 6 tibias nécessaires au robot pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
'''Mardi (2h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique permettant de fixer les axes des servomoteurs aux pièces ainsi et les vis associées.&lt;br /&gt;
Nous finissons ensuite de travailler sur la conception du modèle de châssis. En fin de séance, il est terminé et prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le modèle de chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servo-moteurs et le début de programmation de mouvement d'une patte avec les ports PWM classiques de l'arduino (nous n'avons pas encore reçu notre shield PWM).&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les derniers servo-moteurs et éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servo-moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les axes servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot le plus vite possible.&lt;br /&gt;
&lt;br /&gt;
En fin de séance nous avons notre structure de robot montée, il ne reste qu'à y ajouter les autres composants (arduino, piles, ...).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez retrouvez sur l'archive git du projet toutes les pièces ayant étaient imprimées lors de la conception du robot.&lt;br /&gt;
[[Fichier:ROBOTNUDE_RFHV.jpg ‎|300px|thumb|center|Le robot monté]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Pour cette séance nous commençons donc la prise en main du matériel reçu : le module WiFi ESP8266 et les capteurs de distance ultrason.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|130px|thumb|left|ESP8266 - 04]]&lt;br /&gt;
'''''Le module WiFi ESP8266'''''&lt;br /&gt;
&lt;br /&gt;
L'ESP8266 est un microcontrôleur à bas coût permettant de travailler avec le signal WiFi. Il en existe différentes versions, la différence étant la présence ou non d'une antenne (et le type d'antenne) pour la réception du signal par exemple.&lt;br /&gt;
Le modèle que nous avons commandé est un ESP8266-04 qui ne possède pas d'antenne intégrée. Il va donc falloir que nous en concevions une nous même ou que nous en achetions une.&lt;br /&gt;
Nous devrons donc concevoir un PCB pour l'utilisation de l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|130px|thumb|left|Capteur Ultrason]]&lt;br /&gt;
'''''Les capteurs de distance ultrason'''''&lt;br /&gt;
&lt;br /&gt;
Les capteurs disposent de 4 pins : une entrée 5 V, un GND et deux pins TRIG et ECHO. Le fonctionnement de ces capteurs est assez simple : on indique sur le pin TRIG l'envoi d'un signal ultrason. Le signal est réfléchi contre l'obstacle le plus proche puis nous connaissons l'instant auquel il revient sur le capteur grâce au pin ECHO. il ne nous reste donc qu'à mesurer le temps mis par le signal entre l'envoi et la réception pour connaître la distance.  &lt;br /&gt;
&lt;br /&gt;
L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir au robot un champ de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à réfléchir à la façon de modéliser ces pièces cependant nous préférons attendre d'avoir monté les autres éléments sur le robot pour être sûr de bien les positionner afin d'éviter qu'ils ne soient pas gênés par les autres éléments.&lt;br /&gt;
&lt;br /&gt;
Il est aussi essentiel de savoir comment relier ces capteurs à l'Arduino. Un PCB devant être conçu pour la partie carte WiFi, nous pensons prévoir des connecteurs pour nos capteurs sur ce PCB.&lt;br /&gt;
&lt;br /&gt;
Nous avons par ailleurs réalisé un programme simple permettant la mesure de la distance avec un capteur. Il ne nous restera qu'à utiliser ce morceau de code lorsque nous programmerons le déplacement du robot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte WiFi qui sera intégrée à notre robot. Le composant ESP8266 qui va nous permettre de capter le flux RSSI et de le transmettre à notre Arduino nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un shield personnalisé qui se posera au dessus de notre shield PWM.&lt;br /&gt;
&lt;br /&gt;
L'Arduino pourra communiquer avec l'ESP8266 via une liaison série. Nous relions donc les ports série RX et TX de l'ESP aux ports UART (0 et 1) de l'arduino. Pour l'alimentation de l'ESP nous utilisons la broche 3,3V de l'Arduino Uno. Nous relions également le pin CH_PD de l'ESP à la broche 3,3V afin d'activer l'ESP.&lt;br /&gt;
&lt;br /&gt;
En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les capteurs à ultrasons qui équipent notre robot mais aussi pour les servomoteurs qui ne sont pas contrôlés par le shield PWM. Pour réaliser ce shield nous utilisons le logiciel gratuit '''''Fritzing'''''.&lt;br /&gt;
&lt;br /&gt;
Nous commençons le schematic de notre carte. Il nous parait plus efficace de poser notre shield WiFi au dessus du shield PWM, pour que l'antenne WiFi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'Arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Cependant mettre notre shield WiFi au dessus nécessite de lui donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard, il nous faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
'''Dimanche (2h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur '''''Inscape''''' (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de PCB précédemment réalisée, nous avons commencé à router le shield WiFi. Puisque notre composant ESP8266 ne possède pas d'antenne, nous avons décidé d'en tracer une sur la plaque du PCB. Cependant pour que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et également isoler cette partie du PCB d'une alimentation ou de tout autre composant pouvant interférer avec elle. Nous avançons donc dans le routage de la carte et commençons des recherches sur un modèle d'antenne que nous pourrons tracer sur notre PCB.&lt;br /&gt;
&lt;br /&gt;
Nous pensons finir la carte la semaine prochaine puis la faire graver et la tester.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de mettre de côté la carte WiFi et de s'occuper de la partie matérielle PWM qui nous permettra ensuite enfin de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de 1000 microfarad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'Arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'Arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
[[Fichier:ShieldPWM_RFHV.jpg ‎|300px|thumb|center|Le shield PWM monté sur le robot]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées. Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa).&lt;br /&gt;
&lt;br /&gt;
Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'Arduino. La fonction prend donc en compte cette distinction&lt;br /&gt;
.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc toutes les bases pour la programmation du déplacement, il ne nous reste plus qu'à écrire la liste des positions successives des moteurs faisant se déplacer le robot. Nous utilisons pour la programmation l'IDE Arduino avec la bibliothèque du constructeur du shield : ''Adafruit_PWMServoDriver''&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de la [http://www.ti.com/lit/an/swra117d/swra117d.pdf datasheet] d'un dongle USB possédant une antenne WiFi 2,4 GHz&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antenne_RFHV.JPG|250px|thumb|left|Datasheet de l'antenne]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par créer un composant Antenne respectant les indications de la datasheet puis nous avons ajouté ce composant à notre shield pour le router. Nous avons ensuite récupéré une librairie sur internet contenant notre composant ESP8266, ce qui nous a permis de gagner du temps, n'ayant pas à créer ce composant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Pour cette séance, nous finissons la conception de la carte WiFi. Le routage nous aura pris un certain temps mais en fin de séance nous avons fini notre PCB.&lt;br /&gt;
Afin d'avoir le meilleur fonctionnement possible de l'antenne et du PCB nous avons du respecter certaines contraintes :&lt;br /&gt;
* la ligne de masse de l'antenne doit être la plus large possible&lt;br /&gt;
* la ligne reliant l'antenne à l'ESP8266 doit transmettre une impédance de 50Ω, ce qui correspond à une largeur de 0.5 mm&lt;br /&gt;
* les angles des lignes en entrée/sortie de l'antenne sont arrondis&lt;br /&gt;
* le PCB est gravé sur du FR4&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antennealtium_RFHV.JPG|250px|thumb|left|L'antenne réalisée sur Altium Designer]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Fichier:Schematicaltium_RFHV.JPG|400px|thumb|left|Schematic de la carte sur Altium]]&lt;br /&gt;
[[Fichier:Pcbaltium_RFHV.JPG|400px|thumb|center|PCB de la carte sur Altium]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Travail supplémentaire==&lt;br /&gt;
&lt;br /&gt;
Pendant la première semaine de vacances, nous avons profité de l'ouverture de l'école pour venir faire graver puis souder notre carte.&lt;br /&gt;
[[Fichier:PremierShield_RFHV.JPG|100px|thumb|center|Le shield réaliser et soudé]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite essayé d'utiliser notre carte mais celle ci ne fonctionne pas. En effet il nous apparaît impossible d'interagir avec l'ESP-04 dans l'état actuel.&lt;br /&gt;
Après avoir des recherches approfondies, il est apparu que le problème pouvait venir du fait que la liaison série de l'ESP8266 soit connecté aux ports UART de l'Arduino. Nous pouvons pour contourner cela, connecter la liaison série de l'ESP sur des entrées-sorties classiques de l'Arduino que nous utiliserons comme liaison série grâce à la librairie Arduino ''SoftwareSerial''.&lt;br /&gt;
De plus pour certains types d'ESP, il peut être utile d'abaisser la tension sortant du TX de l'Arduino et allant vers le RX de l'ESP. Nous avons donc modifier notre carte en soudant des fils et ajoutant le composants nécessaires pour baisser la tension.&lt;br /&gt;
[[Fichier:DeuxiemeShield_RFHV.JPG|100px|thumb|center|Le shield modifié]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec ces modifications, nous n'arrivons toujours pas à communiquer avec notre ESP8266.&lt;br /&gt;
La carte nous sera malgré tout utile puisque que l'alimentation et la masse commune (pour les capteurs et moteurs) fonctionne.&lt;br /&gt;
Arrivant à la fin du projet, nous demandons alors un ESP-01 qui, contrairement à notre ESP-04, à l'avantage d'être un circuit complet avec antenne et liaisons à des headers, prêt à l'emploi.&lt;br /&gt;
[[Fichier:ESP01_RFHV.JPG|100px|thumb|center|ESP-01]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec ce nouvel ESP, nous sommes capables de communiquer à travers le moniteur série de l'IDE Arduino. Le branchement de l'ESP sur l'Arduino se fait simplement selon le schéma suivant.&lt;br /&gt;
[[Fichier:Esp01_RFHV.png|200px|thumb|center|Branchement ESP-01]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour interagir avec l'ESP, il faut utiliser des commandes AT qui vont nous permettre d'obtenir par exemple la liste des réseaux WiFi à proximité ainsi que leur RSSI (ce qui nous intéresse).&lt;br /&gt;
[[Fichier:CWLAP_RFHV.JPG|100px|thumb|center|AT+CWLAP]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, le robot est maintenant capable de se déplacer sans être relié à un ordinateur. Il est maintenant temps de lui implémenter les capteurs à ultrason pour lui permettre d'être autonome dans sont environnent. Les capteurs, qui seront fixés au chassie, doivent être à une dizaine de centimètres en hauteur pour que les pattes du robot lors du déplacent ne passent pas dans leur champs de vision. Pour cela nous modélisons des panneaux auxquels les capteurs seront fixés.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau3DModel_RFHV.JPG|100px|thumb|center|Model 3D du panneau]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et nous les réalisons à la découpeuse laser.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau_RFHV.JPG|100px|thumb|center|Panneau avec le capteur]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
Le robot en maintenait équipé d'un capteur à l'avant, un à gauche te un droite. Cela nous permet de coder différente fonction comme pour éviter un obstacle ou longer un mur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
&lt;br /&gt;
==Conception du robot==&lt;br /&gt;
&lt;br /&gt;
;La source d'inspiration principale pour la conception de notre robot hexapode :&lt;br /&gt;
&lt;br /&gt;
:https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
:https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped&lt;br /&gt;
&lt;br /&gt;
==Programmation déplacement==&lt;br /&gt;
&lt;br /&gt;
;La libraire utilisée pour la programmation du shield PWM :&lt;br /&gt;
&lt;br /&gt;
:https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/using-the-adafruit-library&lt;br /&gt;
&lt;br /&gt;
;Pour la programmation du capteur ultrason :&lt;br /&gt;
&lt;br /&gt;
:https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/&lt;br /&gt;
&lt;br /&gt;
==Programmation RSSI==&lt;br /&gt;
&lt;br /&gt;
;Datasheet de l'ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
;Pour la réalisation de l'antenne :&lt;br /&gt;
&lt;br /&gt;
:http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
&lt;br /&gt;
;La librairie Altium contenant les ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://github.com/SashsLab/ESP8266&lt;br /&gt;
&lt;br /&gt;
;Détail des commandes pour communiquer via liaison série avec l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf&lt;br /&gt;
&lt;br /&gt;
;Tutoriel pour la mise en place d'un serveur web sur l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://forum.arduino.cc/index.php?topic=501923.0&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:ESP01_RFHV.JPG&amp;diff=75658</id>
		<title>Fichier:ESP01 RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:ESP01_RFHV.JPG&amp;diff=75658"/>
				<updated>2019-05-09T10:54:46Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : Hvelly a téléversé une nouvelle version de Fichier:ESP01 RFHV.JPG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:ESP01_RFHV.JPG&amp;diff=75657</id>
		<title>Fichier:ESP01 RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:ESP01_RFHV.JPG&amp;diff=75657"/>
				<updated>2019-05-09T10:54:21Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75656</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75656"/>
				<updated>2019-05-09T10:52:40Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Travail supplémentaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 Piles rechargeables 1,2V pour l'alimentation des servomoteurs&lt;br /&gt;
&lt;br /&gt;
* 1 batterie externe pour l'alimentation de l'arduino&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Réalisation du robot&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| 2h&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3h&lt;br /&gt;
| 6h&lt;br /&gt;
| 5h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (1h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes renseignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Nous savons que le robot doit se déplacer et monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG1_RFHV.png|250px|thumb|left|Articulation d'une patte d'insecte]]&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur [https://www.thingiverse.com/thing:2204279 Thingiverse]&lt;br /&gt;
&lt;br /&gt;
Ce modèle est très courant dans la conception de robot hexapode et il imite le mouvement d'une patte d'insecte à l'aide de trois axes de rotations. La patte d'un insecte se divise en trois parties : le tibia, le fémur et le coxa.&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Il y aura trois servomoteurs sur chacune des six pattes du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG2_RFHV.jpg|200px|thumb|right|Articulation d'une patte du robot]]&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
'''Samedi matin (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces.&lt;br /&gt;
&lt;br /&gt;
Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel '''''Fusion 360''''' d'Autodesk car il existe une version gratuite, plutôt complète et prévue pour l’impression 3D.&lt;br /&gt;
Nous modifions donc les pièces et créons un nouveau prototype de pièce, qui a pour but de relier le coxa au châssis. Lors de la conception du châssis nous intégrerons directement cette pièce à celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce &amp;quot;prototype&amp;quot;]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançons donc l'impression des 6 tibias nécessaires au robot pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
'''Mardi (2h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique permettant de fixer les axes des servomoteurs aux pièces ainsi et les vis associées.&lt;br /&gt;
Nous finissons ensuite de travailler sur la conception du modèle de châssis. En fin de séance, il est terminé et prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le modèle de chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servo-moteurs et le début de programmation de mouvement d'une patte avec les ports PWM classiques de l'arduino (nous n'avons pas encore reçu notre shield PWM).&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les derniers servo-moteurs et éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servo-moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les axes servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot le plus vite possible.&lt;br /&gt;
&lt;br /&gt;
En fin de séance nous avons notre structure de robot montée, il ne reste qu'à y ajouter les autres composants (arduino, piles, ...).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez retrouvez sur l'archive git du projet toutes les pièces ayant étaient imprimées lors de la conception du robot.&lt;br /&gt;
[[Fichier:ROBOTNUDE_RFHV.jpg ‎|300px|thumb|center|Le robot monté]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Pour cette séance nous commençons donc la prise en main du matériel reçu : le module WiFi ESP8266 et les capteurs de distance ultrason.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|130px|thumb|left|ESP8266 - 04]]&lt;br /&gt;
'''''Le module WiFi ESP8266'''''&lt;br /&gt;
&lt;br /&gt;
L'ESP8266 est un microcontrôleur à bas coût permettant de travailler avec le signal WiFi. Il en existe différentes versions, la différence étant la présence ou non d'une antenne (et le type d'antenne) pour la réception du signal par exemple.&lt;br /&gt;
Le modèle que nous avons commandé est un ESP8266-04 qui ne possède pas d'antenne intégrée. Il va donc falloir que nous en concevions une nous même ou que nous en achetions une.&lt;br /&gt;
Nous devrons donc concevoir un PCB pour l'utilisation de l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|130px|thumb|left|Capteur Ultrason]]&lt;br /&gt;
'''''Les capteurs de distance ultrason'''''&lt;br /&gt;
&lt;br /&gt;
Les capteurs disposent de 4 pins : une entrée 5 V, un GND et deux pins TRIG et ECHO. Le fonctionnement de ces capteurs est assez simple : on indique sur le pin TRIG l'envoi d'un signal ultrason. Le signal est réfléchi contre l'obstacle le plus proche puis nous connaissons l'instant auquel il revient sur le capteur grâce au pin ECHO. il ne nous reste donc qu'à mesurer le temps mis par le signal entre l'envoi et la réception pour connaître la distance.  &lt;br /&gt;
&lt;br /&gt;
L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir au robot un champ de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à réfléchir à la façon de modéliser ces pièces cependant nous préférons attendre d'avoir monté les autres éléments sur le robot pour être sûr de bien les positionner afin d'éviter qu'ils ne soient pas gênés par les autres éléments.&lt;br /&gt;
&lt;br /&gt;
Il est aussi essentiel de savoir comment relier ces capteurs à l'Arduino. Un PCB devant être conçu pour la partie carte WiFi, nous pensons prévoir des connecteurs pour nos capteurs sur ce PCB.&lt;br /&gt;
&lt;br /&gt;
Nous avons par ailleurs réalisé un programme simple permettant la mesure de la distance avec un capteur. Il ne nous restera qu'à utiliser ce morceau de code lorsque nous programmerons le déplacement du robot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte WiFi qui sera intégrée à notre robot. Le composant ESP8266 qui va nous permettre de capter le flux RSSI et de le transmettre à notre Arduino nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un shield personnalisé qui se posera au dessus de notre shield PWM.&lt;br /&gt;
&lt;br /&gt;
L'Arduino pourra communiquer avec l'ESP8266 via une liaison série. Nous relions donc les ports série RX et TX de l'ESP aux ports UART (0 et 1) de l'arduino. Pour l'alimentation de l'ESP nous utilisons la broche 3,3V de l'Arduino Uno. Nous relions également le pin CH_PD de l'ESP à la broche 3,3V afin d'activer l'ESP.&lt;br /&gt;
&lt;br /&gt;
En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les capteurs à ultrasons qui équipent notre robot mais aussi pour les servomoteurs qui ne sont pas contrôlés par le shield PWM. Pour réaliser ce shield nous utilisons le logiciel gratuit '''''Fritzing'''''.&lt;br /&gt;
&lt;br /&gt;
Nous commençons le schematic de notre carte. Il nous parait plus efficace de poser notre shield WiFi au dessus du shield PWM, pour que l'antenne WiFi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'Arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Cependant mettre notre shield WiFi au dessus nécessite de lui donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard, il nous faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
'''Dimanche (2h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur '''''Inscape''''' (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de PCB précédemment réalisée, nous avons commencé à router le shield WiFi. Puisque notre composant ESP8266 ne possède pas d'antenne, nous avons décidé d'en tracer une sur la plaque du PCB. Cependant pour que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et également isoler cette partie du PCB d'une alimentation ou de tout autre composant pouvant interférer avec elle. Nous avançons donc dans le routage de la carte et commençons des recherches sur un modèle d'antenne que nous pourrons tracer sur notre PCB.&lt;br /&gt;
&lt;br /&gt;
Nous pensons finir la carte la semaine prochaine puis la faire graver et la tester.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de mettre de côté la carte WiFi et de s'occuper de la partie matérielle PWM qui nous permettra ensuite enfin de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de 1000 microfarad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'Arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'Arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
[[Fichier:ShieldPWM_RFHV.jpg ‎|300px|thumb|center|Le shield PWM monté sur le robot]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées. Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa).&lt;br /&gt;
&lt;br /&gt;
Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'Arduino. La fonction prend donc en compte cette distinction&lt;br /&gt;
.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc toutes les bases pour la programmation du déplacement, il ne nous reste plus qu'à écrire la liste des positions successives des moteurs faisant se déplacer le robot. Nous utilisons pour la programmation l'IDE Arduino avec la bibliothèque du constructeur du shield : ''Adafruit_PWMServoDriver''&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de la [http://www.ti.com/lit/an/swra117d/swra117d.pdf datasheet] d'un dongle USB possédant une antenne WiFi 2,4 GHz&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antenne_RFHV.JPG|250px|thumb|left|Datasheet de l'antenne]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par créer un composant Antenne respectant les indications de la datasheet puis nous avons ajouté ce composant à notre shield pour le router. Nous avons ensuite récupéré une librairie sur internet contenant notre composant ESP8266, ce qui nous a permis de gagner du temps, n'ayant pas à créer ce composant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Pour cette séance, nous finissons la conception de la carte WiFi. Le routage nous aura pris un certain temps mais en fin de séance nous avons fini notre PCB.&lt;br /&gt;
Afin d'avoir le meilleur fonctionnement possible de l'antenne et du PCB nous avons du respecter certaines contraintes :&lt;br /&gt;
* la ligne de masse de l'antenne doit être la plus large possible&lt;br /&gt;
* la ligne reliant l'antenne à l'ESP8266 doit transmettre une impédance de 50Ω, ce qui correspond à une largeur de 0.5 mm&lt;br /&gt;
* les angles des lignes en entrée/sortie de l'antenne sont arrondis&lt;br /&gt;
* le PCB est gravé sur du FR4&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antennealtium_RFHV.JPG|250px|thumb|left|L'antenne réalisée sur Altium Designer]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Fichier:Schematicaltium_RFHV.JPG|400px|thumb|left|Schematic de la carte sur Altium]]&lt;br /&gt;
[[Fichier:Pcbaltium_RFHV.JPG|400px|thumb|center|PCB de la carte sur Altium]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Travail supplémentaire==&lt;br /&gt;
&lt;br /&gt;
Pendant la première semaine de vacances, nous avons profité de l'ouverture de l'école pour venir faire graver puis souder notre carte.&lt;br /&gt;
[[Fichier:PremierShield_RFHV.JPG|100px|thumb|center|Le shield réaliser et soudé]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite essayé d'utiliser notre carte mais celle ci ne fonctionne pas. En effet il nous apparaît impossible d'interagir avec l'ESP-04 dans l'état actuel.&lt;br /&gt;
Après avoir des recherches approfondies, il est apparu que le problème pouvait venir du fait que la liaison série de l'ESP8266 soit connecté aux ports UART de l'Arduino. Nous pouvons pour contourner cela, connecter la liaison série de l'ESP sur des entrées-sorties classiques de l'Arduino que nous utiliserons comme liaison série grâce à la librairie Arduino ''SoftwareSerial''.&lt;br /&gt;
De plus pour certains types d'ESP, il peut être utile d'abaisser la tension sortant du TX de l'Arduino et allant vers le RX de l'ESP. Nous avons donc modifier notre carte en soudant des fils et ajoutant le composants nécessaires pour baisser la tension.&lt;br /&gt;
[[Fichier:DeuxiemeShield_RFHV.JPG|100px|thumb|center|Le shield modifié]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec ces modifications, nous n'arrivons toujours pas à communiquer avec notre ESP8266.&lt;br /&gt;
La carte nous sera malgré tout utile puisque que l'alimentation et la masse commune (pour les capteurs et moteurs) fonctionne.&lt;br /&gt;
Arrivant à la fin du projet, nous demandons alors un ESP-01 qui, contrairement à notre ESP-04, à l'avantage d'être un circuit complet avec antenne et liaisons à des headers, prêt à l'emploi.&lt;br /&gt;
[[Fichier:ESP01_RFHV.JPG|100px|thumb|center|ESP-01]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec ce nouvel ESP, nous sommes capables de communiquer à travers le moniteur série de l'IDE Arduino. Le branchement de l'ESP sur l'Arduino se fait simplement selon le schéma suivant.&lt;br /&gt;
[[Fichier:schemaFritzing_RFHV.JPG|100px|thumb|center|Branchement ESP-01]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour interagir avec l'ESP, il faut utiliser des commandes AT qui vont nous permettre d'obtenir par exemple la liste des réseaux WiFi à proximité ainsi que leur RSSI (ce qui nous intéresse).&lt;br /&gt;
[[Fichier:CWLAP_RFHV.JPG|100px|thumb|center|AT+CWLAP]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, le robot est maintenant capable de se déplacer sans être relié à un ordinateur. Il est maintenant temps de lui implémenter les capteurs à ultrason pour lui permettre d'être autonome dans sont environnent. Les capteurs, qui seront fixés au chassie, doivent être à une dizaine de centimètres en hauteur pour que les pattes du robot lors du déplacent ne passent pas dans leur champs de vision. Pour cela nous modélisons des panneaux auxquels les capteurs seront fixés.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau3DModel_RFHV.JPG|100px|thumb|center|Model 3D du panneau]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et nous les réalisons à la découpeuse laser.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau_RFHV.JPG|100px|thumb|center|Panneau avec le capteur]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
Le robot en maintenait équipé d'un capteur à l'avant, un à gauche te un droite. Cela nous permet de coder différente fonction comme pour éviter un obstacle ou longer un mur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
&lt;br /&gt;
==Conception du robot==&lt;br /&gt;
&lt;br /&gt;
;La source d'inspiration principale pour la conception de notre robot hexapode :&lt;br /&gt;
&lt;br /&gt;
:https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
:https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped&lt;br /&gt;
&lt;br /&gt;
==Programmation déplacement==&lt;br /&gt;
&lt;br /&gt;
;La libraire utilisée pour la programmation du shield PWM :&lt;br /&gt;
&lt;br /&gt;
:https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/using-the-adafruit-library&lt;br /&gt;
&lt;br /&gt;
;Pour la programmation du capteur ultrason :&lt;br /&gt;
&lt;br /&gt;
:https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/&lt;br /&gt;
&lt;br /&gt;
==Programmation RSSI==&lt;br /&gt;
&lt;br /&gt;
;Datasheet de l'ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
;Pour la réalisation de l'antenne :&lt;br /&gt;
&lt;br /&gt;
:http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
&lt;br /&gt;
;La librairie Altium contenant les ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://github.com/SashsLab/ESP8266&lt;br /&gt;
&lt;br /&gt;
;Détail des commandes pour communiquer via liaison série avec l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf&lt;br /&gt;
&lt;br /&gt;
;Tutoriel pour la mise en place d'un serveur web sur l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://forum.arduino.cc/index.php?topic=501923.0&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75654</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75654"/>
				<updated>2019-05-09T10:50:44Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Travail supplémentaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 Piles rechargeables 1,2V pour l'alimentation des servomoteurs&lt;br /&gt;
&lt;br /&gt;
* 1 batterie externe pour l'alimentation de l'arduino&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Réalisation du robot&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| 2h&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3h&lt;br /&gt;
| 6h&lt;br /&gt;
| 5h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (1h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes renseignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Nous savons que le robot doit se déplacer et monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG1_RFHV.png|250px|thumb|left|Articulation d'une patte d'insecte]]&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur [https://www.thingiverse.com/thing:2204279 Thingiverse]&lt;br /&gt;
&lt;br /&gt;
Ce modèle est très courant dans la conception de robot hexapode et il imite le mouvement d'une patte d'insecte à l'aide de trois axes de rotations. La patte d'un insecte se divise en trois parties : le tibia, le fémur et le coxa.&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Il y aura trois servomoteurs sur chacune des six pattes du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG2_RFHV.jpg|200px|thumb|right|Articulation d'une patte du robot]]&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
'''Samedi matin (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces.&lt;br /&gt;
&lt;br /&gt;
Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel '''''Fusion 360''''' d'Autodesk car il existe une version gratuite, plutôt complète et prévue pour l’impression 3D.&lt;br /&gt;
Nous modifions donc les pièces et créons un nouveau prototype de pièce, qui a pour but de relier le coxa au châssis. Lors de la conception du châssis nous intégrerons directement cette pièce à celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce &amp;quot;prototype&amp;quot;]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançons donc l'impression des 6 tibias nécessaires au robot pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
'''Mardi (2h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique permettant de fixer les axes des servomoteurs aux pièces ainsi et les vis associées.&lt;br /&gt;
Nous finissons ensuite de travailler sur la conception du modèle de châssis. En fin de séance, il est terminé et prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le modèle de chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servo-moteurs et le début de programmation de mouvement d'une patte avec les ports PWM classiques de l'arduino (nous n'avons pas encore reçu notre shield PWM).&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les derniers servo-moteurs et éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servo-moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les axes servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot le plus vite possible.&lt;br /&gt;
&lt;br /&gt;
En fin de séance nous avons notre structure de robot montée, il ne reste qu'à y ajouter les autres composants (arduino, piles, ...).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez retrouvez sur l'archive git du projet toutes les pièces ayant étaient imprimées lors de la conception du robot.&lt;br /&gt;
[[Fichier:ROBOTNUDE_RFHV.jpg ‎|300px|thumb|center|Le robot monté]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Pour cette séance nous commençons donc la prise en main du matériel reçu : le module WiFi ESP8266 et les capteurs de distance ultrason.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|130px|thumb|left|ESP8266 - 04]]&lt;br /&gt;
'''''Le module WiFi ESP8266'''''&lt;br /&gt;
&lt;br /&gt;
L'ESP8266 est un microcontrôleur à bas coût permettant de travailler avec le signal WiFi. Il en existe différentes versions, la différence étant la présence ou non d'une antenne (et le type d'antenne) pour la réception du signal par exemple.&lt;br /&gt;
Le modèle que nous avons commandé est un ESP8266-04 qui ne possède pas d'antenne intégrée. Il va donc falloir que nous en concevions une nous même ou que nous en achetions une.&lt;br /&gt;
Nous devrons donc concevoir un PCB pour l'utilisation de l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|130px|thumb|left|Capteur Ultrason]]&lt;br /&gt;
'''''Les capteurs de distance ultrason'''''&lt;br /&gt;
&lt;br /&gt;
Les capteurs disposent de 4 pins : une entrée 5 V, un GND et deux pins TRIG et ECHO. Le fonctionnement de ces capteurs est assez simple : on indique sur le pin TRIG l'envoi d'un signal ultrason. Le signal est réfléchi contre l'obstacle le plus proche puis nous connaissons l'instant auquel il revient sur le capteur grâce au pin ECHO. il ne nous reste donc qu'à mesurer le temps mis par le signal entre l'envoi et la réception pour connaître la distance.  &lt;br /&gt;
&lt;br /&gt;
L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir au robot un champ de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à réfléchir à la façon de modéliser ces pièces cependant nous préférons attendre d'avoir monté les autres éléments sur le robot pour être sûr de bien les positionner afin d'éviter qu'ils ne soient pas gênés par les autres éléments.&lt;br /&gt;
&lt;br /&gt;
Il est aussi essentiel de savoir comment relier ces capteurs à l'Arduino. Un PCB devant être conçu pour la partie carte WiFi, nous pensons prévoir des connecteurs pour nos capteurs sur ce PCB.&lt;br /&gt;
&lt;br /&gt;
Nous avons par ailleurs réalisé un programme simple permettant la mesure de la distance avec un capteur. Il ne nous restera qu'à utiliser ce morceau de code lorsque nous programmerons le déplacement du robot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte WiFi qui sera intégrée à notre robot. Le composant ESP8266 qui va nous permettre de capter le flux RSSI et de le transmettre à notre Arduino nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un shield personnalisé qui se posera au dessus de notre shield PWM.&lt;br /&gt;
&lt;br /&gt;
L'Arduino pourra communiquer avec l'ESP8266 via une liaison série. Nous relions donc les ports série RX et TX de l'ESP aux ports UART (0 et 1) de l'arduino. Pour l'alimentation de l'ESP nous utilisons la broche 3,3V de l'Arduino Uno. Nous relions également le pin CH_PD de l'ESP à la broche 3,3V afin d'activer l'ESP.&lt;br /&gt;
&lt;br /&gt;
En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les capteurs à ultrasons qui équipent notre robot mais aussi pour les servomoteurs qui ne sont pas contrôlés par le shield PWM. Pour réaliser ce shield nous utilisons le logiciel gratuit '''''Fritzing'''''.&lt;br /&gt;
&lt;br /&gt;
Nous commençons le schematic de notre carte. Il nous parait plus efficace de poser notre shield WiFi au dessus du shield PWM, pour que l'antenne WiFi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'Arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Cependant mettre notre shield WiFi au dessus nécessite de lui donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard, il nous faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
'''Dimanche (2h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur '''''Inscape''''' (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de PCB précédemment réalisée, nous avons commencé à router le shield WiFi. Puisque notre composant ESP8266 ne possède pas d'antenne, nous avons décidé d'en tracer une sur la plaque du PCB. Cependant pour que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et également isoler cette partie du PCB d'une alimentation ou de tout autre composant pouvant interférer avec elle. Nous avançons donc dans le routage de la carte et commençons des recherches sur un modèle d'antenne que nous pourrons tracer sur notre PCB.&lt;br /&gt;
&lt;br /&gt;
Nous pensons finir la carte la semaine prochaine puis la faire graver et la tester.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de mettre de côté la carte WiFi et de s'occuper de la partie matérielle PWM qui nous permettra ensuite enfin de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de 1000 microfarad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'Arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'Arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
[[Fichier:ShieldPWM_RFHV.jpg ‎|300px|thumb|center|Le shield PWM monté sur le robot]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées. Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa).&lt;br /&gt;
&lt;br /&gt;
Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'Arduino. La fonction prend donc en compte cette distinction&lt;br /&gt;
.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc toutes les bases pour la programmation du déplacement, il ne nous reste plus qu'à écrire la liste des positions successives des moteurs faisant se déplacer le robot. Nous utilisons pour la programmation l'IDE Arduino avec la bibliothèque du constructeur du shield : ''Adafruit_PWMServoDriver''&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de la [http://www.ti.com/lit/an/swra117d/swra117d.pdf datasheet] d'un dongle USB possédant une antenne WiFi 2,4 GHz&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antenne_RFHV.JPG|250px|thumb|left|Datasheet de l'antenne]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par créer un composant Antenne respectant les indications de la datasheet puis nous avons ajouté ce composant à notre shield pour le router. Nous avons ensuite récupéré une librairie sur internet contenant notre composant ESP8266, ce qui nous a permis de gagner du temps, n'ayant pas à créer ce composant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Pour cette séance, nous finissons la conception de la carte WiFi. Le routage nous aura pris un certain temps mais en fin de séance nous avons fini notre PCB.&lt;br /&gt;
Afin d'avoir le meilleur fonctionnement possible de l'antenne et du PCB nous avons du respecter certaines contraintes :&lt;br /&gt;
* la ligne de masse de l'antenne doit être la plus large possible&lt;br /&gt;
* la ligne reliant l'antenne à l'ESP8266 doit transmettre une impédance de 50Ω, ce qui correspond à une largeur de 0.5 mm&lt;br /&gt;
* les angles des lignes en entrée/sortie de l'antenne sont arrondis&lt;br /&gt;
* le PCB est gravé sur du FR4&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antennealtium_RFHV.JPG|250px|thumb|left|L'antenne réalisée sur Altium Designer]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Fichier:Schematicaltium_RFHV.JPG|400px|thumb|left|Schematic de la carte sur Altium]]&lt;br /&gt;
[[Fichier:Pcbaltium_RFHV.JPG|400px|thumb|center|PCB de la carte sur Altium]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Travail supplémentaire==&lt;br /&gt;
&lt;br /&gt;
Pendant la première semaine de vacances, nous avons profité de l'ouverture de l'école pour venir faire graver puis souder notre carte.&lt;br /&gt;
[[Fichier:PremierShield_RFHV.JPG|100px|thumb|left|Le shield réaliser et soudé]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite essayé d'utiliser notre carte mais celle ci ne fonctionne pas. En effet il nous apparaît impossible d'interagir avec l'ESP-04 dans l'état actuel.&lt;br /&gt;
Après avoir des recherches approfondies, il est apparu que le problème pouvait venir du fait que la liaison série de l'ESP8266 soit connecté aux ports UART de l'Arduino. Nous pouvons pour contourner cela, connecter la liaison série de l'ESP sur des entrées-sorties classiques de l'Arduino que nous utiliserons comme liaison série grâce à la librairie Arduino ''SoftwareSerial''.&lt;br /&gt;
De plus pour certains types d'ESP, il peut être utile d'abaisser la tension sortant du TX de l'Arduino et allant vers le RX de l'ESP. Nous avons donc modifier notre carte en soudant des fils et ajoutant le composants nécessaires pour baisser la tension.&lt;br /&gt;
[[Fichier:DeuxiemeShield_RFHV.JPG|100px|thumb|left|Le shield modifié]]&lt;br /&gt;
&lt;br /&gt;
Avec ces modifications, nous n'arrivons toujours pas à communiquer avec notre ESP8266.&lt;br /&gt;
La carte nous sera malgré tout utile puisque que l'alimentation et la masse commune (pour les capteurs et moteurs) fonctionne.&lt;br /&gt;
Arrivant à la fin du projet, nous demandons alors un ESP-01 qui, contrairement à notre ESP-04, à l'avantage d'être un circuit complet avec antenne et liaisons à des headers, prêt à l'emploi.&lt;br /&gt;
[[Fichier:ESP01_RFHV.JPG|100px|thumb|left|ESP-01]]&lt;br /&gt;
&lt;br /&gt;
Avec ce nouvel ESP, nous sommes capables de communiquer à travers le moniteur série de l'IDE Arduino. Le branchement de l'ESP sur l'Arduino se fait simplement selon le schéma suivant.&lt;br /&gt;
[[Fichier:schemaFritzing_RFHV.JPG|100px|thumb|left|Branchement ESP-01]]&lt;br /&gt;
&lt;br /&gt;
Pour interagir avec l'ESP, il faut utiliser des commandes AT qui vont nous permettre d'obtenir par exemple la liste des réseaux WiFi à proximité ainsi que leur RSSI (ce qui nous intéresse).&lt;br /&gt;
[[Fichier:CWLAP_RFHV.JPG|100px|thumb|left|AT+CWLAP]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, le robot est maintenant capable de se déplacer sans être relié à un ordinateur. Il est maintenant temps de lui implémenter les capteurs à ultrason pour lui permettre d'être autonome dans sont environnent. Les capteurs, qui seront fixés au chassie, doivent être à une dizaine de centimètres en hauteur pour que les pattes du robot lors du déplacent ne passent pas dans leur champs de vision. Pour cela nous modélisons des panneaux auxquels les capteurs seront fixés.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau3DModel_RFHV.JPG|100px|thumb|left|Model 3D du panneau]]&lt;br /&gt;
&lt;br /&gt;
Et nous les réalisons à la découpeuse laser.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau_RFHV.JPG|100px|thumb|left|Panneau avec le capteur]]&lt;br /&gt;
     &lt;br /&gt;
Le robot en maintenait équipé d'un capteur à l'avant, un à gauche te un droite. Cela nous permet de coder différente fonction comme pour éviter un obstacle ou longer un mur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
&lt;br /&gt;
==Conception du robot==&lt;br /&gt;
&lt;br /&gt;
;La source d'inspiration principale pour la conception de notre robot hexapode :&lt;br /&gt;
&lt;br /&gt;
:https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
:https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped&lt;br /&gt;
&lt;br /&gt;
==Programmation déplacement==&lt;br /&gt;
&lt;br /&gt;
;La libraire utilisée pour la programmation du shield PWM :&lt;br /&gt;
&lt;br /&gt;
:https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/using-the-adafruit-library&lt;br /&gt;
&lt;br /&gt;
;Pour la programmation du capteur ultrason :&lt;br /&gt;
&lt;br /&gt;
:https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/&lt;br /&gt;
&lt;br /&gt;
==Programmation RSSI==&lt;br /&gt;
&lt;br /&gt;
;Datasheet de l'ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
;Pour la réalisation de l'antenne :&lt;br /&gt;
&lt;br /&gt;
:http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
&lt;br /&gt;
;La librairie Altium contenant les ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://github.com/SashsLab/ESP8266&lt;br /&gt;
&lt;br /&gt;
;Détail des commandes pour communiquer via liaison série avec l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf&lt;br /&gt;
&lt;br /&gt;
;Tutoriel pour la mise en place d'un serveur web sur l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://forum.arduino.cc/index.php?topic=501923.0&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:DeuxiemeShield_RFHV.JPG&amp;diff=75652</id>
		<title>Fichier:DeuxiemeShield RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:DeuxiemeShield_RFHV.JPG&amp;diff=75652"/>
				<updated>2019-05-09T10:49:35Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : Hvelly a téléversé une nouvelle version de Fichier:DeuxiemeShield RFHV.JPG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:DeuxiemeShield_RFHV.JPG&amp;diff=75650</id>
		<title>Fichier:DeuxiemeShield RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:DeuxiemeShield_RFHV.JPG&amp;diff=75650"/>
				<updated>2019-05-09T10:48:50Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75649</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75649"/>
				<updated>2019-05-09T10:48:14Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Travail supplémentaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 Piles rechargeables 1,2V pour l'alimentation des servomoteurs&lt;br /&gt;
&lt;br /&gt;
* 1 batterie externe pour l'alimentation de l'arduino&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Réalisation du robot&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| 2h&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3h&lt;br /&gt;
| 6h&lt;br /&gt;
| 5h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (1h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes renseignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Nous savons que le robot doit se déplacer et monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG1_RFHV.png|250px|thumb|left|Articulation d'une patte d'insecte]]&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur [https://www.thingiverse.com/thing:2204279 Thingiverse]&lt;br /&gt;
&lt;br /&gt;
Ce modèle est très courant dans la conception de robot hexapode et il imite le mouvement d'une patte d'insecte à l'aide de trois axes de rotations. La patte d'un insecte se divise en trois parties : le tibia, le fémur et le coxa.&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Il y aura trois servomoteurs sur chacune des six pattes du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG2_RFHV.jpg|200px|thumb|right|Articulation d'une patte du robot]]&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
'''Samedi matin (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces.&lt;br /&gt;
&lt;br /&gt;
Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel '''''Fusion 360''''' d'Autodesk car il existe une version gratuite, plutôt complète et prévue pour l’impression 3D.&lt;br /&gt;
Nous modifions donc les pièces et créons un nouveau prototype de pièce, qui a pour but de relier le coxa au châssis. Lors de la conception du châssis nous intégrerons directement cette pièce à celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce &amp;quot;prototype&amp;quot;]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançons donc l'impression des 6 tibias nécessaires au robot pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
'''Mardi (2h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique permettant de fixer les axes des servomoteurs aux pièces ainsi et les vis associées.&lt;br /&gt;
Nous finissons ensuite de travailler sur la conception du modèle de châssis. En fin de séance, il est terminé et prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le modèle de chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servo-moteurs et le début de programmation de mouvement d'une patte avec les ports PWM classiques de l'arduino (nous n'avons pas encore reçu notre shield PWM).&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les derniers servo-moteurs et éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servo-moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les axes servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot le plus vite possible.&lt;br /&gt;
&lt;br /&gt;
En fin de séance nous avons notre structure de robot montée, il ne reste qu'à y ajouter les autres composants (arduino, piles, ...).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez retrouvez sur l'archive git du projet toutes les pièces ayant étaient imprimées lors de la conception du robot.&lt;br /&gt;
[[Fichier:ROBOTNUDE_RFHV.jpg ‎|300px|thumb|center|Le robot monté]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Pour cette séance nous commençons donc la prise en main du matériel reçu : le module WiFi ESP8266 et les capteurs de distance ultrason.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|130px|thumb|left|ESP8266 - 04]]&lt;br /&gt;
'''''Le module WiFi ESP8266'''''&lt;br /&gt;
&lt;br /&gt;
L'ESP8266 est un microcontrôleur à bas coût permettant de travailler avec le signal WiFi. Il en existe différentes versions, la différence étant la présence ou non d'une antenne (et le type d'antenne) pour la réception du signal par exemple.&lt;br /&gt;
Le modèle que nous avons commandé est un ESP8266-04 qui ne possède pas d'antenne intégrée. Il va donc falloir que nous en concevions une nous même ou que nous en achetions une.&lt;br /&gt;
Nous devrons donc concevoir un PCB pour l'utilisation de l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|130px|thumb|left|Capteur Ultrason]]&lt;br /&gt;
'''''Les capteurs de distance ultrason'''''&lt;br /&gt;
&lt;br /&gt;
Les capteurs disposent de 4 pins : une entrée 5 V, un GND et deux pins TRIG et ECHO. Le fonctionnement de ces capteurs est assez simple : on indique sur le pin TRIG l'envoi d'un signal ultrason. Le signal est réfléchi contre l'obstacle le plus proche puis nous connaissons l'instant auquel il revient sur le capteur grâce au pin ECHO. il ne nous reste donc qu'à mesurer le temps mis par le signal entre l'envoi et la réception pour connaître la distance.  &lt;br /&gt;
&lt;br /&gt;
L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir au robot un champ de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à réfléchir à la façon de modéliser ces pièces cependant nous préférons attendre d'avoir monté les autres éléments sur le robot pour être sûr de bien les positionner afin d'éviter qu'ils ne soient pas gênés par les autres éléments.&lt;br /&gt;
&lt;br /&gt;
Il est aussi essentiel de savoir comment relier ces capteurs à l'Arduino. Un PCB devant être conçu pour la partie carte WiFi, nous pensons prévoir des connecteurs pour nos capteurs sur ce PCB.&lt;br /&gt;
&lt;br /&gt;
Nous avons par ailleurs réalisé un programme simple permettant la mesure de la distance avec un capteur. Il ne nous restera qu'à utiliser ce morceau de code lorsque nous programmerons le déplacement du robot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte WiFi qui sera intégrée à notre robot. Le composant ESP8266 qui va nous permettre de capter le flux RSSI et de le transmettre à notre Arduino nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un shield personnalisé qui se posera au dessus de notre shield PWM.&lt;br /&gt;
&lt;br /&gt;
L'Arduino pourra communiquer avec l'ESP8266 via une liaison série. Nous relions donc les ports série RX et TX de l'ESP aux ports UART (0 et 1) de l'arduino. Pour l'alimentation de l'ESP nous utilisons la broche 3,3V de l'Arduino Uno. Nous relions également le pin CH_PD de l'ESP à la broche 3,3V afin d'activer l'ESP.&lt;br /&gt;
&lt;br /&gt;
En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les capteurs à ultrasons qui équipent notre robot mais aussi pour les servomoteurs qui ne sont pas contrôlés par le shield PWM. Pour réaliser ce shield nous utilisons le logiciel gratuit '''''Fritzing'''''.&lt;br /&gt;
&lt;br /&gt;
Nous commençons le schematic de notre carte. Il nous parait plus efficace de poser notre shield WiFi au dessus du shield PWM, pour que l'antenne WiFi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'Arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Cependant mettre notre shield WiFi au dessus nécessite de lui donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard, il nous faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
'''Dimanche (2h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur '''''Inscape''''' (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de PCB précédemment réalisée, nous avons commencé à router le shield WiFi. Puisque notre composant ESP8266 ne possède pas d'antenne, nous avons décidé d'en tracer une sur la plaque du PCB. Cependant pour que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et également isoler cette partie du PCB d'une alimentation ou de tout autre composant pouvant interférer avec elle. Nous avançons donc dans le routage de la carte et commençons des recherches sur un modèle d'antenne que nous pourrons tracer sur notre PCB.&lt;br /&gt;
&lt;br /&gt;
Nous pensons finir la carte la semaine prochaine puis la faire graver et la tester.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de mettre de côté la carte WiFi et de s'occuper de la partie matérielle PWM qui nous permettra ensuite enfin de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de 1000 microfarad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'Arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'Arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
[[Fichier:ShieldPWM_RFHV.jpg ‎|300px|thumb|center|Le shield PWM monté sur le robot]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées. Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa).&lt;br /&gt;
&lt;br /&gt;
Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'Arduino. La fonction prend donc en compte cette distinction&lt;br /&gt;
.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc toutes les bases pour la programmation du déplacement, il ne nous reste plus qu'à écrire la liste des positions successives des moteurs faisant se déplacer le robot. Nous utilisons pour la programmation l'IDE Arduino avec la bibliothèque du constructeur du shield : ''Adafruit_PWMServoDriver''&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de la [http://www.ti.com/lit/an/swra117d/swra117d.pdf datasheet] d'un dongle USB possédant une antenne WiFi 2,4 GHz&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antenne_RFHV.JPG|250px|thumb|left|Datasheet de l'antenne]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par créer un composant Antenne respectant les indications de la datasheet puis nous avons ajouté ce composant à notre shield pour le router. Nous avons ensuite récupéré une librairie sur internet contenant notre composant ESP8266, ce qui nous a permis de gagner du temps, n'ayant pas à créer ce composant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Pour cette séance, nous finissons la conception de la carte WiFi. Le routage nous aura pris un certain temps mais en fin de séance nous avons fini notre PCB.&lt;br /&gt;
Afin d'avoir le meilleur fonctionnement possible de l'antenne et du PCB nous avons du respecter certaines contraintes :&lt;br /&gt;
* la ligne de masse de l'antenne doit être la plus large possible&lt;br /&gt;
* la ligne reliant l'antenne à l'ESP8266 doit transmettre une impédance de 50Ω, ce qui correspond à une largeur de 0.5 mm&lt;br /&gt;
* les angles des lignes en entrée/sortie de l'antenne sont arrondis&lt;br /&gt;
* le PCB est gravé sur du FR4&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antennealtium_RFHV.JPG|250px|thumb|left|L'antenne réalisée sur Altium Designer]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Fichier:Schematicaltium_RFHV.JPG|400px|thumb|left|Schematic de la carte sur Altium]]&lt;br /&gt;
[[Fichier:Pcbaltium_RFHV.JPG|400px|thumb|center|PCB de la carte sur Altium]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Travail supplémentaire==&lt;br /&gt;
&lt;br /&gt;
Pendant la première semaine de vacances, nous avons profité de l'ouverture de l'école pour venir faire graver puis souder notre carte.&lt;br /&gt;
[[Fichier:PremierShield_RFHV.JPG|250px|thumb|left|Le shield réaliser et soudé]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite essayé d'utiliser notre carte mais celle ci ne fonctionne pas. En effet il nous apparaît impossible d'interagir avec l'ESP-04 dans l'état actuel.&lt;br /&gt;
Après avoir des recherches approfondies, il est apparu que le problème pouvait venir du fait que la liaison série de l'ESP8266 soit connecté aux ports UART de l'Arduino. Nous pouvons pour contourner cela, connecter la liaison série de l'ESP sur des entrées-sorties classiques de l'Arduino que nous utiliserons comme liaison série grâce à la librairie Arduino ''SoftwareSerial''.&lt;br /&gt;
De plus pour certains types d'ESP, il peut être utile d'abaisser la tension sortant du TX de l'Arduino et allant vers le RX de l'ESP. Nous avons donc modifier notre carte en soudant des fils et ajoutant le composants nécessaires pour baisser la tension.&lt;br /&gt;
[[Fichier:DeuxiemeShield_RFHV.JPG|250px|thumb|left|Le shield modifié]]&lt;br /&gt;
&lt;br /&gt;
Avec ces modifications, nous n'arrivons toujours pas à communiquer avec notre ESP8266.&lt;br /&gt;
La carte nous sera malgré tout utile puisque que l'alimentation et la masse commune (pour les capteurs et moteurs) fonctionne.&lt;br /&gt;
Arrivant à la fin du projet, nous demandons alors un ESP-01 qui, contrairement à notre ESP-04, à l'avantage d'être un circuit complet avec antenne et liaisons à des headers, prêt à l'emploi.&lt;br /&gt;
[[Fichier:ESP01_RFHV.JPG|250px|thumb|left|ESP-01]]&lt;br /&gt;
&lt;br /&gt;
Avec ce nouvel ESP, nous sommes capables de communiquer à travers le moniteur série de l'IDE Arduino. Le branchement de l'ESP sur l'Arduino se fait simplement selon le schéma suivant.&lt;br /&gt;
[[Fichier:schemaFritzing_RFHV.JPG|250px|thumb|left|Branchement ESP-01]]&lt;br /&gt;
&lt;br /&gt;
Pour interagir avec l'ESP, il faut utiliser des commandes AT qui vont nous permettre d'obtenir par exemple la liste des réseaux WiFi à proximité ainsi que leur RSSI (ce qui nous intéresse).&lt;br /&gt;
[[Fichier:CWLAP_RFHV.JPG|250px|thumb|left|AT+CWLAP]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, le robot est maintenant capable de se déplacer sans être relié à un ordinateur. Il est maintenant temps de lui implémenter les capteurs à ultrason pour lui permettre d'être autonome dans sont environnent. Les capteurs, qui seront fixés au chassie, doivent être à une dizaine de centimètres en hauteur pour que les pattes du robot lors du déplacent ne passent pas dans leur champs de vision. Pour cela nous modélisons des panneaux auxquels les capteurs seront fixés.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau3DModel_RFHV.JPG|250px|thumb|left|Model 3D du panneau]]&lt;br /&gt;
&lt;br /&gt;
Et nous les réalisons à la découpeuse laser.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Panneau_RFHV.JPG|250px|thumb|left|Panneau avec le capteur]]&lt;br /&gt;
     &lt;br /&gt;
Le robot en maintenait équipé d'un capteur à l'avant, un à gauche te un droite. Cela nous permet de coder différente fonction comme pour éviter un obstacle ou longer un mur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
&lt;br /&gt;
==Conception du robot==&lt;br /&gt;
&lt;br /&gt;
;La source d'inspiration principale pour la conception de notre robot hexapode :&lt;br /&gt;
&lt;br /&gt;
:https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
:https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped&lt;br /&gt;
&lt;br /&gt;
==Programmation déplacement==&lt;br /&gt;
&lt;br /&gt;
;La libraire utilisée pour la programmation du shield PWM :&lt;br /&gt;
&lt;br /&gt;
:https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/using-the-adafruit-library&lt;br /&gt;
&lt;br /&gt;
;Pour la programmation du capteur ultrason :&lt;br /&gt;
&lt;br /&gt;
:https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/&lt;br /&gt;
&lt;br /&gt;
==Programmation RSSI==&lt;br /&gt;
&lt;br /&gt;
;Datasheet de l'ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
;Pour la réalisation de l'antenne :&lt;br /&gt;
&lt;br /&gt;
:http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
&lt;br /&gt;
;La librairie Altium contenant les ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://github.com/SashsLab/ESP8266&lt;br /&gt;
&lt;br /&gt;
;Détail des commandes pour communiquer via liaison série avec l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf&lt;br /&gt;
&lt;br /&gt;
;Tutoriel pour la mise en place d'un serveur web sur l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://forum.arduino.cc/index.php?topic=501923.0&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:PremierShield_RFHV.JPG&amp;diff=75647</id>
		<title>Fichier:PremierShield RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:PremierShield_RFHV.JPG&amp;diff=75647"/>
				<updated>2019-05-09T10:43:00Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : Hvelly a téléversé une nouvelle version de Fichier:PremierShield RFHV.JPG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:PremierShield_RFHV.JPG&amp;diff=75646</id>
		<title>Fichier:PremierShield RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:PremierShield_RFHV.JPG&amp;diff=75646"/>
				<updated>2019-05-09T10:42:00Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75645</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75645"/>
				<updated>2019-05-09T10:41:19Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Travail supplémentaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 Piles rechargeables 1,2V pour l'alimentation des servomoteurs&lt;br /&gt;
&lt;br /&gt;
* 1 batterie externe pour l'alimentation de l'arduino&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Réalisation du robot&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| 2h&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3h&lt;br /&gt;
| 6h&lt;br /&gt;
| 5h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (1h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes renseignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Nous savons que le robot doit se déplacer et monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG1_RFHV.png|250px|thumb|left|Articulation d'une patte d'insecte]]&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur [https://www.thingiverse.com/thing:2204279 Thingiverse]&lt;br /&gt;
&lt;br /&gt;
Ce modèle est très courant dans la conception de robot hexapode et il imite le mouvement d'une patte d'insecte à l'aide de trois axes de rotations. La patte d'un insecte se divise en trois parties : le tibia, le fémur et le coxa.&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Il y aura trois servomoteurs sur chacune des six pattes du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG2_RFHV.jpg|200px|thumb|right|Articulation d'une patte du robot]]&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
'''Samedi matin (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces.&lt;br /&gt;
&lt;br /&gt;
Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel '''''Fusion 360''''' d'Autodesk car il existe une version gratuite, plutôt complète et prévue pour l’impression 3D.&lt;br /&gt;
Nous modifions donc les pièces et créons un nouveau prototype de pièce, qui a pour but de relier le coxa au châssis. Lors de la conception du châssis nous intégrerons directement cette pièce à celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce &amp;quot;prototype&amp;quot;]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançons donc l'impression des 6 tibias nécessaires au robot pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
'''Mardi (2h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique permettant de fixer les axes des servomoteurs aux pièces ainsi et les vis associées.&lt;br /&gt;
Nous finissons ensuite de travailler sur la conception du modèle de châssis. En fin de séance, il est terminé et prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le modèle de chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servo-moteurs et le début de programmation de mouvement d'une patte avec les ports PWM classiques de l'arduino (nous n'avons pas encore reçu notre shield PWM).&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les derniers servo-moteurs et éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servo-moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les axes servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot le plus vite possible.&lt;br /&gt;
&lt;br /&gt;
En fin de séance nous avons notre structure de robot montée, il ne reste qu'à y ajouter les autres composants (arduino, piles, ...).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez retrouvez sur l'archive git du projet toutes les pièces ayant étaient imprimées lors de la conception du robot.&lt;br /&gt;
[[Fichier:ROBOTNUDE_RFHV.jpg ‎|300px|thumb|center|Le robot monté]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Pour cette séance nous commençons donc la prise en main du matériel reçu : le module WiFi ESP8266 et les capteurs de distance ultrason.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|130px|thumb|left|ESP8266 - 04]]&lt;br /&gt;
'''''Le module WiFi ESP8266'''''&lt;br /&gt;
&lt;br /&gt;
L'ESP8266 est un microcontrôleur à bas coût permettant de travailler avec le signal WiFi. Il en existe différentes versions, la différence étant la présence ou non d'une antenne (et le type d'antenne) pour la réception du signal par exemple.&lt;br /&gt;
Le modèle que nous avons commandé est un ESP8266-04 qui ne possède pas d'antenne intégrée. Il va donc falloir que nous en concevions une nous même ou que nous en achetions une.&lt;br /&gt;
Nous devrons donc concevoir un PCB pour l'utilisation de l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|130px|thumb|left|Capteur Ultrason]]&lt;br /&gt;
'''''Les capteurs de distance ultrason'''''&lt;br /&gt;
&lt;br /&gt;
Les capteurs disposent de 4 pins : une entrée 5 V, un GND et deux pins TRIG et ECHO. Le fonctionnement de ces capteurs est assez simple : on indique sur le pin TRIG l'envoi d'un signal ultrason. Le signal est réfléchi contre l'obstacle le plus proche puis nous connaissons l'instant auquel il revient sur le capteur grâce au pin ECHO. il ne nous reste donc qu'à mesurer le temps mis par le signal entre l'envoi et la réception pour connaître la distance.  &lt;br /&gt;
&lt;br /&gt;
L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir au robot un champ de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à réfléchir à la façon de modéliser ces pièces cependant nous préférons attendre d'avoir monté les autres éléments sur le robot pour être sûr de bien les positionner afin d'éviter qu'ils ne soient pas gênés par les autres éléments.&lt;br /&gt;
&lt;br /&gt;
Il est aussi essentiel de savoir comment relier ces capteurs à l'Arduino. Un PCB devant être conçu pour la partie carte WiFi, nous pensons prévoir des connecteurs pour nos capteurs sur ce PCB.&lt;br /&gt;
&lt;br /&gt;
Nous avons par ailleurs réalisé un programme simple permettant la mesure de la distance avec un capteur. Il ne nous restera qu'à utiliser ce morceau de code lorsque nous programmerons le déplacement du robot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte WiFi qui sera intégrée à notre robot. Le composant ESP8266 qui va nous permettre de capter le flux RSSI et de le transmettre à notre Arduino nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un shield personnalisé qui se posera au dessus de notre shield PWM.&lt;br /&gt;
&lt;br /&gt;
L'Arduino pourra communiquer avec l'ESP8266 via une liaison série. Nous relions donc les ports série RX et TX de l'ESP aux ports UART (0 et 1) de l'arduino. Pour l'alimentation de l'ESP nous utilisons la broche 3,3V de l'Arduino Uno. Nous relions également le pin CH_PD de l'ESP à la broche 3,3V afin d'activer l'ESP.&lt;br /&gt;
&lt;br /&gt;
En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les capteurs à ultrasons qui équipent notre robot mais aussi pour les servomoteurs qui ne sont pas contrôlés par le shield PWM. Pour réaliser ce shield nous utilisons le logiciel gratuit '''''Fritzing'''''.&lt;br /&gt;
&lt;br /&gt;
Nous commençons le schematic de notre carte. Il nous parait plus efficace de poser notre shield WiFi au dessus du shield PWM, pour que l'antenne WiFi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'Arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Cependant mettre notre shield WiFi au dessus nécessite de lui donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard, il nous faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
'''Dimanche (2h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur '''''Inscape''''' (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de PCB précédemment réalisée, nous avons commencé à router le shield WiFi. Puisque notre composant ESP8266 ne possède pas d'antenne, nous avons décidé d'en tracer une sur la plaque du PCB. Cependant pour que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et également isoler cette partie du PCB d'une alimentation ou de tout autre composant pouvant interférer avec elle. Nous avançons donc dans le routage de la carte et commençons des recherches sur un modèle d'antenne que nous pourrons tracer sur notre PCB.&lt;br /&gt;
&lt;br /&gt;
Nous pensons finir la carte la semaine prochaine puis la faire graver et la tester.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de mettre de côté la carte WiFi et de s'occuper de la partie matérielle PWM qui nous permettra ensuite enfin de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de 1000 microfarad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'Arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'Arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
[[Fichier:ShieldPWM_RFHV.jpg ‎|300px|thumb|center|Le shield PWM monté sur le robot]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées. Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa).&lt;br /&gt;
&lt;br /&gt;
Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'Arduino. La fonction prend donc en compte cette distinction&lt;br /&gt;
.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc toutes les bases pour la programmation du déplacement, il ne nous reste plus qu'à écrire la liste des positions successives des moteurs faisant se déplacer le robot. Nous utilisons pour la programmation l'IDE Arduino avec la bibliothèque du constructeur du shield : ''Adafruit_PWMServoDriver''&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de la [http://www.ti.com/lit/an/swra117d/swra117d.pdf datasheet] d'un dongle USB possédant une antenne WiFi 2,4 GHz&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antenne_RFHV.JPG|250px|thumb|left|Datasheet de l'antenne]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par créer un composant Antenne respectant les indications de la datasheet puis nous avons ajouté ce composant à notre shield pour le router. Nous avons ensuite récupéré une librairie sur internet contenant notre composant ESP8266, ce qui nous a permis de gagner du temps, n'ayant pas à créer ce composant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Pour cette séance, nous finissons la conception de la carte WiFi. Le routage nous aura pris un certain temps mais en fin de séance nous avons fini notre PCB.&lt;br /&gt;
Afin d'avoir le meilleur fonctionnement possible de l'antenne et du PCB nous avons du respecter certaines contraintes :&lt;br /&gt;
* la ligne de masse de l'antenne doit être la plus large possible&lt;br /&gt;
* la ligne reliant l'antenne à l'ESP8266 doit transmettre une impédance de 50Ω, ce qui correspond à une largeur de 0.5 mm&lt;br /&gt;
* les angles des lignes en entrée/sortie de l'antenne sont arrondis&lt;br /&gt;
* le PCB est gravé sur du FR4&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antennealtium_RFHV.JPG|250px|thumb|left|L'antenne réalisée sur Altium Designer]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Fichier:Schematicaltium_RFHV.JPG|400px|thumb|left|Schematic de la carte sur Altium]]&lt;br /&gt;
[[Fichier:Pcbaltium_RFHV.JPG|400px|thumb|center|PCB de la carte sur Altium]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Travail supplémentaire==&lt;br /&gt;
&lt;br /&gt;
Pendant la première semaine de vacances, nous avons profité de l'ouverture de l'école pour venir faire graver puis souder notre carte.&lt;br /&gt;
[[Fichier:PremierShield_RFHV.JPG|250px|thumb|left|L'antenne réalisée sur Altium Designer]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite essayé d'utiliser notre carte mais celle ci ne fonctionne pas. En effet il nous apparaît impossible d'interagir avec l'ESP-04 dans l'état actuel.&lt;br /&gt;
Après avoir des recherches approfondies, il est apparu que le problème pouvait venir du fait que la liaison série de l'ESP8266 soit connecté aux ports UART de l'Arduino. Nous pouvons pour contourner cela, connecter la liaison série de l'ESP sur des entrées-sorties classiques de l'Arduino que nous utiliserons comme liaison série grâce à la librairie Arduino ''SoftwareSerial''.&lt;br /&gt;
De plus pour certains types d'ESP, il peut être utile d'abaisser la tension sortant du TX de l'Arduino et allant vers le RX de l'ESP. Nous avons donc modifier notre carte en soudant des fils et ajoutant le composants nécessaires pour baisser la tension.&lt;br /&gt;
[photo deuxième shield]&lt;br /&gt;
&lt;br /&gt;
Avec ces modifications, nous n'arrivons toujours pas à communiquer avec notre ESP8266.&lt;br /&gt;
La carte nous sera malgré tout utile puisque que l'alimentation et la masse commune (pour les capteurs et moteurs) fonctionne.&lt;br /&gt;
Arrivant à la fin du projet, nous demandons alors un ESP-01 qui, contrairement à notre ESP-04, à l'avantage d'être un circuit complet avec antenne et liaisons à des headers, prêt à l'emploi.&lt;br /&gt;
[photo ESP-01]&lt;br /&gt;
&lt;br /&gt;
Avec ce nouvel ESP, nous sommes capables de communiquer à travers le moniteur série de l'IDE Arduino. Le branchement de l'ESP sur l'Arduino se fait simplement selon le schéma suivant.&lt;br /&gt;
[schéma fritzing esp arduino]&lt;br /&gt;
&lt;br /&gt;
Pour interagir avec l'ESP, il faut utiliser des commandes AT qui vont nous permettre d'obtenir par exemple la liste des réseaux WiFi à proximité ainsi que leur RSSI (ce qui nous intéresse).&lt;br /&gt;
[screnn AT+CWLAP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, le robot est maintenant capable de se déplacer sans être relié à un ordinateur. Il est maintenant temps de lui implémenter les capteurs à ultrason pour lui permettre d'être autonome dans sont environnent. Les capteurs, qui seront fixés au chassie, doivent être à une dizaine de centimètres en hauteur pour que les pattes du robot lors du déplacent ne passent pas dans leur champs de vision. Pour cela nous modélisons des panneaux auxquels les capteurs seront fixés.&lt;br /&gt;
&lt;br /&gt;
[photo model 3d]&lt;br /&gt;
&lt;br /&gt;
Et nous les réalisons à la découpeuse laser.&lt;br /&gt;
&lt;br /&gt;
[Photo panneaux finis]&lt;br /&gt;
     &lt;br /&gt;
Le robot en maintenait équipé d'un capteur à l'avant, un à gauche te un droite. Cela nous permet de coder différente fonction comme pour éviter un obstacle ou longer un mur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
&lt;br /&gt;
==Conception du robot==&lt;br /&gt;
&lt;br /&gt;
;La source d'inspiration principale pour la conception de notre robot hexapode :&lt;br /&gt;
&lt;br /&gt;
:https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
:https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped&lt;br /&gt;
&lt;br /&gt;
==Programmation déplacement==&lt;br /&gt;
&lt;br /&gt;
;La libraire utilisée pour la programmation du shield PWM :&lt;br /&gt;
&lt;br /&gt;
:https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/using-the-adafruit-library&lt;br /&gt;
&lt;br /&gt;
;Pour la programmation du capteur ultrason :&lt;br /&gt;
&lt;br /&gt;
:https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/&lt;br /&gt;
&lt;br /&gt;
==Programmation RSSI==&lt;br /&gt;
&lt;br /&gt;
;Datasheet de l'ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
;Pour la réalisation de l'antenne :&lt;br /&gt;
&lt;br /&gt;
:http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
&lt;br /&gt;
;La librairie Altium contenant les ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://github.com/SashsLab/ESP8266&lt;br /&gt;
&lt;br /&gt;
;Détail des commandes pour communiquer via liaison série avec l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf&lt;br /&gt;
&lt;br /&gt;
;Tutoriel pour la mise en place d'un serveur web sur l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://forum.arduino.cc/index.php?topic=501923.0&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75644</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=75644"/>
				<updated>2019-05-09T10:38:36Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Travail supplémentaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 Piles rechargeables 1,2V pour l'alimentation des servomoteurs&lt;br /&gt;
&lt;br /&gt;
* 1 batterie externe pour l'alimentation de l'arduino&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Réalisation du robot&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| 2h&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3h&lt;br /&gt;
| 6h&lt;br /&gt;
| 5h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (1h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes renseignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Nous savons que le robot doit se déplacer et monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG1_RFHV.png|250px|thumb|left|Articulation d'une patte d'insecte]]&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur [https://www.thingiverse.com/thing:2204279 Thingiverse]&lt;br /&gt;
&lt;br /&gt;
Ce modèle est très courant dans la conception de robot hexapode et il imite le mouvement d'une patte d'insecte à l'aide de trois axes de rotations. La patte d'un insecte se divise en trois parties : le tibia, le fémur et le coxa.&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Il y aura trois servomoteurs sur chacune des six pattes du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG2_RFHV.jpg|200px|thumb|right|Articulation d'une patte du robot]]&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
'''Samedi matin (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces.&lt;br /&gt;
&lt;br /&gt;
Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel '''''Fusion 360''''' d'Autodesk car il existe une version gratuite, plutôt complète et prévue pour l’impression 3D.&lt;br /&gt;
Nous modifions donc les pièces et créons un nouveau prototype de pièce, qui a pour but de relier le coxa au châssis. Lors de la conception du châssis nous intégrerons directement cette pièce à celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce &amp;quot;prototype&amp;quot;]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançons donc l'impression des 6 tibias nécessaires au robot pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
'''Mardi (2h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique permettant de fixer les axes des servomoteurs aux pièces ainsi et les vis associées.&lt;br /&gt;
Nous finissons ensuite de travailler sur la conception du modèle de châssis. En fin de séance, il est terminé et prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le modèle de chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servo-moteurs et le début de programmation de mouvement d'une patte avec les ports PWM classiques de l'arduino (nous n'avons pas encore reçu notre shield PWM).&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les derniers servo-moteurs et éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servo-moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les axes servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot le plus vite possible.&lt;br /&gt;
&lt;br /&gt;
En fin de séance nous avons notre structure de robot montée, il ne reste qu'à y ajouter les autres composants (arduino, piles, ...).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez retrouvez sur l'archive git du projet toutes les pièces ayant étaient imprimées lors de la conception du robot.&lt;br /&gt;
[[Fichier:ROBOTNUDE_RFHV.jpg ‎|300px|thumb|center|Le robot monté]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Pour cette séance nous commençons donc la prise en main du matériel reçu : le module WiFi ESP8266 et les capteurs de distance ultrason.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|130px|thumb|left|ESP8266 - 04]]&lt;br /&gt;
'''''Le module WiFi ESP8266'''''&lt;br /&gt;
&lt;br /&gt;
L'ESP8266 est un microcontrôleur à bas coût permettant de travailler avec le signal WiFi. Il en existe différentes versions, la différence étant la présence ou non d'une antenne (et le type d'antenne) pour la réception du signal par exemple.&lt;br /&gt;
Le modèle que nous avons commandé est un ESP8266-04 qui ne possède pas d'antenne intégrée. Il va donc falloir que nous en concevions une nous même ou que nous en achetions une.&lt;br /&gt;
Nous devrons donc concevoir un PCB pour l'utilisation de l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|130px|thumb|left|Capteur Ultrason]]&lt;br /&gt;
'''''Les capteurs de distance ultrason'''''&lt;br /&gt;
&lt;br /&gt;
Les capteurs disposent de 4 pins : une entrée 5 V, un GND et deux pins TRIG et ECHO. Le fonctionnement de ces capteurs est assez simple : on indique sur le pin TRIG l'envoi d'un signal ultrason. Le signal est réfléchi contre l'obstacle le plus proche puis nous connaissons l'instant auquel il revient sur le capteur grâce au pin ECHO. il ne nous reste donc qu'à mesurer le temps mis par le signal entre l'envoi et la réception pour connaître la distance.  &lt;br /&gt;
&lt;br /&gt;
L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir au robot un champ de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à réfléchir à la façon de modéliser ces pièces cependant nous préférons attendre d'avoir monté les autres éléments sur le robot pour être sûr de bien les positionner afin d'éviter qu'ils ne soient pas gênés par les autres éléments.&lt;br /&gt;
&lt;br /&gt;
Il est aussi essentiel de savoir comment relier ces capteurs à l'Arduino. Un PCB devant être conçu pour la partie carte WiFi, nous pensons prévoir des connecteurs pour nos capteurs sur ce PCB.&lt;br /&gt;
&lt;br /&gt;
Nous avons par ailleurs réalisé un programme simple permettant la mesure de la distance avec un capteur. Il ne nous restera qu'à utiliser ce morceau de code lorsque nous programmerons le déplacement du robot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte WiFi qui sera intégrée à notre robot. Le composant ESP8266 qui va nous permettre de capter le flux RSSI et de le transmettre à notre Arduino nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un shield personnalisé qui se posera au dessus de notre shield PWM.&lt;br /&gt;
&lt;br /&gt;
L'Arduino pourra communiquer avec l'ESP8266 via une liaison série. Nous relions donc les ports série RX et TX de l'ESP aux ports UART (0 et 1) de l'arduino. Pour l'alimentation de l'ESP nous utilisons la broche 3,3V de l'Arduino Uno. Nous relions également le pin CH_PD de l'ESP à la broche 3,3V afin d'activer l'ESP.&lt;br /&gt;
&lt;br /&gt;
En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les capteurs à ultrasons qui équipent notre robot mais aussi pour les servomoteurs qui ne sont pas contrôlés par le shield PWM. Pour réaliser ce shield nous utilisons le logiciel gratuit '''''Fritzing'''''.&lt;br /&gt;
&lt;br /&gt;
Nous commençons le schematic de notre carte. Il nous parait plus efficace de poser notre shield WiFi au dessus du shield PWM, pour que l'antenne WiFi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'Arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Cependant mettre notre shield WiFi au dessus nécessite de lui donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard, il nous faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
'''Dimanche (2h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur '''''Inscape''''' (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de PCB précédemment réalisée, nous avons commencé à router le shield WiFi. Puisque notre composant ESP8266 ne possède pas d'antenne, nous avons décidé d'en tracer une sur la plaque du PCB. Cependant pour que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et également isoler cette partie du PCB d'une alimentation ou de tout autre composant pouvant interférer avec elle. Nous avançons donc dans le routage de la carte et commençons des recherches sur un modèle d'antenne que nous pourrons tracer sur notre PCB.&lt;br /&gt;
&lt;br /&gt;
Nous pensons finir la carte la semaine prochaine puis la faire graver et la tester.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de mettre de côté la carte WiFi et de s'occuper de la partie matérielle PWM qui nous permettra ensuite enfin de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de 1000 microfarad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'Arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'Arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
[[Fichier:ShieldPWM_RFHV.jpg ‎|300px|thumb|center|Le shield PWM monté sur le robot]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées. Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa).&lt;br /&gt;
&lt;br /&gt;
Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'Arduino. La fonction prend donc en compte cette distinction&lt;br /&gt;
.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc toutes les bases pour la programmation du déplacement, il ne nous reste plus qu'à écrire la liste des positions successives des moteurs faisant se déplacer le robot. Nous utilisons pour la programmation l'IDE Arduino avec la bibliothèque du constructeur du shield : ''Adafruit_PWMServoDriver''&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de la [http://www.ti.com/lit/an/swra117d/swra117d.pdf datasheet] d'un dongle USB possédant une antenne WiFi 2,4 GHz&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antenne_RFHV.JPG|250px|thumb|left|Datasheet de l'antenne]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par créer un composant Antenne respectant les indications de la datasheet puis nous avons ajouté ce composant à notre shield pour le router. Nous avons ensuite récupéré une librairie sur internet contenant notre composant ESP8266, ce qui nous a permis de gagner du temps, n'ayant pas à créer ce composant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Pour cette séance, nous finissons la conception de la carte WiFi. Le routage nous aura pris un certain temps mais en fin de séance nous avons fini notre PCB.&lt;br /&gt;
Afin d'avoir le meilleur fonctionnement possible de l'antenne et du PCB nous avons du respecter certaines contraintes :&lt;br /&gt;
* la ligne de masse de l'antenne doit être la plus large possible&lt;br /&gt;
* la ligne reliant l'antenne à l'ESP8266 doit transmettre une impédance de 50Ω, ce qui correspond à une largeur de 0.5 mm&lt;br /&gt;
* les angles des lignes en entrée/sortie de l'antenne sont arrondis&lt;br /&gt;
* le PCB est gravé sur du FR4&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antennealtium_RFHV.JPG|250px|thumb|left|L'antenne réalisée sur Altium Designer]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Fichier:Schematicaltium_RFHV.JPG|400px|thumb|left|Schematic de la carte sur Altium]]&lt;br /&gt;
[[Fichier:Pcbaltium_RFHV.JPG|400px|thumb|center|PCB de la carte sur Altium]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Travail supplémentaire==&lt;br /&gt;
&lt;br /&gt;
Pendant la première semaine de vacances, nous avons profité de l'ouverture de l'école pour venir faire graver puis souder notre carte.&lt;br /&gt;
[photo premier shield]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite essayé d'utiliser notre carte mais celle ci ne fonctionne pas. En effet il nous apparaît impossible d'interagir avec l'ESP-04 dans l'état actuel.&lt;br /&gt;
Après avoir des recherches approfondies, il est apparu que le problème pouvait venir du fait que la liaison série de l'ESP8266 soit connecté aux ports UART de l'Arduino. Nous pouvons pour contourner cela, connecter la liaison série de l'ESP sur des entrées-sorties classiques de l'Arduino que nous utiliserons comme liaison série grâce à la librairie Arduino ''SoftwareSerial''.&lt;br /&gt;
De plus pour certains types d'ESP, il peut être utile d'abaisser la tension sortant du TX de l'Arduino et allant vers le RX de l'ESP. Nous avons donc modifier notre carte en soudant des fils et ajoutant le composants nécessaires pour baisser la tension.&lt;br /&gt;
[photo deuxième shield]&lt;br /&gt;
&lt;br /&gt;
Avec ces modifications, nous n'arrivons toujours pas à communiquer avec notre ESP8266.&lt;br /&gt;
La carte nous sera malgré tout utile puisque que l'alimentation et la masse commune (pour les capteurs et moteurs) fonctionne.&lt;br /&gt;
Arrivant à la fin du projet, nous demandons alors un ESP-01 qui, contrairement à notre ESP-04, à l'avantage d'être un circuit complet avec antenne et liaisons à des headers, prêt à l'emploi.&lt;br /&gt;
[photo ESP-01]&lt;br /&gt;
&lt;br /&gt;
Avec ce nouvel ESP, nous sommes capables de communiquer à travers le moniteur série de l'IDE Arduino. Le branchement de l'ESP sur l'Arduino se fait simplement selon le schéma suivant.&lt;br /&gt;
[schéma fritzing esp arduino]&lt;br /&gt;
&lt;br /&gt;
Pour interagir avec l'ESP, il faut utiliser des commandes AT qui vont nous permettre d'obtenir par exemple la liste des réseaux WiFi à proximité ainsi que leur RSSI (ce qui nous intéresse).&lt;br /&gt;
[screnn AT+CWLAP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, le robot est maintenant capable de se déplacer sans être relié à un ordinateur. Il est maintenant temps de lui implémenter les capteurs à ultrason pour lui permettre d'être autonome dans sont environnent. Les capteurs, qui seront fixés au chassie, doivent être à une dizaine de centimètres en hauteur pour que les pattes du robot lors du déplacent ne passent pas dans leur champs de vision. Pour cela nous modélisons des panneaux auxquels les capteurs seront fixés.&lt;br /&gt;
&lt;br /&gt;
[photo model 3d]&lt;br /&gt;
&lt;br /&gt;
Et nous les réalisons à la découpeuse laser.&lt;br /&gt;
&lt;br /&gt;
[Photo panneaux finis]&lt;br /&gt;
     &lt;br /&gt;
Le robot en maintenait équipé d'un capteur à l'avant, un à gauche te un droite. Cela nous permet de coder différente fonction comme pour éviter un obstacle ou longer un mur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
&lt;br /&gt;
==Conception du robot==&lt;br /&gt;
&lt;br /&gt;
;La source d'inspiration principale pour la conception de notre robot hexapode :&lt;br /&gt;
&lt;br /&gt;
:https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
:https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped&lt;br /&gt;
&lt;br /&gt;
==Programmation déplacement==&lt;br /&gt;
&lt;br /&gt;
;La libraire utilisée pour la programmation du shield PWM :&lt;br /&gt;
&lt;br /&gt;
:https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/using-the-adafruit-library&lt;br /&gt;
&lt;br /&gt;
;Pour la programmation du capteur ultrason :&lt;br /&gt;
&lt;br /&gt;
:https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/&lt;br /&gt;
&lt;br /&gt;
==Programmation RSSI==&lt;br /&gt;
&lt;br /&gt;
;Datasheet de l'ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
;Pour la réalisation de l'antenne :&lt;br /&gt;
&lt;br /&gt;
:http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
&lt;br /&gt;
;La librairie Altium contenant les ESP8266 :&lt;br /&gt;
&lt;br /&gt;
:https://github.com/SashsLab/ESP8266&lt;br /&gt;
&lt;br /&gt;
;Détail des commandes pour communiquer via liaison série avec l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf&lt;br /&gt;
&lt;br /&gt;
;Tutoriel pour la mise en place d'un serveur web sur l'ESP8266&lt;br /&gt;
&lt;br /&gt;
:https://forum.arduino.cc/index.php?topic=501923.0&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=74671</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=74671"/>
				<updated>2019-05-08T10:16:35Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Semaine 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 Piles rechargeables 1,2V pour l'alimentation des servomoteurs&lt;br /&gt;
&lt;br /&gt;
* 1 batterie externe pour l'alimentation de l'arduino&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Réalisation du robot&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| 1h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3h&lt;br /&gt;
| 6h&lt;br /&gt;
| 5h&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (1h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Nous savons que le robot doit se déplacer et monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG1_RFHV.png|250px|thumb|left|Articulation d'une patte d'insecte]]&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur [https://www.thingiverse.com/thing:2204279 Thingiverse]&lt;br /&gt;
&lt;br /&gt;
Ce modèle est très courant dans la conception de robot hexapode et il imite le mouvement d'une patte d'insecte à l'aide de trois axes de rotations. La patte d'un insecte se divise en trois parties : le tibia, le fémur et le coxa.&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Il y aura trois servomoteurs sur chacune des six pattes du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEG2_RFHV.jpg|200px|thumb|right|Articulation d'une patte du robot]]&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
'''Samedi matin (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces.&lt;br /&gt;
&lt;br /&gt;
Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel '''''Fusion 360''''' d'Autodesk car il existe une version gratuite, plutôt complète et prévue pour l’impression 3D.&lt;br /&gt;
Nous modifions donc les pièces et en créons un prototype de pièce, qui a pour but de relier le coxa au châssis. Lors de la conception du châssis nous intégrerons directement cette pièce à celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce &amp;quot;prototype&amp;quot;]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
'''Lundi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançons donc l'impression des 6 tibias nécessaires au robot pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
'''Mardi (2h)'''&lt;br /&gt;
&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique permettant de fixer les axes des servomoteurs aux pièces ainsi et les vis associées.&lt;br /&gt;
Nous finissons ensuite de travailler sur la conception du modèle de châssis. En fin de séance, il est terminé et prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le modèle de chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servo-moteurs et le début de programmation de mouvement d'une patte avec les ports PWM classiques de l'arduino (nous n'avons pas encore reçu notre shield PWM).&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les derniers servo-moteurs et éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servo-moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les axes servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot le plus vite possible.&lt;br /&gt;
&lt;br /&gt;
En fin de séance nous avons notre structure de robot montée, il ne reste qu'à y ajouter les autres composants (arduino, piles, ...).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez retrouvez sur l'archive git du projet toutes les pièces ayant étaient imprimées lors de la conception du robot.&lt;br /&gt;
[[Fichier:ROBOTNUDE_RFHV.jpg ‎|300px|thumb|center|Le robot monté]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Pour cette séance nous commençons donc la prise en main du matériel reçu : le module WiFi ESP8266 et les capteurs de distance ultrason.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|130px|thumb|left|ESP8266 - 04]]&lt;br /&gt;
'''''Le module WiFi ESP8266'''''&lt;br /&gt;
&lt;br /&gt;
L'ESP8266 est un microcontrôleur à bas coût permettant de travailler avec le signal WiFi. Il en existe différentes versions, la différence étant la présence ou non d'une antenne (et le type d'antenne) pour la réception du signal par exemple.&lt;br /&gt;
Le modèle que nous avons commandé est un ESP8266-04 qui ne possède pas d'antenne intégrée. Il va donc falloir que nous en concevions une nous même ou que nous en achetions une.&lt;br /&gt;
Nous devrons donc concevoir un PCB pour l'utilisation de l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|130px|thumb|left|Capteur Ultrason]]&lt;br /&gt;
'''''Les capteurs de distance ultrason'''''&lt;br /&gt;
&lt;br /&gt;
Les capteurs disposent de 4 pins : une entrée 5 V, un GND et deux pins TRIG et ECHO. Le fonctionnement de ces capteurs est assez simple : on envoie indique sur le pin TRIG l'envoi d'un signal ultrason. Le signal est réfléchi contre l'obstacle le plus proche puis nous connaissons l'instant auquel il revient sur le capteur grâce au pin ECHO. il ne nous reste donc qu'à mesurer le temps mis par le signal entre l'envoi et la réception pour connaître la distance.  &lt;br /&gt;
&lt;br /&gt;
L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir au robot un champ de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à réfléchir à la façon de modéliser ces pièces cependant nous préférons attendre d'avoir monté les autres éléments sur le robot pour être sûr de bien les positionner afin d'éviter qu'ils ne soient pas gênés par les autres éléments.&lt;br /&gt;
&lt;br /&gt;
Il est aussi essentiel de savoir comment relier ces capteurs à l'Arduino. Un PCB devant être conçu pour la partie carte WiFi, nous pensons prévoir des connecteurs pour nos capteurs sur ce PCB.&lt;br /&gt;
&lt;br /&gt;
Nous avons par ailleurs réalisé un programme simple permettant la mesure de la distance avec un capteur. Il ne nous restera qu'à utiliser ce morceau de code lorsque nous programmerons le déplacement du robot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte WiFi qui sera intégrée à notre robot. Le composant ESP8266 qui va nous permettre de capter le flux RSSI et de le transmettre à notre Arduino nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un shield personnalisé qui se posera au dessus de notre shield PWM.&lt;br /&gt;
&lt;br /&gt;
L'Arduino pourra communiquer avec l'ESP8266 via une liaison série. Dans la description du composant sur le site du fournisseur il est cependant indiqué qu'il ne supporte pas le SSL ni la communication via les port SPI-UART. Nous connecterons donc l'ESP sur des entrées-sorties classiques de l'Arduino que nous utiliserons comme liaison série grâce à la librairie Arduino ''SoftwareSerial''.&lt;br /&gt;
&lt;br /&gt;
En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les capteurs à ultrasons qui équipent notre robot mais aussi pour les servomoteurs qui ne sont pas contrôlés par le shield PWM. Pour réaliser ce shield nous utilisons le logiciel gratuit '''''Fritzing'''''.&lt;br /&gt;
&lt;br /&gt;
Nous commençons le schematic de notre carte. Il nous parait plus efficace de poser notre shield WiFi au dessus du shield PWM, pour que l'antenne WiFi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'Arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Cependant mettre notre shield WiFi au dessus nécessite de lui donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard, il nous faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
'''Dimanche (2h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur '''''Inscape''''' (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (5h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de PCB précédemment réalisée, nous avons commencé à router le shield WiFi. Puisque notre composant ESP8266 ne possède pas d'antenne, nous avons décidé d'en tracer une sur la plaque du PCB. Cependant pour que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et également isoler cette partie du PCB d'une alimentation ou de tout autre composant pouvant interférer avec elle. Nous avançons donc dans le routage de la carte et commençons des recherches sur un modèle d'antenne que nous pourrons tracer sur notre PCB.&lt;br /&gt;
&lt;br /&gt;
Nous pensons finir la carte la semaine prochaine puis la faire graver et la tester.&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de mettre de côté la carte WiFi et de s'occuper de la partie matérielle PWM qui nous permettra ensuite enfin de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de 1000 microfarad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'Arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'Arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
[[Fichier:ShieldPWM_RFHV.jpg ‎|300px|thumb|center|Le shield PWM monté sur le robot]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées. Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa).&lt;br /&gt;
&lt;br /&gt;
Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'Arduino. La fonction prend donc en compte cette distinction&lt;br /&gt;
.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc toutes les bases pour la programmation du déplacement, il ne nous reste plus qu'à écrire la liste des positions successives des moteurs faisant se déplacer le robot. Nous utilisons pour la programmation l'IDE Arduino avec la bibliothèque du constructeur du shield : ''Adafruit_PWMServoDriver''&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de la [http://www.ti.com/lit/an/swra117d/swra117d.pdf datasheet] d'un dongle USB possédant une antenne WiFi 2,4 GHz&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Antenne_RFHV.JPG|250px|thumb|left|Datasheet de l'antenne]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par créer un composant Antenne respectant les indications de la datasheet puis nous avons ajouté ce composant à notre shield pour le router. Nous avons ensuite récupéré une librairie sur internet contenant notre composant ESP8266, ce qui nous a permis de gagner du temps, n'ayant pas à créer ce composant.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
'''Mercredi après-midi (4h)'''&lt;br /&gt;
&lt;br /&gt;
Pour cette séance, nous finissons la conception de la carte WiFi. Le routage nous aura pris un certain temps mais en fin de séance nous avons fini notre PCB.&lt;br /&gt;
Afin d'avoir le meilleur fonctionnement possible de l'antenne et du PCB nous avons du respecter certaines contraintes :&lt;br /&gt;
* la ligne de masse de l'antenne doit être la plus large possible&lt;br /&gt;
* la ligne reliant l'antenne à l'ESP8266 doit transmettre une impédance de 50Ω, ce qui correspond à une largeur de ??? 0.5 mm ???&lt;br /&gt;
* les angles des lignes en entrée/sortie de l'antenne sont arrondis&lt;br /&gt;
* le PCB est gravé sur du FR4&lt;br /&gt;
&lt;br /&gt;
==Semaine vacance ?==&lt;br /&gt;
&lt;br /&gt;
[photo altium]&lt;br /&gt;
[photo shield]&lt;br /&gt;
&lt;br /&gt;
==Semaines après les vacances==&lt;br /&gt;
&lt;br /&gt;
Le shield que nous avons conçu pendant les vacances ne fonctionne pas, nous essayons de le modifier mais il nous semble impossible d’interagir avec l'ESP-04 dans l'état actuel. &lt;br /&gt;
&lt;br /&gt;
[photo shield modifié ?]&lt;br /&gt;
&lt;br /&gt;
La carte nous sera malgré tout utile puisque que l'alimentation et la masse commune fonctionne. Nous demandons alors un ESP-01 qui à l'avantage d'être un circuit complet, avec antenne et composant, prêt à l'emploi.&lt;br /&gt;
&lt;br /&gt;
[photo ESP-01]&lt;br /&gt;
&lt;br /&gt;
En parallèle, le robot est maintenant capable de se déplacer sans être relié à un ordinateur. Il est maintenant temps de lui implémenter les capteurs à ultrason pour lui permettre d'être autonome dans sont environnent. Les capteurs, qui seront fixés au chassie, doivent être à une dizaine de centimètres en hauteur pour que les pattes du robot lors du déplacent ne passent pas dans leur champs de vision. Pour cela nous modélisons des panneaux auxquels les capteurs seront fixés.&lt;br /&gt;
&lt;br /&gt;
[photo model 3d]&lt;br /&gt;
&lt;br /&gt;
Et nous les réalisons à la découpeuse laser.&lt;br /&gt;
&lt;br /&gt;
[Photo panneaux finis]&lt;br /&gt;
     &lt;br /&gt;
Le robot en maintenait équipé d'un capteur à l'avant, un à gauche te un droite. Cela nous permet de coder différente fonction comme pour éviter un obstacle ou longer un mur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
&lt;br /&gt;
==Conception du robot==&lt;br /&gt;
&lt;br /&gt;
La source d'inspiration principale pour la conception de notre robot hexapode :&lt;br /&gt;
&lt;br /&gt;
https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped&lt;br /&gt;
&lt;br /&gt;
==Programmation déplacement==&lt;br /&gt;
&lt;br /&gt;
Pour la programmation du capteur ultrason :&lt;br /&gt;
&lt;br /&gt;
https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/&lt;br /&gt;
&lt;br /&gt;
==Programmation RSSI==&lt;br /&gt;
&lt;br /&gt;
Datasheet de l'ESP8266 :&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de l'antenne :&lt;br /&gt;
&lt;br /&gt;
http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
&lt;br /&gt;
La librairie Altium contenant les ESP8266 :&lt;br /&gt;
&lt;br /&gt;
https://github.com/SashsLab/ESP8266&lt;br /&gt;
&lt;br /&gt;
Détail des commandes pour communiquer via liaison série avec l'ESP8266&lt;br /&gt;
&lt;br /&gt;
https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72631</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72631"/>
				<updated>2019-04-09T10:14:42Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Semaine 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|250px|thumb|left|ESP8266]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|250px|thumb|left|Capteur Ultrasson]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
&lt;br /&gt;
http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
[[Fichier:Antenne_RFHV.JPG|250px|thumb|left|Datasheet de l'antenne]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72630</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72630"/>
				<updated>2019-04-09T10:13:49Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Semaine 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|250px|thumb|left|ESP8266]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|250px|thumb|left|Capteur Ultrasson]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
&lt;br /&gt;
Antenne_RFHV.JPG&lt;br /&gt;
http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72629</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72629"/>
				<updated>2019-04-09T10:13:32Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Semaine 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|250px|thumb|left|ESP8266]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|250px|thumb|left|Capteur Ultrasson]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
&lt;br /&gt;
Antenne_RFHV.JPG&lt;br /&gt;
http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Antenne_RFHV.JPG&amp;diff=72628</id>
		<title>Fichier:Antenne RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Antenne_RFHV.JPG&amp;diff=72628"/>
				<updated>2019-04-09T10:13:03Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72627</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72627"/>
				<updated>2019-04-09T10:12:06Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Semaine 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|250px|thumb|left|ESP8266]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|250px|thumb|left|Capteur Ultrasson]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.ti.com/lit/an/swra117d/swra117d.pdf&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72623</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72623"/>
				<updated>2019-04-09T10:04:23Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|250px|thumb|left|ESP8266]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ultrasson_RFHV.jpg|250px|thumb|left|Capteur Ultrasson]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
 insérer lien datasheet antenne&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72622</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72622"/>
				<updated>2019-04-09T10:03:40Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|250px|thumb|left|ESP8266]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
Ultrasson_RFHV.jpg&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
 insérer lien datasheet antenne&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Ultrasson_RFHV.jpg&amp;diff=72620</id>
		<title>Fichier:Ultrasson RFHV.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Ultrasson_RFHV.jpg&amp;diff=72620"/>
				<updated>2019-04-09T09:52:46Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72619</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72619"/>
				<updated>2019-04-09T09:51:07Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|250px|thumb|left|ESP8266]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
 insérer lien datasheet antenne&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72617</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72617"/>
				<updated>2019-04-09T09:50:36Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg|250px|thumb|ESP8266]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
 insérer lien datasheet antenne&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72616</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72616"/>
				<updated>2019-04-09T09:49:58Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp_RFHV.jpg ‎|250px|thumb|ESP8266]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
 insérer lien datasheet antenne&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72615</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72615"/>
				<updated>2019-04-09T09:49:14Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
 insérer photo ESP8266&lt;br /&gt;
&lt;br /&gt;
Esp_RFHV.jpg&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
 insérer lien datasheet antenne&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Esp_RFHV.jpg&amp;diff=72614</id>
		<title>Fichier:Esp RFHV.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Esp_RFHV.jpg&amp;diff=72614"/>
				<updated>2019-04-09T09:48:47Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72612</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72612"/>
				<updated>2019-04-09T09:47:32Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|Le chassis]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
 insérer photo ESP8266&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
 insérer lien datasheet antenne&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72610</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72610"/>
				<updated>2019-04-09T09:46:48Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Chassi_RFHV.JPG ‎|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
 insérer photo ESP8266&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
 insérer lien datasheet antenne&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Chassi_RFHV.JPG&amp;diff=72603</id>
		<title>Fichier:Chassi RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Chassi_RFHV.JPG&amp;diff=72603"/>
				<updated>2019-04-09T08:27:58Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72602</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72602"/>
				<updated>2019-04-09T08:26:58Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:chassi_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
 insérer photo ESP8266&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
 insérer lien datasheet antenne&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72601</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=72601"/>
				<updated>2019-04-09T08:06:25Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Dimanche (2h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|thumb|400px|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les &amp;quot;pattes&amp;quot; réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium.&lt;br /&gt;
Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie.&lt;br /&gt;
Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI===&lt;br /&gt;
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.&lt;br /&gt;
&lt;br /&gt;
===Positionnement===&lt;br /&gt;
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes.&lt;br /&gt;
En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
'''Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
'''Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
'''''Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.'''''&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
;Déplacement :&lt;br /&gt;
: Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.&lt;br /&gt;
: Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier.&lt;br /&gt;
: Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
;Lecture :&lt;br /&gt;
: Le robot doit pouvoir lire le signal RSSI du wifi de l'école.&lt;br /&gt;
: Le robot doit pouvoir se repérer dans le bâtiment.&lt;br /&gt;
: Le robot doit pouvoir associer et stocker ces deux données.&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
* 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
* 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
* 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
* 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
* Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Les tâches que nous devons effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
# Réalisation du robot :&lt;br /&gt;
#* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
#* Impression du robot, ajout des servos moteurs, capteurs et câblage.&lt;br /&gt;
# Programmation des déplacements :&lt;br /&gt;
#* Prise en main du shield PWM&lt;br /&gt;
#* Programmation de la marche (ligne droite, virages, ...).&lt;br /&gt;
#* Programmation des manœuvres d'évitement d'obstacles.&lt;br /&gt;
#* Programmation de la montée d'escaliers.&lt;br /&gt;
# Programmation de la mesure du RSSI:&lt;br /&gt;
#* Création d'un PCB pour l'ESP8266&lt;br /&gt;
#* Programmation de l'ESP8266 avec l'Arduino.&lt;br /&gt;
#* Traitement et stockage des informations.&lt;br /&gt;
# Pour aller plus loin (si possible) :&lt;br /&gt;
#* Detection de marqueurs à l'aide d'une rasberry.&lt;br /&gt;
#* Adaptation du déplacement selon la position&lt;br /&gt;
#* Cartographie de la puissance du signal WiFi&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation déplacement&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation WiFi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
&lt;br /&gt;
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante :&lt;br /&gt;
https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png|250px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
 insérer photo modèle 3D chassis&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
 insérer photo robot monté&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
 insérer photo ESP8266&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
 insérer photo capteurs ultrason&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield.&lt;br /&gt;
Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome.&lt;br /&gt;
Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais.&lt;br /&gt;
Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
 insérer photo shield PWM&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement &amp;quot;universelles&amp;quot;, applicables à n'importe laquelle des pattes. Pour cela il faut donc &amp;quot;calibrer&amp;quot; les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite &amp;quot;CALIBRATE&amp;quot; qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.&lt;br /&gt;
 insérer photo d'une patte en position CALIBRATE&lt;br /&gt;
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs &amp;quot;MIN&amp;quot; et &amp;quot;MAX&amp;quot; correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables &amp;quot;MIN&amp;quot; et trois variables &amp;quot;MAX&amp;quot;, les amplitudes étant différentes pour chaque type de pièce.&lt;br /&gt;
Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction.&lt;br /&gt;
En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.&lt;br /&gt;
 insérer photo robot debout calibrate&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
Mercredi après-midi (14h-18h)&lt;br /&gt;
&lt;br /&gt;
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi.&lt;br /&gt;
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :&lt;br /&gt;
 insérer lien datasheet antenne&lt;br /&gt;
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2018/2019&amp;diff=71523</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2018/2019</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2018/2019&amp;diff=71523"/>
				<updated>2019-03-20T15:39:51Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse || Matériel || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[IMA4 2018/2019 P9|Spider and I]]&lt;br /&gt;
| La description des &amp;quot;concurrents&amp;quot; aurait pu être plus précise. Un effort sur le scénario d'usage qui aurait, lui aussi, pu être développé. Des coquilles. Un vague plan de travail.&lt;br /&gt;
| Rien ou presque, fournisseur non utilisable.&lt;br /&gt;
|&lt;br /&gt;
| N'utilisez pas le mode &amp;quot;code&amp;quot; (espace en première colonne) pour distinguer une ligne. Une progression régulière mais il faudrait résoudre les problèmes soulevés à la semaine 7. Le travail à réaliser est assez simple, un résultat parfait est attendu.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2018/2019 P10|Capteur de niveau d'eau et de pollution]]&lt;br /&gt;
| Des coquilles. Bonne description des concurrents. Un effort pour le scénario, bonne mise en contexte, forcer sur la description de l'usage. Un plan de travail correct.&lt;br /&gt;
| Une liste préliminaire de matériels. Fournisseurs correctement choisis. Rien sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Coquilles inacceptables dans le Wiki&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Wiki assez vide. Il est à espérer que le projet est plus avancé !&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2018/2019 P12|Recyclage plastique imprimante 3D]]&lt;br /&gt;
| Vous êtes sur pour les servo-moteurs ? Ne serait-ce point des moteurs pas à pas ? Très bonne description du produit à réaliser avec illustrations. Bel effort de rédaction, encore pas mal de coquilles surtout en fin de page. Bonne étude des concurrents. Un scénario d'usage un peu rapide qui ne donne pas assez envie d'acquérir le produit. Questions difficiles mal exploitées (une réponse à la première question pourrait aussi être &amp;quot;par l'expérience&amp;quot;, pas de réponse à la seconde question). Une étude solide du projet même si la liste des tâches à effectuer manque.&lt;br /&gt;
| Bonne question sur le budget, mais posez la si vous voulez une réponse :D Liste de matériel encore très embryonnaire : rien sur l'électronique, une discussion avec votre encadrant s'impose pour fixer la partie mécanique.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très bien tenu mais corrigez les quelques coquilles. Avancé du travail bien présenté.&amp;lt;/font&amp;gt; Vous devez toujours me présenter la note pour les matériels achetés chez Leroy-Merlin.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P13 [[IMA4 2018/2019 P13|Emetteur / Récepteur analogique en bande 5725-5875 MHz]]&lt;br /&gt;
| Un seul concurrent. Scénario d'usage ne donnant probablement pas la pleine mesure du produit. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien sur la planification&amp;lt;/font&amp;gt;.&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien. Votre travail n'est pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2018/2019 P14|Voiture autonome en modèle réduit]]&lt;br /&gt;
| Il me semble que le chassis doit être celui d'un modèle radio-commandé existant. Il me semble que le pilotage manuel n'est pas autorisé. Description un peu rapide des concurrents. Une synthèse du matériel et logiciels employés aurait été intéressant. Pour le scénario d'usage, une description avec la voiture comme sujet aurait être plus intéressant. La réponse à la première question ne va pas dans le sens de l'autonomie. Dire que python est le langage par défaut de la RPi n'a pas de sens. Vous avez tout intérêt à prendre le langage le plus efficace est ce n'est probablement pas python. Pas de servo-moteurs continus sur une voiture radio-commandé. Pas vraiement de plan de travail. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Prenez contact avec votre encadrant direct, j'aimerais que vos choix soient validés, certains me paraissent discutables.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Aucune référence précise pour les matériels. Rien sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| Wiki moyen, peu dense, très peu illustré. Vous partez comme les IMA5 sur une solution de votre cru alors que vous n'avez aucune expérience en réseaux de neurones. Il est à craindre que le résultat final soit décevant.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2018/2019 P22|Secure And Verified Public Announcements through Blockchain]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Excellente rédaction.&amp;lt;/font&amp;gt; Une bonne tentative de description du projet mais toujours un flou sur le travail à réaliser. Cela aurait pu être levé avec une liste précise des tâches à effectuer (une tentative de liste dans les objectifs).&lt;br /&gt;
| Pas de matériel nécessaire (une RPi peut être).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Un wiki très propre. Travail effectué décrit.&amp;lt;/font&amp;gt;. Il manque juste l'information sur la validation du prototype 0 par l'encadrant direct.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[IMA4 2018/2019 P26|Discussion pair à pair]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Nombre de coquilles inacceptable&amp;lt;/font&amp;gt;. Rajouter dans les objectifs de devoir tenter une ouverture de bouclier pour TCP (TCP Hole Punching). Analyse du premier concurrent : le prétexte pour n'utiliser que des serveurs microsoft pour les supernoeuds skype est le faible nombre de machines d'utilisateurs non handicapées par des parefeux. Bonne réponse aux questions difficile. L'expérience de skype dit qu'il faut totalement éviter qu'un noeud utilisateur ait à relayer les communications d'un autre utilisateur (ce qui est d'ailleurs contraire aux objectifs). Il faut donc une solution de pair à pair pour '''tous''' les clients. En particulier, IPv6 '''doit''' être intégré dans les solutions possibles. Il ne me semble pas que l'enregistrement des utilisateurs soit nécessaire, elle nuit même à la vie privée. Il faut simplement mémoriser les utilisateurs connectés. &lt;br /&gt;
| Pas de matériel listé pourtant il faut mettre en place un banc d'essai.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Coquilles inacceptables dans le Wiki&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;En fin de projet vous avez seulement mis en place le banc de test sans aucun développement d'un système de perçage de box que ce soit en UDP ou en TCP&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[IMA4 2018/2019 P28|Affichage à billes]]&lt;br /&gt;
| Pour les panneaux d'affichage publicitaire, je ne suis pas sur que la consommation puisse être qualifiée d'énorme (il semble que si, à la lecture de votre réponse aux questions difficiles mais cela doit comprendre l'éclairage dont votre produit pourrait avec aussi besoin). &amp;lt;font color='green'&amp;gt;Rédaction très correcte. Un gros effort sur les illustrations. Un scénario d'usage, lui aussi, bien rédigé&amp;lt;/font&amp;gt;. La réponse à la question difficile sur l'énergie consommée par votre produit ne me convainc pas : partez sur la différence d'énergie potentielle pour monter une bille pas sur la force à exercer qu'il faudrait intégrer sur la hauteur de la remontée. Il faut approfondir l'analyse des tâches à effectuer.&lt;br /&gt;
| Il me semble avoir demandé de limiter la complexité du dispositif : 8 moteurs ?? Pas de références précises pour les matériels (lien sur le matériel dans le site du fournisseur).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Très bon Wiki. Avancé du travail très bien présenté.&amp;lt;/font&amp;gt; On attend avec impatience le résultat des tests sur le prototype &amp;quot;carton&amp;quot;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2018/2019 P30|Système minimal de gestion de conteneurs]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Excellent Wiki à ce jour. Rédaction très claire. Très bonne introduction. Tâches à réalisées clairement listées (mais dans les objectifs). Présentation très correcte du &amp;quot;concurrent principal&amp;quot;. Un scénario d'usage correct (j'aurais plutôt insisté sur la faible consommation du système en ressources que sur l'installation dans un système fortement personnalisé). Un calendrier prévisionnel.&amp;lt;/font&amp;gt; Le second &amp;quot;concurrent&amp;quot; est en fait l'ancienne couche bas niveau de &amp;lt;code&amp;gt;Docker&amp;lt;/code&amp;gt;. Il faudrait utiliser la syntaxe Wiki mais ne touchez à rien avant la séance du 10 décembre cela me fera un exemple parfait pour expliquer cette syntaxe.&lt;br /&gt;
| Pas de matériel nécessaire (une machine virtuelle sera concédée en cours de projet).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très complet et très propre. Avancé du travail bien présenté.&amp;lt;/font&amp;gt; Il faut arriver à finaliser les scripts de gestion des conteneurs. &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[IMA4 2018/2019 P31|Robot hexapode de mesure de RSSI WiFi]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Beaucoup trop de coquilles&amp;lt;/font&amp;gt;. Bonne présentation des &amp;quot;concurrents&amp;quot; qui vous servent aussi pour expliquer que votre projet est leur synthèse. Le scénario d'usage se tient. Bonne réponse à la question. Je ne crois pas trop au positionnement par RFID (il faut être sur un tag RFID pour le lire). Etes-vous sur pour l'Arduino méga ? Un Uno avec un bouclier PWM ne serait-il pas plus efficace ?&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Effort de liste de matériel avec des références précises&amp;lt;/font&amp;gt;. Pas de liste sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki (espace en première colonne) pour distinguer des lignes. Utilisez la syntaxe pour les items. Wiki très peu dense. L'avancement du projet semble être suspendu.&amp;lt;/font&amp;gt; Un bel effort pour la partie mécanique (les pattes du robot). Par contre la partie programmation semble très peu avancée.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2018/2019 P32|Robe augmentée]]&lt;br /&gt;
| En français l'abréviation de Monsieur est M. Mr est l'abrévation de Mister donc à n'utiliser qu'en anglosaxonnerie. Attention nous avons une expérience du fil à coudre conducteur et cela ne marche pas très bien sauf sur une surface très réduite. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Le scénario d'usage est perturbant : cela semble être un scénario pour deux produits différents&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous avez considérablement simplifié le projet (sous-ensemble de projets déjà réalisés), la réalisation devra être impeccable pour que cela puisse être validé comme projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| La liste du matériel précise ce que vous souhaitez faire. Que vient faire la platine d'essai dans cette liste ? Pour le prototype ? Vous ne parlez pas du tout de la carte contrôleur. C'est une Lilypad ?&lt;br /&gt;
|&lt;br /&gt;
| Wiki bien illustré mais une rédaction séche. Développez un peu. OK pour les cartes électroniques mais vous devriez présenter une esquisse de la robe telle que vous souhaitez la réaliser.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[IMA4 2018/2019 P33|Collier à animations lumineuses]]&lt;br /&gt;
| Un français imaginatif avec un nombre de coquilles dans la moyenne. Un scénario d'usage rocambolesque (il doit me manquer quelques références) mais acceptable. Des concurrents pertinents. Réponses aux questions acceptables. Se limiter à trois plaques ne me semble pas pertinent (même si vous pouvez faire un premier test sur trois plaques). Pour l'étude de la communication prévoyez un prototype avec quelques Arduino.&lt;br /&gt;
| Une liste de matériel qui semble être établie à la hâte. Il manque de nombreux composants électroniques pour faire tourner micro-contrôleurs et pilotes de LED. Pas de référence précise pour les composants.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien sur votre travail, il n'est donc pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt; Vous devriez avoir fait les tests de communication sur le bus SPI et avoir conçu votre PCB.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2018/2019 P35|Machine Learning pour navigation autonome de robots mobiles]]&lt;br /&gt;
| Il n'est pas tenu compte des erreurs de français. Dans la partie objectifs, la première sous-partie devrait plutôt s'appeler &amp;quot;partie robotique&amp;quot;, il n'y a rien d'électronique ici. Le travail a effectuer est assez flou. En particulier le Wiki ne contient rien sur les bibliothèques de &amp;quot;machine learning&amp;quot; à utiliser.&lt;br /&gt;
| Le matériel est fourni par les encadrants directs (AIP ?)&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;J'ai peur que votre Wiki rende bien compte du travail effectué jusque là : uniquement des études, rien de concret à part utiliser une manette pour acquérir des jeux de données. C'est très inquiétant en cette période de fin de projet. Votre projet pourrait ne pas être validé.&amp;lt;/font&amp;gt; &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[IMA4 2018/2019 P37|Station de recharge intelligente pour robot mobile]]&lt;br /&gt;
| Trop de coquilles. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Il semble que le sujet initial ne correspond plus à ce qui est demandé, merci de préciser le nouveau sujet, calibrage du robot ?&amp;lt;/font&amp;gt;Comment comptez-vous calibrer un préhenseur avec simplement du code (pas de réponse au niveau de la question difficile) ? &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Un seul concurrrent et sur la partie obsolète du projet&amp;lt;/font&amp;gt;. Une analyse du travail a effectuer qui ne tient pas compte de l'abandon du sujet original.&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Aucune liste de matériel&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Rien à redire sur votre Wiki. Il me semble bien rendre compte de l'avancé de votre projet. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Une liste de matériel finalisée en fin de projet : vous prenez de grands risques. Je vous rappelle qu'un prototype fonctionnel est attendu.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[IMA4 2018/2019 P38|Interface Graphique pour Robotino 2 Upgradé]]&lt;br /&gt;
| Choix des &amp;quot;concurrents&amp;quot; peu pertinents ou il fallait insister sur les différences entre ces robots et le robotino 2 amélioré. Le scénario d'usage se tient. Bonne réponse à la question &amp;quot;difficile&amp;quot;. Il semble que le but du projet se réduise à créer une interface web avec une bibliothèque spécifique. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;L'interface devra être irréprochable pour constituer un projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Projet purement informatique, pas de matériel nécessaire (autre qu'un robotino amélioré).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki pour distinguer une ligne. Corrigez les coquilles ! En cette fin de projet vous semblez bien peu avancés sur l'interface Web. Rien sur la démonstration de fonctionnement du robotino que vous devez implanter. Il va falloir diantrement accélérer !&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2018/2019 P40|RFID/NFC]]&lt;br /&gt;
| L'objectif est clairement explicité et dans un français très correct. Desc concurrents peu pertinents et une analyse trop hâtive des dits concurrents. La réponse sur la question de la difficulté du projet n'est pas convaincante. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Votre application de contrôle du robotino par smartphone se devra d'être irréprochable pour constituer un projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Attention, tout votre projet repose sur la validité des lecteur RFID commandés. Si ces lecteurs ne sont pas utilisables votre projet tombe à l'eau. Vous avez étudié la compatibilité des lecteurs avec les robotino ?&lt;br /&gt;
|&lt;br /&gt;
| Vous semblez avoir avancé dans votre projet mais vos dernières entrées dans le Wiki sont trop courtes pour permettre de juger. Etoffez votre Wiki en décrivant mieux cette application (copies d'écrans). Je ne vois aucune trace de la partie de connexion IP automatique via NFC au robotino ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2018/2019 P42|Coupe de robotique des écoles primaires]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Beaucoup trop de coquilles&amp;lt;/font&amp;gt;. Objectifs très clairement précisés. Analyse des concurrents et réponse lapidaires. Le fait que vous ne respectiez pas le cahier des charges imposé aux enfants est problématique. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une liste précise des tâches a effectuer. Un calendrier prévisionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Bel effort de liste de matériel. Quelques composants chez des fournisseurs non agréés. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Liste sur la page principale&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki plus que correct qui donne bien une idée de la progression.&amp;lt;/font&amp;gt; Tentez d'appeler Robotshop pour savoir ce qu'est devenue la commande. Il faut aussi que vous vous penchiez sur le PCB de commande des LED et servo-moteurs de la piste.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2018/2019 P44|Clônes améliorés des modules ARDUINO]]&lt;br /&gt;
| Restriction du sujet à la conception et réalisation d'une seule carte, ce qui est, ma foi, prudent. Bonne description de &amp;quot;concurrents&amp;quot;. Des coquilles mais sans plus. Ne mettez pas d'espace ou d'accents dans les noms des fichiers téléchargés. Scénario d'usage acceptable. Clairement vous avez déjà pas mal réfléchi à votre carte. &lt;br /&gt;
| Une liste de matériel mais sans lien vers le composant chez un fournisseur agréé.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien. Votre travail n'est pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[IMA4 2018/2019 P45|Sac à main ou sac à dos solaire]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très bien illustré, rédaction assez correcte (quelques coquilles)&amp;lt;/font&amp;gt;. Bonne description de concurrents, scénario d'usage convenable. Réponses un peu rapides aux questions &amp;quot;difficiles&amp;quot;&lt;br /&gt;
| Une liste de composants qui parait encore bien préliminaire. Aucun lien sur les composants chez les fournisseurs.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous avez posé quelques réflexions dans votre Wiki. Cependant aucune trace de réalisation. Une liste de matériel exploitable trop tardive.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P46 [[IMA4 2018/2019 P46|Kit Robot]]&lt;br /&gt;
| PLutôt bien rédigé malgré quelques coquilles. Objectifs bien fixés. Concurrents décrits en détail (un peu de synthèse n'aurait pas fait de mal). &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Scénario d'usage très correct&amp;lt;/font&amp;gt;. &lt;br /&gt;
| Un liste de composants bien avancée. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Des liens vers les fournisseurs. Matériels sur la page principale.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Le Wiki est correct. Vous semblez avoir terminé la phase de conception même s'il manque les informations sur le PCB. Disons que je serais rassuré quand vous aurez découpé les pièces du chassis et fait réaliser la carte électronique. En une phrase : il est plus que temps d'avoir des résultats tangibles !&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P57 [[IMA4 2018/2019 P57|Mise à jour over the air]]&lt;br /&gt;
| Bon cahier des charges qui répond aux questions que l'on pourrait se poser à la lecture du reste de la page. Quelle différence entre votre solution et Dualoptiboot du coup ? Dualoptiboot ne comprend pas la partie matérielle ? Allez-vous l'utiliser ? Un scénario d'usage bien rapide. La réponse semble à coté de la question, il semble que vous répondez à la question &amp;quot;comment vérifier une somme de contrôle avant de flasher la mémoire programme ?&amp;quot;. Comment allez vous gérer la clef de chiffrement ? Elle est figée dans l'amorceur ? Je crois comprendre en fin de page que vous voulez fixer une clef par capteur, cela casse le principe de la mise à jour par diffusion radio, non ?&lt;br /&gt;
| Une première liste de matériel sans lien vers les sites des fournisseurs agréés.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki pour distinguer une ligne. Cinq semaines pour router une carte ? Au minimum donnez les problèmes rencontrés et les résultats obtenus. Dans l'état de vacuité de votre Wiki, il est légitime de douter de la validation du projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P63 [[IMA4 2018/2019 P63|Etude de la consommation d'un capteur de pollution]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Une liste de matériel avec des liens vers des fournisseurs. Par contre les fournisseurs choisis ne sont pas forcément utilisables.&lt;br /&gt;
|&lt;br /&gt;
| Il y a comme un trou entre la semaine 3 et la semaine 7 ? Un problème de légende et de figure. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki acceptable.&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Les cartes doivent être vérifiées et réalisées de toute urgence.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P70 [[IMA4 2018/2019 P70|Impact du matériel et du logiciel sur le rayonnement électromagnétique]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction très correcte. Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Une liste de matériels très embryonnaire et sans lien exploitable.&lt;br /&gt;
|&lt;br /&gt;
| Le Wiki n'est pas à jour et ne permet pas de se faire une idée du travail des deux dernières semaines. Rien à redire sur le travail antérieur.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P72 [[IMA4 2018/2019 P72|Mesure du courant simple]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction correcte. Wiki bien illustré. Une partie analyse correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une liste de matériel bien avancée avec des liens exploitables.&amp;lt;/font&amp;gt; Recopiez les liens sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très correct. Bien illustré. Il manque le schematic de la carte, vous l'avez réalisé n'est-ce pas ?&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous devriez déjà avoir routé et réalisé votre carte.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P73 [[IMA4 2018/2019 P73|Ecriture automatique de partition musicale]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction très correcte. Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire. Un calendrier prévisionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Une tentative de liste de matériel qui ne pourra effectivement être finalisé qu'après discussions avec un électronicien.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très correct. Bien illustré.&amp;lt;/font&amp;gt; Par contre vous semblez marquer le pas sur ces deux dernières semaines alors qu'il s'agirait, au contraire, de mettre un coup d'accélerateur. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Routez cette carte, il est plus que temps !&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;
== Présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! 10/12/2018 !! 16/01/2019 !! 23/01/2019 !! 30/01/2019 !! 06/02/2019 !! 13/02/2019 !! 27/02/2019 !! 06/03/2019 !! 13/03/2019 !! 20/03/2019&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[IMA4 2018/2019 P9|Spider and I]]&lt;br /&gt;
| Nestor Martinez / Lina Mejbar&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| A208&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2018/2019 P10|Capteur de niveau d'eau et de pollution]]&lt;br /&gt;
| Antoine Branquart&lt;br /&gt;
| Absent (certificat médical)&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| Absent (certificat médical)&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;Excusé (malade)&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|C201&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2018/2019 P12|Recyclage plastique imprimante 3D]]&lt;br /&gt;
| Corentin Danjou / Pol Mulon&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E304/E301&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304 / C201&lt;br /&gt;
|-&lt;br /&gt;
| P13 [[IMA4 2018/2019 P13|Emetteur / Récepteur analogique en bande 5725-5875 MHz]]&lt;br /&gt;
| Arthur Reviron&lt;br /&gt;
| Absent&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2018/2019 P14|Voiture autonome en modèle réduit]]&lt;br /&gt;
| Hugo Dejaegher / Brandon Elemva&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306 + Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2018/2019 P22|Secure And Verified Public Announcements through Blockchain]]&lt;br /&gt;
| Arezki Ait Mouheb&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[IMA4 2018/2019 P26|Discussion pair à pair]]&lt;br /&gt;
| Fabien Di Natale / Ibrahim Ben Dhiab&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[IMA4 2018/2019 P28|Affichage à billes]]&lt;br /&gt;
| Flora Dziedzic / Martin Michel &lt;br /&gt;
| OK&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E305&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| A311&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2018/2019 P30|Système minimal de gestion de conteneurs]]&lt;br /&gt;
| Hind Malti&lt;br /&gt;
| OK&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E303&lt;br /&gt;
|E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présente&amp;lt;/font&amp;gt;&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E306&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[IMA4 2018/2019 P31|Robot hexapode de mesure de RSSI WiFi]]&lt;br /&gt;
| Rémi Foucault / Hugo Velly&lt;br /&gt;
| OK&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304 / Fabricarium&lt;br /&gt;
|E304 / Fabricarium&lt;br /&gt;
|E304&lt;br /&gt;
|E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E303&lt;br /&gt;
|E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E303/C202-bis&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2018/2019 P32|Robe augmentée]]&lt;br /&gt;
| Brinda Muzakare / Yan Xuelu&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présentes&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présentes&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[IMA4 2018/2019 P33|Collier à animations lumineuses]]&lt;br /&gt;
| Loris Ahouassou&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| C201&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Absent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2018/2019 P35|Machine Learning pour navigation autonome de robots mobiles]]&lt;br /&gt;
| Wenjing Chen / Puyuan Lin&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| C304&lt;br /&gt;
| C102&lt;br /&gt;
| C304&lt;br /&gt;
| C304&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Absents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C002&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C002&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[IMA4 2018/2019 P37|Station de recharge intelligente pour robot mobile]]&lt;br /&gt;
| Guillaume Declerck / Pierre Guigo&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Pierre Guigo présent&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Guillaume Declerck absent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303 &amp;amp; C201&lt;br /&gt;
| C201 &amp;amp; E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[IMA4 2018/2019 P38|Interface Graphique pour Robotino 2 Upgradé]]&lt;br /&gt;
| François Brassart / Jérôme Haon&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|C304&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2018/2019 P40|RFID/NFC]]&lt;br /&gt;
| Jean De Dieu Nduwamungu / Xinwei Hu&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2018/2019 P42|Coupe de robotique des écoles primaires]]&lt;br /&gt;
| Pierre Frison / Thibault Lepoivre&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E301(fab fermé)&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fab et C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2018/2019 P44|Clônes améliorés des modules ARDUINO]]&lt;br /&gt;
| Théau Moinat&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[IMA4 2018/2019 P45|Sac à main ou sac à dos solaire]]&lt;br /&gt;
| Mathis Dupré&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P46 [[IMA4 2018/2019 P46|Kit Robot]]&lt;br /&gt;
| Valentin Pitre / Gaëlle Bernard&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| A208&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P57 [[IMA4 2018/2019 P57|Mise à jour over the air]]&lt;br /&gt;
| Florent Leroy&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P63 [[IMA4 2018/2019 P63|Etude de la consommation d'un capteur de pollution]]&lt;br /&gt;
| Victor Lorthios / Juliette Obled&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201+E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P70 [[IMA4 2018/2019 P70|Impact du matériel et du logiciel sur le rayonnement électromagnétique]]&lt;br /&gt;
| Antoine Moreau / Souheib Khinache&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
|-&lt;br /&gt;
| P72 [[IMA4 2018/2019 P72|Mesure du courant simple]]&lt;br /&gt;
| Raphaël Martin&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P73 [[IMA4 2018/2019 P73|Ecriture automatique de partition musicale]]&lt;br /&gt;
| Hugo Leurent / Fabien Ronckier&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=71076</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=71076"/>
				<updated>2019-03-13T18:29:55Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec un certain nombre de servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'un microcontrôleur de type Arduino.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi grâce au RSSI. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|300px|thumb|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot découpée dans une plaque de plexiglas par exemple puis les &amp;quot;pattes&amp;quot; réalisées en impression 3D.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet d'apprendre tous les deux l'utilisation de l'imprimante 3D et de la découpeuse laser au Fabricarium.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteur, actionneurs ainsi que la batterie.&lt;br /&gt;
Il conviendra alors de concevoir un circuit imprimé pour faciliter la mise en place et l'utilisation de tous ces éléments.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI et Positionnement===&lt;br /&gt;
La prochaine étape sera la mise en place de deux modules Arduino. Le premier (module WiFi) pour récupérer les RSSI des signaux WiFi puis le second pour déterminer la position du robot (la technologie reste à déterminer). Enfin il faudra coupler ces deux mesures.&lt;br /&gt;
&lt;br /&gt;
La position du robot nous permettra alors de décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
 Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
 Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
 Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Déplacement : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lecture : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir lire le signal RSSI du wifi de l'école &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir se repérer dans le bâtiment &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir associer et stocker ces deux données &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
3 servomoteurs pour chacune des 6 pattes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
deux frontaux avec des angles différents et deux latéraux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
1 shield permet de contrôler 16 servomoteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Module WiFi Arduino : par exemple le ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Nos tâches, à effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Réalisation du robot :&lt;br /&gt;
&lt;br /&gt;
* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
&lt;br /&gt;
* Impression du robot, ajout des servos moteurs, capteurs... et câblage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation des déplacements :&lt;br /&gt;
&lt;br /&gt;
* Programmation de la marche (ligne droite, virages...).&lt;br /&gt;
&lt;br /&gt;
* Programmation des manoeuvres d'évitement d'obstacles.&lt;br /&gt;
&lt;br /&gt;
* Programmation de la montée d'escaliers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation de la mesure du RSSI:&lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte wifi arduino.&lt;br /&gt;
&lt;br /&gt;
* Traitement et stockage des informations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin (si possible) :&lt;br /&gt;
&lt;br /&gt;
* Detection de marqueurs à l'aide d'une rasberry pour que le robot sache se situer dans l'école.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped/&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
N&lt;br /&gt;
ous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png ‎ ‎|300px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) la calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons router le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=71074</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=71074"/>
				<updated>2019-03-13T18:21:47Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec un certain nombre de servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'un microcontrôleur de type Arduino.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi grâce au RSSI. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|300px|thumb|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot découpée dans une plaque de plexiglas par exemple puis les &amp;quot;pattes&amp;quot; réalisées en impression 3D.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet d'apprendre tous les deux l'utilisation de l'imprimante 3D et de la découpeuse laser au Fabricarium.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteur, actionneurs ainsi que la batterie.&lt;br /&gt;
Il conviendra alors de concevoir un circuit imprimé pour faciliter la mise en place et l'utilisation de tous ces éléments.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI et Positionnement===&lt;br /&gt;
La prochaine étape sera la mise en place de deux modules Arduino. Le premier (module WiFi) pour récupérer les RSSI des signaux WiFi puis le second pour déterminer la position du robot (la technologie reste à déterminer). Enfin il faudra coupler ces deux mesures.&lt;br /&gt;
&lt;br /&gt;
La position du robot nous permettra alors de décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
 Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
 Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
 Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Déplacement : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lecture : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir lire le signal RSSI du wifi de l'école &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir se repérer dans le bâtiment &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir associer et stocker ces deux données &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
3 servomoteurs pour chacune des 6 pattes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
deux frontaux avec des angles différents et deux latéraux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
1 shield permet de contrôler 16 servomoteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Module WiFi Arduino : par exemple le ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Nos tâches, à effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Réalisation du robot :&lt;br /&gt;
&lt;br /&gt;
* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
&lt;br /&gt;
* Impression du robot, ajout des servos moteurs, capteurs... et câblage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation des déplacements :&lt;br /&gt;
&lt;br /&gt;
* Programmation de la marche (ligne droite, virages...).&lt;br /&gt;
&lt;br /&gt;
* Programmation des manoeuvres d'évitement d'obstacles.&lt;br /&gt;
&lt;br /&gt;
* Programmation de la montée d'escaliers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation de la mesure du RSSI:&lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte wifi arduino.&lt;br /&gt;
&lt;br /&gt;
* Traitement et stockage des informations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin (si possible) :&lt;br /&gt;
&lt;br /&gt;
* Detection de marqueurs à l'aide d'une rasberry pour que le robot sache se situer dans l'école.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped/&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
N&lt;br /&gt;
ous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png ‎ ‎|300px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.&lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) la calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons router le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=71073</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=71073"/>
				<updated>2019-03-13T18:20:28Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec un certain nombre de servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'un microcontrôleur de type Arduino.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi grâce au RSSI. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|300px|thumb|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot découpée dans une plaque de plexiglas par exemple puis les &amp;quot;pattes&amp;quot; réalisées en impression 3D.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet d'apprendre tous les deux l'utilisation de l'imprimante 3D et de la découpeuse laser au Fabricarium.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteur, actionneurs ainsi que la batterie.&lt;br /&gt;
Il conviendra alors de concevoir un circuit imprimé pour faciliter la mise en place et l'utilisation de tous ces éléments.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI et Positionnement===&lt;br /&gt;
La prochaine étape sera la mise en place de deux modules Arduino. Le premier (module WiFi) pour récupérer les RSSI des signaux WiFi puis le second pour déterminer la position du robot (la technologie reste à déterminer). Enfin il faudra coupler ces deux mesures.&lt;br /&gt;
&lt;br /&gt;
La position du robot nous permettra alors de décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
 Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
 Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
 Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Déplacement : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lecture : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir lire le signal RSSI du wifi de l'école &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir se repérer dans le bâtiment &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir associer et stocker ces deux données &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
3 servomoteurs pour chacune des 6 pattes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
deux frontaux avec des angles différents et deux latéraux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
1 shield permet de contrôler 16 servomoteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Module WiFi Arduino : par exemple le ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Nos tâches, à effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Réalisation du robot :&lt;br /&gt;
&lt;br /&gt;
* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
&lt;br /&gt;
* Impression du robot, ajout des servos moteurs, capteurs... et câblage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation des déplacements :&lt;br /&gt;
&lt;br /&gt;
* Programmation de la marche (ligne droite, virages...).&lt;br /&gt;
&lt;br /&gt;
* Programmation des manoeuvres d'évitement d'obstacles.&lt;br /&gt;
&lt;br /&gt;
* Programmation de la montée d'escaliers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation de la mesure du RSSI:&lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte wifi arduino.&lt;br /&gt;
&lt;br /&gt;
* Traitement et stockage des informations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin (si possible) :&lt;br /&gt;
&lt;br /&gt;
* Detection de marqueurs à l'aide d'une rasberry pour que le robot sache se situer dans l'école.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped/&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
N&lt;br /&gt;
ous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png ‎ ‎|300px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266 le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing. &lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) la calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons router le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=71071</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=71071"/>
				<updated>2019-03-13T18:12:20Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Semaine 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec un certain nombre de servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'un microcontrôleur de type Arduino.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi grâce au RSSI. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|300px|thumb|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot découpée dans une plaque de plexiglas par exemple puis les &amp;quot;pattes&amp;quot; réalisées en impression 3D.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet d'apprendre tous les deux l'utilisation de l'imprimante 3D et de la découpeuse laser au Fabricarium.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteur, actionneurs ainsi que la batterie.&lt;br /&gt;
Il conviendra alors de concevoir un circuit imprimé pour faciliter la mise en place et l'utilisation de tous ces éléments.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI et Positionnement===&lt;br /&gt;
La prochaine étape sera la mise en place de deux modules Arduino. Le premier (module WiFi) pour récupérer les RSSI des signaux WiFi puis le second pour déterminer la position du robot (la technologie reste à déterminer). Enfin il faudra coupler ces deux mesures.&lt;br /&gt;
&lt;br /&gt;
La position du robot nous permettra alors de décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
 Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
 Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
 Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Déplacement : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lecture : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir lire le signal RSSI du wifi de l'école &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir se repérer dans le bâtiment &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir associer et stocker ces deux données &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
3 servomoteurs pour chacune des 6 pattes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
deux frontaux avec des angles différents et deux latéraux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
1 shield permet de contrôler 16 servomoteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Module WiFi Arduino : par exemple le ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Nos tâches, à effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Réalisation du robot :&lt;br /&gt;
&lt;br /&gt;
* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
&lt;br /&gt;
* Impression du robot, ajout des servos moteurs, capteurs... et câblage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation des déplacements :&lt;br /&gt;
&lt;br /&gt;
* Programmation de la marche (ligne droite, virages...).&lt;br /&gt;
&lt;br /&gt;
* Programmation des manoeuvres d'évitement d'obstacles.&lt;br /&gt;
&lt;br /&gt;
* Programmation de la montée d'escaliers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation de la mesure du RSSI:&lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte wifi arduino.&lt;br /&gt;
&lt;br /&gt;
* Traitement et stockage des informations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin (si possible) :&lt;br /&gt;
&lt;br /&gt;
* Detection de marqueurs à l'aide d'une rasberry pour que le robot sache se situer dans l'école.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped/&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
N&lt;br /&gt;
ous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png ‎ ‎|300px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266 le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing. &lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) la calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=70993</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=70993"/>
				<updated>2019-03-13T14:54:14Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Dimanche (2h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec un certain nombre de servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'un microcontrôleur de type Arduino.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi grâce au RSSI. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|300px|thumb|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot découpée dans une plaque de plexiglas par exemple puis les &amp;quot;pattes&amp;quot; réalisées en impression 3D.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet d'apprendre tous les deux l'utilisation de l'imprimante 3D et de la découpeuse laser au Fabricarium.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteur, actionneurs ainsi que la batterie.&lt;br /&gt;
Il conviendra alors de concevoir un circuit imprimé pour faciliter la mise en place et l'utilisation de tous ces éléments.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI et Positionnement===&lt;br /&gt;
La prochaine étape sera la mise en place de deux modules Arduino. Le premier (module WiFi) pour récupérer les RSSI des signaux WiFi puis le second pour déterminer la position du robot (la technologie reste à déterminer). Enfin il faudra coupler ces deux mesures.&lt;br /&gt;
&lt;br /&gt;
La position du robot nous permettra alors de décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
 Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
 Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
 Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Déplacement : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lecture : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir lire le signal RSSI du wifi de l'école &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir se repérer dans le bâtiment &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir associer et stocker ces deux données &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
3 servomoteurs pour chacune des 6 pattes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
deux frontaux avec des angles différents et deux latéraux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
1 shield permet de contrôler 16 servomoteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Module WiFi Arduino : par exemple le ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Nos tâches, à effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Réalisation du robot :&lt;br /&gt;
&lt;br /&gt;
* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
&lt;br /&gt;
* Impression du robot, ajout des servos moteurs, capteurs... et câblage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation des déplacements :&lt;br /&gt;
&lt;br /&gt;
* Programmation de la marche (ligne droite, virages...).&lt;br /&gt;
&lt;br /&gt;
* Programmation des manoeuvres d'évitement d'obstacles.&lt;br /&gt;
&lt;br /&gt;
* Programmation de la montée d'escaliers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation de la mesure du RSSI:&lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte wifi arduino.&lt;br /&gt;
&lt;br /&gt;
* Traitement et stockage des informations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin (si possible) :&lt;br /&gt;
&lt;br /&gt;
* Detection de marqueurs à l'aide d'une rasberry pour que le robot sache se situer dans l'école.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped/&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
N&lt;br /&gt;
ous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png ‎ ‎|300px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266 le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing. &lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) la calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
[[Fichier:ShieldPersonnalise_RFHV.JPG|center|300px|thumb|PCB du Shield WIFI]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:ShieldPersonnalise_RFHV.JPG&amp;diff=70992</id>
		<title>Fichier:ShieldPersonnalise RFHV.JPG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:ShieldPersonnalise_RFHV.JPG&amp;diff=70992"/>
				<updated>2019-03-13T14:52:56Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=70990</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=70990"/>
				<updated>2019-03-13T14:50:26Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Mercredi après-midi (14h-18h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec un certain nombre de servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'un microcontrôleur de type Arduino.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi grâce au RSSI. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|300px|thumb|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot découpée dans une plaque de plexiglas par exemple puis les &amp;quot;pattes&amp;quot; réalisées en impression 3D.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet d'apprendre tous les deux l'utilisation de l'imprimante 3D et de la découpeuse laser au Fabricarium.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteur, actionneurs ainsi que la batterie.&lt;br /&gt;
Il conviendra alors de concevoir un circuit imprimé pour faciliter la mise en place et l'utilisation de tous ces éléments.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI et Positionnement===&lt;br /&gt;
La prochaine étape sera la mise en place de deux modules Arduino. Le premier (module WiFi) pour récupérer les RSSI des signaux WiFi puis le second pour déterminer la position du robot (la technologie reste à déterminer). Enfin il faudra coupler ces deux mesures.&lt;br /&gt;
&lt;br /&gt;
La position du robot nous permettra alors de décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
 Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
 Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
 Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Déplacement : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lecture : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir lire le signal RSSI du wifi de l'école &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir se repérer dans le bâtiment &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir associer et stocker ces deux données &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
3 servomoteurs pour chacune des 6 pattes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
deux frontaux avec des angles différents et deux latéraux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
1 shield permet de contrôler 16 servomoteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Module WiFi Arduino : par exemple le ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Nos tâches, à effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Réalisation du robot :&lt;br /&gt;
&lt;br /&gt;
* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
&lt;br /&gt;
* Impression du robot, ajout des servos moteurs, capteurs... et câblage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation des déplacements :&lt;br /&gt;
&lt;br /&gt;
* Programmation de la marche (ligne droite, virages...).&lt;br /&gt;
&lt;br /&gt;
* Programmation des manoeuvres d'évitement d'obstacles.&lt;br /&gt;
&lt;br /&gt;
* Programmation de la montée d'escaliers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation de la mesure du RSSI:&lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte wifi arduino.&lt;br /&gt;
&lt;br /&gt;
* Traitement et stockage des informations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin (si possible) :&lt;br /&gt;
&lt;br /&gt;
* Detection de marqueurs à l'aide d'une rasberry pour que le robot sache se situer dans l'école.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped/&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
N&lt;br /&gt;
ous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png ‎ ‎|300px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266 le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en &amp;quot;sandwich&amp;quot; entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing. &lt;br /&gt;
&lt;br /&gt;
===Dimanche (2h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) la calque de notre shield personnalisé &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=70984</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=70984"/>
				<updated>2019-03-13T14:33:42Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Semaine 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec un certain nombre de servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'un microcontrôleur de type Arduino.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi grâce au RSSI. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|300px|thumb|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot découpée dans une plaque de plexiglas par exemple puis les &amp;quot;pattes&amp;quot; réalisées en impression 3D.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet d'apprendre tous les deux l'utilisation de l'imprimante 3D et de la découpeuse laser au Fabricarium.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteur, actionneurs ainsi que la batterie.&lt;br /&gt;
Il conviendra alors de concevoir un circuit imprimé pour faciliter la mise en place et l'utilisation de tous ces éléments.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI et Positionnement===&lt;br /&gt;
La prochaine étape sera la mise en place de deux modules Arduino. Le premier (module WiFi) pour récupérer les RSSI des signaux WiFi puis le second pour déterminer la position du robot (la technologie reste à déterminer). Enfin il faudra coupler ces deux mesures.&lt;br /&gt;
&lt;br /&gt;
La position du robot nous permettra alors de décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
 Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
 Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
 Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Déplacement : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lecture : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir lire le signal RSSI du wifi de l'école &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir se repérer dans le bâtiment &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir associer et stocker ces deux données &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
&lt;br /&gt;
3 servomoteurs pour chacune des 6 pattes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
&lt;br /&gt;
deux frontaux avec des angles différents et deux latéraux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
&lt;br /&gt;
1 shield permet de contrôler 16 servomoteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Module WiFi Arduino : par exemple le ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Nos tâches, à effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Réalisation du robot :&lt;br /&gt;
&lt;br /&gt;
* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
&lt;br /&gt;
* Impression du robot, ajout des servos moteurs, capteurs... et câblage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation des déplacements :&lt;br /&gt;
&lt;br /&gt;
* Programmation de la marche (ligne droite, virages...).&lt;br /&gt;
&lt;br /&gt;
* Programmation des manoeuvres d'évitement d'obstacles.&lt;br /&gt;
&lt;br /&gt;
* Programmation de la montée d'escaliers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation de la mesure du RSSI:&lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte wifi arduino.&lt;br /&gt;
&lt;br /&gt;
* Traitement et stockage des informations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin (si possible) :&lt;br /&gt;
&lt;br /&gt;
* Detection de marqueurs à l'aide d'une rasberry pour que le robot sache se situer dans l'école.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped/&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
N&lt;br /&gt;
ous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png ‎ ‎|300px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.&lt;br /&gt;
&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
&lt;br /&gt;
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.&lt;br /&gt;
&lt;br /&gt;
Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.&lt;br /&gt;
&lt;br /&gt;
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.&lt;br /&gt;
&lt;br /&gt;
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.&lt;br /&gt;
&lt;br /&gt;
Nous reprendrons la programmation du déplacement à la réception du shield PWM.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
&lt;br /&gt;
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266 le shield comprendre une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce sheild nous utilisons le logiciel Fritzing  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
https://www.arduino.cc/en/Reference/WiFiRSSI&lt;br /&gt;
&lt;br /&gt;
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2018/2019&amp;diff=70961</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2018/2019</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2018/2019&amp;diff=70961"/>
				<updated>2019-03-13T13:49:39Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse || Matériel || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[IMA4 2018/2019 P9|Spider and I]]&lt;br /&gt;
| La description des &amp;quot;concurrents&amp;quot; aurait pu être plus précise. Un effort sur le scénario d'usage qui aurait, lui aussi, pu être développé. Des coquilles. Un vague plan de travail.&lt;br /&gt;
| Rien ou presque, fournisseur non utilisable.&lt;br /&gt;
|&lt;br /&gt;
| N'utilisez pas le mode &amp;quot;code&amp;quot; (espace en première colonne) pour distinguer une ligne. Une progression régulière mais il faudrait résoudre les problèmes soulevés à la semaine 7. Le travail à réaliser est assez simple, un résultat parfait est attendu.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2018/2019 P10|Capteur de niveau d'eau et de pollution]]&lt;br /&gt;
| Des coquilles. Bonne description des concurrents. Un effort pour le scénario, bonne mise en contexte, forcer sur la description de l'usage. Un plan de travail correct.&lt;br /&gt;
| Une liste préliminaire de matériels. Fournisseurs correctement choisis. Rien sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Coquilles inacceptables dans le Wiki&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Wiki assez vide. Il est à espérer que le projet est plus avancé !&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2018/2019 P12|Recyclage plastique imprimante 3D]]&lt;br /&gt;
| Vous êtes sur pour les servo-moteurs ? Ne serait-ce point des moteurs pas à pas ? Très bonne description du produit à réaliser avec illustrations. Bel effort de rédaction, encore pas mal de coquilles surtout en fin de page. Bonne étude des concurrents. Un scénario d'usage un peu rapide qui ne donne pas assez envie d'acquérir le produit. Questions difficiles mal exploitées (une réponse à la première question pourrait aussi être &amp;quot;par l'expérience&amp;quot;, pas de réponse à la seconde question). Une étude solide du projet même si la liste des tâches à effectuer manque.&lt;br /&gt;
| Bonne question sur le budget, mais posez la si vous voulez une réponse :D Liste de matériel encore très embryonnaire : rien sur l'électronique, une discussion avec votre encadrant s'impose pour fixer la partie mécanique.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très bien tenu mais corrigez les quelques coquilles. Avancé du travail bien présenté.&amp;lt;/font&amp;gt; Vous devez toujours me présenter la note pour les matériels achetés chez Leroy-Merlin.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P13 [[IMA4 2018/2019 P13|Emetteur / Récepteur analogique en bande 5725-5875 MHz]]&lt;br /&gt;
| Un seul concurrent. Scénario d'usage ne donnant probablement pas la pleine mesure du produit. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien sur la planification&amp;lt;/font&amp;gt;.&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien. Votre travail n'est pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2018/2019 P14|Voiture autonome en modèle réduit]]&lt;br /&gt;
| Il me semble que le chassis doit être celui d'un modèle radio-commandé existant. Il me semble que le pilotage manuel n'est pas autorisé. Description un peu rapide des concurrents. Une synthèse du matériel et logiciels employés aurait été intéressant. Pour le scénario d'usage, une description avec la voiture comme sujet aurait être plus intéressant. La réponse à la première question ne va pas dans le sens de l'autonomie. Dire que python est le langage par défaut de la RPi n'a pas de sens. Vous avez tout intérêt à prendre le langage le plus efficace est ce n'est probablement pas python. Pas de servo-moteurs continus sur une voiture radio-commandé. Pas vraiement de plan de travail. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Prenez contact avec votre encadrant direct, j'aimerais que vos choix soient validés, certains me paraissent discutables.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Aucune référence précise pour les matériels. Rien sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| Wiki moyen, peu dense, très peu illustré. Vous partez comme les IMA5 sur une solution de votre cru alors que vous n'avez aucune expérience en réseaux de neurones. Il est à craindre que le résultat final soit décevant.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2018/2019 P22|Secure And Verified Public Announcements through Blockchain]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Excellente rédaction.&amp;lt;/font&amp;gt; Une bonne tentative de description du projet mais toujours un flou sur le travail à réaliser. Cela aurait pu être levé avec une liste précise des tâches à effectuer (une tentative de liste dans les objectifs).&lt;br /&gt;
| Pas de matériel nécessaire (une RPi peut être).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Un wiki très propre. Travail effectué décrit.&amp;lt;/font&amp;gt;. Il manque juste l'information sur la validation du prototype 0 par l'encadrant direct.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[IMA4 2018/2019 P26|Discussion pair à pair]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Nombre de coquilles inacceptable&amp;lt;/font&amp;gt;. Rajouter dans les objectifs de devoir tenter une ouverture de bouclier pour TCP (TCP Hole Punching). Analyse du premier concurrent : le prétexte pour n'utiliser que des serveurs microsoft pour les supernoeuds skype est le faible nombre de machines d'utilisateurs non handicapées par des parefeux. Bonne réponse aux questions difficile. L'expérience de skype dit qu'il faut totalement éviter qu'un noeud utilisateur ait à relayer les communications d'un autre utilisateur (ce qui est d'ailleurs contraire aux objectifs). Il faut donc une solution de pair à pair pour '''tous''' les clients. En particulier, IPv6 '''doit''' être intégré dans les solutions possibles. Il ne me semble pas que l'enregistrement des utilisateurs soit nécessaire, elle nuit même à la vie privée. Il faut simplement mémoriser les utilisateurs connectés. &lt;br /&gt;
| Pas de matériel listé pourtant il faut mettre en place un banc d'essai.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Coquilles inacceptables dans le Wiki&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;En fin de projet vous avez seulement mis en place le banc de test sans aucun développement d'un système de perçage de box que ce soit en UDP ou en TCP&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[IMA4 2018/2019 P28|Affichage à billes]]&lt;br /&gt;
| Pour les panneaux d'affichage publicitaire, je ne suis pas sur que la consommation puisse être qualifiée d'énorme (il semble que si, à la lecture de votre réponse aux questions difficiles mais cela doit comprendre l'éclairage dont votre produit pourrait avec aussi besoin). &amp;lt;font color='green'&amp;gt;Rédaction très correcte. Un gros effort sur les illustrations. Un scénario d'usage, lui aussi, bien rédigé&amp;lt;/font&amp;gt;. La réponse à la question difficile sur l'énergie consommée par votre produit ne me convainc pas : partez sur la différence d'énergie potentielle pour monter une bille pas sur la force à exercer qu'il faudrait intégrer sur la hauteur de la remontée. Il faut approfondir l'analyse des tâches à effectuer.&lt;br /&gt;
| Il me semble avoir demandé de limiter la complexité du dispositif : 8 moteurs ?? Pas de références précises pour les matériels (lien sur le matériel dans le site du fournisseur).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Très bon Wiki. Avancé du travail très bien présenté.&amp;lt;/font&amp;gt; On attend avec impatience le résultat des tests sur le prototype &amp;quot;carton&amp;quot;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2018/2019 P30|Système minimal de gestion de conteneurs]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Excellent Wiki à ce jour. Rédaction très claire. Très bonne introduction. Tâches à réalisées clairement listées (mais dans les objectifs). Présentation très correcte du &amp;quot;concurrent principal&amp;quot;. Un scénario d'usage correct (j'aurais plutôt insisté sur la faible consommation du système en ressources que sur l'installation dans un système fortement personnalisé). Un calendrier prévisionnel.&amp;lt;/font&amp;gt; Le second &amp;quot;concurrent&amp;quot; est en fait l'ancienne couche bas niveau de &amp;lt;code&amp;gt;Docker&amp;lt;/code&amp;gt;. Il faudrait utiliser la syntaxe Wiki mais ne touchez à rien avant la séance du 10 décembre cela me fera un exemple parfait pour expliquer cette syntaxe.&lt;br /&gt;
| Pas de matériel nécessaire (une machine virtuelle sera concédée en cours de projet).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très complet et très propre. Avancé du travail bien présenté.&amp;lt;/font&amp;gt; Il faut arriver à finaliser les scripts de gestion des conteneurs. &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[IMA4 2018/2019 P31|Robot hexapode de mesure de RSSI WiFi]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Beaucoup trop de coquilles&amp;lt;/font&amp;gt;. Bonne présentation des &amp;quot;concurrents&amp;quot; qui vous servent aussi pour expliquer que votre projet est leur synthèse. Le scénario d'usage se tient. Bonne réponse à la question. Je ne crois pas trop au positionnement par RFID (il faut être sur un tag RFID pour le lire). Etes-vous sur pour l'Arduino méga ? Un Uno avec un bouclier PWM ne serait-il pas plus efficace ?&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Effort de liste de matériel avec des références précises&amp;lt;/font&amp;gt;. Pas de liste sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki (espace en première colonne) pour distinguer des lignes. Utilisez la syntaxe pour les items. Wiki très peu dense. L'avancement du projet semble être suspendu.&amp;lt;/font&amp;gt; Un bel effort pour la partie mécanique (les pattes du robot). Par contre la partie programmation semble très peu avancée.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2018/2019 P32|Robe augmentée]]&lt;br /&gt;
| En français l'abréviation de Monsieur est M. Mr est l'abrévation de Mister donc à n'utiliser qu'en anglosaxonnerie. Attention nous avons une expérience du fil à coudre conducteur et cela ne marche pas très bien sauf sur une surface très réduite. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Le scénario d'usage est perturbant : cela semble être un scénario pour deux produits différents&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous avez considérablement simplifié le projet (sous-ensemble de projets déjà réalisés), la réalisation devra être impeccable pour que cela puisse être validé comme projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| La liste du matériel précise ce que vous souhaitez faire. Que vient faire la platine d'essai dans cette liste ? Pour le prototype ? Vous ne parlez pas du tout de la carte contrôleur. C'est une Lilypad ?&lt;br /&gt;
|&lt;br /&gt;
| Wiki bien illustré mais une rédaction séche. Développez un peu. OK pour les cartes électroniques mais vous devriez présenter une esquisse de la robe telle que vous souhaitez la réaliser.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[IMA4 2018/2019 P33|Collier à animations lumineuses]]&lt;br /&gt;
| Un français imaginatif avec un nombre de coquilles dans la moyenne. Un scénario d'usage rocambolesque (il doit me manquer quelques références) mais acceptable. Des concurrents pertinents. Réponses aux questions acceptables. Se limiter à trois plaques ne me semble pas pertinent (même si vous pouvez faire un premier test sur trois plaques). Pour l'étude de la communication prévoyez un prototype avec quelques Arduino.&lt;br /&gt;
| Une liste de matériel qui semble être établie à la hâte. Il manque de nombreux composants électroniques pour faire tourner micro-contrôleurs et pilotes de LED. Pas de référence précise pour les composants.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien sur votre travail, il n'est donc pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt; Vous devriez avoir fait les tests de communication sur le bus SPI et avoir conçu votre PCB.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2018/2019 P35|Machine Learning pour navigation autonome de robots mobiles]]&lt;br /&gt;
| Il n'est pas tenu compte des erreurs de français. Dans la partie objectifs, la première sous-partie devrait plutôt s'appeler &amp;quot;partie robotique&amp;quot;, il n'y a rien d'électronique ici. Le travail a effectuer est assez flou. En particulier le Wiki ne contient rien sur les bibliothèques de &amp;quot;machine learning&amp;quot; à utiliser.&lt;br /&gt;
| Le matériel est fourni par les encadrants directs (AIP ?)&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;J'ai peur que votre Wiki rende bien compte du travail effectué jusque là : uniquement des études, rien de concret à part utiliser une manette pour acquérir des jeux de données. C'est très inquiétant en cette période de fin de projet. Votre projet pourrait ne pas être validé.&amp;lt;/font&amp;gt; &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[IMA4 2018/2019 P37|Station de recharge intelligente pour robot mobile]]&lt;br /&gt;
| Trop de coquilles. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Il semble que le sujet initial ne correspond plus à ce qui est demandé, merci de préciser le nouveau sujet, calibrage du robot ?&amp;lt;/font&amp;gt;Comment comptez-vous calibrer un préhenseur avec simplement du code (pas de réponse au niveau de la question difficile) ? &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Un seul concurrrent et sur la partie obsolète du projet&amp;lt;/font&amp;gt;. Une analyse du travail a effectuer qui ne tient pas compte de l'abandon du sujet original.&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Aucune liste de matériel&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Rien à redire sur votre Wiki. Il me semble bien rendre compte de l'avancé de votre projet. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Une liste de matériel finalisée en fin de projet : vous prenez de grands risques. Je vous rappelle qu'un prototype fonctionnel est attendu.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[IMA4 2018/2019 P38|Interface Graphique pour Robotino 2 Upgradé]]&lt;br /&gt;
| Choix des &amp;quot;concurrents&amp;quot; peu pertinents ou il fallait insister sur les différences entre ces robots et le robotino 2 amélioré. Le scénario d'usage se tient. Bonne réponse à la question &amp;quot;difficile&amp;quot;. Il semble que le but du projet se réduise à créer une interface web avec une bibliothèque spécifique. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;L'interface devra être irréprochable pour constituer un projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Projet purement informatique, pas de matériel nécessaire (autre qu'un robotino amélioré).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki pour distinguer une ligne. Corrigez les coquilles ! En cette fin de projet vous semblez bien peu avancés sur l'interface Web. Rien sur la démonstration de fonctionnement du robotino que vous devez implanter. Il va falloir diantrement accélérer !&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2018/2019 P40|RFID/NFC]]&lt;br /&gt;
| L'objectif est clairement explicité et dans un français très correct. Desc concurrents peu pertinents et une analyse trop hâtive des dits concurrents. La réponse sur la question de la difficulté du projet n'est pas convaincante. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Votre application de contrôle du robotino par smartphone se devra d'être irréprochable pour constituer un projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Attention, tout votre projet repose sur la validité des lecteur RFID commandés. Si ces lecteurs ne sont pas utilisables votre projet tombe à l'eau. Vous avez étudié la compatibilité des lecteurs avec les robotino ?&lt;br /&gt;
|&lt;br /&gt;
| Vous semblez avoir avancé dans votre projet mais vos dernières entrées dans le Wiki sont trop courtes pour permettre de juger. Etoffez votre Wiki en décrivant mieux cette application (copies d'écrans). Je ne vois aucune trace de la partie de connexion IP automatique via NFC au robotino ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2018/2019 P42|Coupe de robotique des écoles primaires]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Beaucoup trop de coquilles&amp;lt;/font&amp;gt;. Objectifs très clairement précisés. Analyse des concurrents et réponse lapidaires. Le fait que vous ne respectiez pas le cahier des charges imposé aux enfants est problématique. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une liste précise des tâches a effectuer. Un calendrier prévisionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Bel effort de liste de matériel. Quelques composants chez des fournisseurs non agréés. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Liste sur la page principale&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki plus que correct qui donne bien une idée de la progression.&amp;lt;/font&amp;gt; Tentez d'appeler Robotshop pour savoir ce qu'est devenue la commande. Il faut aussi que vous vous penchiez sur le PCB de commande des LED et servo-moteurs de la piste.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2018/2019 P44|Clônes améliorés des modules ARDUINO]]&lt;br /&gt;
| Restriction du sujet à la conception et réalisation d'une seule carte, ce qui est, ma foi, prudent. Bonne description de &amp;quot;concurrents&amp;quot;. Des coquilles mais sans plus. Ne mettez pas d'espace ou d'accents dans les noms des fichiers téléchargés. Scénario d'usage acceptable. Clairement vous avez déjà pas mal réfléchi à votre carte. &lt;br /&gt;
| Une liste de matériel mais sans lien vers le composant chez un fournisseur agréé.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien. Votre travail n'est pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[IMA4 2018/2019 P45|Sac à main ou sac à dos solaire]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très bien illustré, rédaction assez correcte (quelques coquilles)&amp;lt;/font&amp;gt;. Bonne description de concurrents, scénario d'usage convenable. Réponses un peu rapides aux questions &amp;quot;difficiles&amp;quot;&lt;br /&gt;
| Une liste de composants qui parait encore bien préliminaire. Aucun lien sur les composants chez les fournisseurs.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous avez posé quelques réflexions dans votre Wiki. Cependant aucune trace de réalisation. Une liste de matériel exploitable trop tardive.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P46 [[IMA4 2018/2019 P46|Kit Robot]]&lt;br /&gt;
| PLutôt bien rédigé malgré quelques coquilles. Objectifs bien fixés. Concurrents décrits en détail (un peu de synthèse n'aurait pas fait de mal). &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Scénario d'usage très correct&amp;lt;/font&amp;gt;. &lt;br /&gt;
| Un liste de composants bien avancée. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Des liens vers les fournisseurs. Matériels sur la page principale.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Le Wiki est correct. Vous semblez avoir terminé la phase de conception même s'il manque les informations sur le PCB. Disons que je serais rassuré quand vous aurez découpé les pièces du chassis et fait réaliser la carte électronique. En une phrase : il est plus que temps d'avoir des résultats tangibles !&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P57 [[IMA4 2018/2019 P57|Mise à jour over the air]]&lt;br /&gt;
| Bon cahier des charges qui répond aux questions que l'on pourrait se poser à la lecture du reste de la page. Quelle différence entre votre solution et Dualoptiboot du coup ? Dualoptiboot ne comprend pas la partie matérielle ? Allez-vous l'utiliser ? Un scénario d'usage bien rapide. La réponse semble à coté de la question, il semble que vous répondez à la question &amp;quot;comment vérifier une somme de contrôle avant de flasher la mémoire programme ?&amp;quot;. Comment allez vous gérer la clef de chiffrement ? Elle est figée dans l'amorceur ? Je crois comprendre en fin de page que vous voulez fixer une clef par capteur, cela casse le principe de la mise à jour par diffusion radio, non ?&lt;br /&gt;
| Une première liste de matériel sans lien vers les sites des fournisseurs agréés.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki pour distinguer une ligne. Cinq semaines pour router une carte ? Au minimum donnez les problèmes rencontrés et les résultats obtenus. Dans l'état de vacuité de votre Wiki, il est légitime de douter de la validation du projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P63 [[IMA4 2018/2019 P63|Etude de la consommation d'un capteur de pollution]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Une liste de matériel avec des liens vers des fournisseurs. Par contre les fournisseurs choisis ne sont pas forcément utilisables.&lt;br /&gt;
|&lt;br /&gt;
| Il y a comme un trou entre la semaine 3 et la semaine 7 ? Un problème de légende et de figure. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki acceptable.&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Les cartes doivent être vérifiées et réalisées de toute urgence.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P70 [[IMA4 2018/2019 P70|Impact du matériel et du logiciel sur le rayonnement électromagnétique]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction très correcte. Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Une liste de matériels très embryonnaire et sans lien exploitable.&lt;br /&gt;
|&lt;br /&gt;
| Le Wiki n'est pas à jour et ne permet pas de se faire une idée du travail des deux dernières semaines. Rien à redire sur le travail antérieur.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P72 [[IMA4 2018/2019 P72|Mesure du courant simple]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction correcte. Wiki bien illustré. Une partie analyse correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une liste de matériel bien avancée avec des liens exploitables.&amp;lt;/font&amp;gt; Recopiez les liens sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très correct. Bien illustré. Il manque le schematic de la carte, vous l'avez réalisé n'est-ce pas ?&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous devriez déjà avoir routé et réalisé votre carte.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P73 [[IMA4 2018/2019 P73|Ecriture automatique de partition musicale]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction très correcte. Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire. Un calendrier prévisionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Une tentative de liste de matériel qui ne pourra effectivement être finalisé qu'après discussions avec un électronicien.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très correct. Bien illustré.&amp;lt;/font&amp;gt; Par contre vous semblez marquer le pas sur ces deux dernières semaines alors qu'il s'agirait, au contraire, de mettre un coup d'accélerateur. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Routez cette carte, il est plus que temps !&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;
== Présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! 10/12/2018 !! 16/01/2019 !! 23/01/2019 !! 30/01/2019 !! 06/02/2019 !! 13/02/2019 !! 27/02/2019 !! 06/03/2019 !! 13/03/2019&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[IMA4 2018/2019 P9|Spider and I]]&lt;br /&gt;
| Nestor Martinez / Lina Mejbar&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| A208&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2018/2019 P10|Capteur de niveau d'eau et de pollution]]&lt;br /&gt;
| Antoine Branquart&lt;br /&gt;
| Absent (certificat médical)&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| Absent (certificat médical)&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;Excusé (malade)&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2018/2019 P12|Recyclage plastique imprimante 3D]]&lt;br /&gt;
| Corentin Danjou / Pol Mulon&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E304/E301&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|`E303&lt;br /&gt;
|-&lt;br /&gt;
| P13 [[IMA4 2018/2019 P13|Emetteur / Récepteur analogique en bande 5725-5875 MHz]]&lt;br /&gt;
| Arthur Reviron&lt;br /&gt;
| Absent&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2018/2019 P14|Voiture autonome en modèle réduit]]&lt;br /&gt;
| Hugo Dejaegher / Brandon Elemva&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306 + Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2018/2019 P22|Secure And Verified Public Announcements through Blockchain]]&lt;br /&gt;
| Arezki Ait Mouheb&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[IMA4 2018/2019 P26|Discussion pair à pair]]&lt;br /&gt;
| Fabien Di Natale / Ibrahim Ben Dhiab&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[IMA4 2018/2019 P28|Affichage à billes]]&lt;br /&gt;
| Flora Dziedzic / Martin Michel &lt;br /&gt;
| OK&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E305&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| A311&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2018/2019 P30|Système minimal de gestion de conteneurs]]&lt;br /&gt;
| Hind Malti&lt;br /&gt;
| OK&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E303&lt;br /&gt;
|E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présente&amp;lt;/font&amp;gt;&lt;br /&gt;
|E306&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[IMA4 2018/2019 P31|Robot hexapode de mesure de RSSI WiFi]]&lt;br /&gt;
| Rémi Foucault / Hugo Velly&lt;br /&gt;
| OK&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304 / Fabricarium&lt;br /&gt;
|E304 / Fabricarium&lt;br /&gt;
|E304&lt;br /&gt;
|E303&lt;br /&gt;
|E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E303&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2018/2019 P32|Robe augmentée]]&lt;br /&gt;
| Brinda Muzakare / Yan Xuelu&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présentes&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[IMA4 2018/2019 P33|Collier à animations lumineuses]]&lt;br /&gt;
| Loris Ahouassou&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| C201&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2018/2019 P35|Machine Learning pour navigation autonome de robots mobiles]]&lt;br /&gt;
| Wenjing Chen / Puyuan Lin&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| C304&lt;br /&gt;
| C102&lt;br /&gt;
| C304&lt;br /&gt;
| C304&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Absents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C002&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[IMA4 2018/2019 P37|Station de recharge intelligente pour robot mobile]]&lt;br /&gt;
| Guillaume Declerck / Pierre Guigo&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Pierre Guigo présent&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Guillaume Declerck absent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303 &amp;amp; C201&lt;br /&gt;
| C201 &amp;amp; E303&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[IMA4 2018/2019 P38|Interface Graphique pour Robotino 2 Upgradé]]&lt;br /&gt;
| François Brassart / Jérôme Haon&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E304&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2018/2019 P40|RFID/NFC]]&lt;br /&gt;
| Jean De Dieu Nduwamungu / Xinwei Hu&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2018/2019 P42|Coupe de robotique des écoles primaires]]&lt;br /&gt;
| Pierre Frison / Thibault Lepoivre&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E301(fab fermé)&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2018/2019 P44|Clônes améliorés des modules ARDUINO]]&lt;br /&gt;
| Théau Moinat&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[IMA4 2018/2019 P45|Sac à main ou sac à dos solaire]]&lt;br /&gt;
| Mathis Dupré&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P46 [[IMA4 2018/2019 P46|Kit Robot]]&lt;br /&gt;
| Valentin Pitre / Gaëlle Bernard&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| A208&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E304&lt;br /&gt;
|-&lt;br /&gt;
| P57 [[IMA4 2018/2019 P57|Mise à jour over the air]]&lt;br /&gt;
| Florent Leroy&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P63 [[IMA4 2018/2019 P63|Etude de la consommation d'un capteur de pollution]]&lt;br /&gt;
| Victor Lorthios / Juliette Obled&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201+E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
| C201&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P70 [[IMA4 2018/2019 P70|Impact du matériel et du logiciel sur le rayonnement électromagnétique]]&lt;br /&gt;
| Antoine Moreau / Souheib Khinache&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P72 [[IMA4 2018/2019 P72|Mesure du courant simple]]&lt;br /&gt;
| Raphaël Martin&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P73 [[IMA4 2018/2019 P73|Ecriture automatique de partition musicale]]&lt;br /&gt;
| Hugo Leurent / Fabien Ronckier&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=70016</id>
		<title>IMA4 2018/2019 P31</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P31&amp;diff=70016"/>
				<updated>2019-02-27T17:41:11Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Réalisation du Projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple).&lt;br /&gt;
Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.&lt;br /&gt;
&lt;br /&gt;
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.&lt;br /&gt;
&lt;br /&gt;
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec un certain nombre de servomoteurs assurant le mouvement de ses six &amp;quot;pattes&amp;quot;. Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'un microcontrôleur de type Arduino.&lt;br /&gt;
&lt;br /&gt;
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi grâce au RSSI. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante.&lt;br /&gt;
&lt;br /&gt;
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type &amp;quot;Heat Map&amp;quot; afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SampleheatmapRFHV.jpg ‎|300px|thumb|left|Exemple de carte &amp;quot;Heat Map&amp;quot; d'un bâtiment]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.&lt;br /&gt;
&lt;br /&gt;
===Conception du robot===&lt;br /&gt;
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot découpée dans une plaque de plexiglas par exemple puis les &amp;quot;pattes&amp;quot; réalisées en impression 3D.&lt;br /&gt;
Il s'agira donc dans un premier temps avant de commencer le projet d'apprendre tous les deux l'utilisation de l'imprimante 3D et de la découpeuse laser au Fabricarium.&lt;br /&gt;
&lt;br /&gt;
===Déplacement et détection d'obstacles===&lt;br /&gt;
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteur, actionneurs ainsi que la batterie.&lt;br /&gt;
Il conviendra alors de concevoir un circuit imprimé pour faciliter la mise en place et l'utilisation de tous ces éléments.&lt;br /&gt;
Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs.&lt;br /&gt;
Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.&lt;br /&gt;
&lt;br /&gt;
===Mesure RSSI et Positionnement===&lt;br /&gt;
La prochaine étape sera la mise en place de deux modules Arduino. Le premier (module WiFi) pour récupérer les RSSI des signaux WiFi puis le second pour déterminer la position du robot (la technologie reste à déterminer). Enfin il faudra coupler ces deux mesures.&lt;br /&gt;
&lt;br /&gt;
La position du robot nous permettra alors de décider du déplacement suivant du robot.&lt;br /&gt;
&lt;br /&gt;
===Cartographie===&lt;br /&gt;
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.&lt;br /&gt;
&lt;br /&gt;
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.&lt;br /&gt;
&lt;br /&gt;
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.&lt;br /&gt;
&lt;br /&gt;
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément :&lt;br /&gt;
D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
[[Fichier:HeatmapperRFHV.jpg ‎|400px|thumb|right|Capture d'écran HeatMapper]]&lt;br /&gt;
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.&lt;br /&gt;
&lt;br /&gt;
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée.&lt;br /&gt;
Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie.&lt;br /&gt;
Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.&lt;br /&gt;
&lt;br /&gt;
 Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
[[Fichier:MX-phoenixRFHV.jpg ‎|400px|thumb|right|MX-phoenix montant des marches]]&lt;br /&gt;
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers. &lt;br /&gt;
&lt;br /&gt;
 Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la &amp;quot;carcasse&amp;quot; du robot.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.   &lt;br /&gt;
&lt;br /&gt;
L'entreprise fait alors appel à nos services.&lt;br /&gt;
&lt;br /&gt;
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer.&lt;br /&gt;
Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie.&lt;br /&gt;
Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :&lt;br /&gt;
&lt;br /&gt;
 Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.&lt;br /&gt;
&lt;br /&gt;
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.&lt;br /&gt;
&lt;br /&gt;
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.&lt;br /&gt;
&lt;br /&gt;
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence.&lt;br /&gt;
Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.&lt;br /&gt;
&lt;br /&gt;
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Déplacement : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit savoir s'adapter à son environnement :  détection et contournement d'obstacles, détection d'escalier &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une &amp;quot;carte&amp;quot; pré-enregistrée &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lecture : &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir lire le signal RSSI du wifi de l'école &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir se repérer dans le bâtiment &amp;lt;br&amp;gt;&lt;br /&gt;
- Le robot doit pouvoir associer et stocker ces deux données &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 5 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)&lt;br /&gt;
 3 servomoteurs pour chacune des 6 pattes. 13 sont déjà disponibles à Polytech.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)&lt;br /&gt;
 deux frontaux avec des angles différents et deux latéraux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 shield PWM (https://www.gotronic.fr/art-shield-i2c-pour-16-servos-ada1411-20672.htm#complte_desc)&lt;br /&gt;
 1 shield permet de contrôler 16 servomoteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- 1 Module WiFi Arduino : par exemple le ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Piles pour l'alimentation du robot&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Nos tâches, à effectuer vont se diviser en quatres parties :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Réalisation du robot :&lt;br /&gt;
&lt;br /&gt;
* Modélisation 3D des pattes et du chassis.&lt;br /&gt;
&lt;br /&gt;
* Impression du robot, ajout des servos moteurs, capteurs... et câblage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation des déplacements :&lt;br /&gt;
&lt;br /&gt;
* Programmation de la marche (ligne droite, virages...).&lt;br /&gt;
&lt;br /&gt;
* Programmation des manoeuvres d'évitement d'obstacles.&lt;br /&gt;
&lt;br /&gt;
* Programmation de la montée d'escaliers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmation de la mesure du RSSI:&lt;br /&gt;
&lt;br /&gt;
* Programmation de la carte wifi arduino.&lt;br /&gt;
&lt;br /&gt;
* Traitement et stockage des informations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin (si possible) :&lt;br /&gt;
&lt;br /&gt;
* Detection de marqueurs à l'aide d'une rasberry pour que le robot sache se situer dans l'école.&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cal_Prev_RFHV.png]]&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 9h&lt;br /&gt;
| 1h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation, impression, montage&lt;br /&gt;
| &lt;br /&gt;
| 8h&lt;br /&gt;
| 10h&lt;br /&gt;
| 2h&lt;br /&gt;
| 3h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
https://www.thingiverse.com/thing:2204279&lt;br /&gt;
&lt;br /&gt;
https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped/&lt;br /&gt;
&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
&lt;br /&gt;
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.&lt;br /&gt;
&lt;br /&gt;
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (1h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer.&lt;br /&gt;
Ainsi la partie &amp;quot;Prélude&amp;quot; est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques.&lt;br /&gt;
Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.&lt;br /&gt;
&lt;br /&gt;
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).&lt;br /&gt;
&lt;br /&gt;
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet.&lt;br /&gt;
Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped)&lt;br /&gt;
N&lt;br /&gt;
ous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin.&lt;br /&gt;
Nous modéleriseront nous même cependant le chassis du robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.&lt;br /&gt;
&lt;br /&gt;
===Samedi matin (4h)===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nouvelle_piece_RFHV.png ‎ ‎|300px|thumb|left|La nouvelle pièce]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot.&lt;br /&gt;
Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
===Lundi après-midi (16h-20h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.&lt;br /&gt;
&lt;br /&gt;
===Mardi (2h)===&lt;br /&gt;
Travail au Fabricarium.&lt;br /&gt;
Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. &lt;br /&gt;
En parallèle nous travaillons sur le modèle du châssis.&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Impression du chassis du robot au fabricarium.&lt;br /&gt;
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.&lt;br /&gt;
L'impression étant bonne, nous disposons maintenant de tout les éléments pour la structure du robot. Nous attendons d'avoir les servos moteurs manquants pour pouvoir monter le robot et commencer réellement la partie programmation.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
===Mercredi après-midi (14h-18h)===&lt;br /&gt;
Nous avons maintenant à notre disposition le chassis, les six pattes et les servos moteurs qui nous manquaient. Il nous manque toujours les &amp;quot;bras&amp;quot; (petites pièces en plastique) des servos moteurs, nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
http://hackerspace.pbworks.com/w/page/88183850/ESP8266&lt;br /&gt;
https://potentiallabs.com/cart/buy-esp-03-online-india&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2018/2019&amp;diff=69994</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2018/2019</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2018/2019&amp;diff=69994"/>
				<updated>2019-02-27T17:12:35Z</updated>
		
		<summary type="html">&lt;p&gt;Hvelly : /* Présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse || Matériel || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[IMA4 2018/2019 P9|Spider and I]]&lt;br /&gt;
| La description des &amp;quot;concurrents&amp;quot; aurait pu être plus précise. Un effort sur le scénario d'usage qui aurait, lui aussi, pu être développé. Des coquilles. Un vague plan de travail.&lt;br /&gt;
| Rien ou presque, fournisseur non utilisable.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2018/2019 P10|Capteur de niveau d'eau et de pollution]]&lt;br /&gt;
| Des coquilles. Bonne description des concurrents. Un effort pour le scénario, bonne mise en contexte, forcer sur la description de l'usage. Un plan de travail correct.&lt;br /&gt;
| Une liste préliminaire de matériels. Fournisseurs correctement choisis. Rien sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2018/2019 P12|Recyclage plastique imprimante 3D]]&lt;br /&gt;
| Vous êtes sur pour les servo-moteurs ? Ne serait-ce point des moteurs pas à pas ? Très bonne description du produit à réaliser avec illustrations. Bel effort de rédaction, encore pas mal de coquilles surtout en fin de page. Bonne étude des concurrents. Un scénario d'usage un peu rapide qui ne donne pas assez envie d'acquérir le produit. Questions difficiles mal exploitées (une réponse à la première question pourrait aussi être &amp;quot;par l'expérience&amp;quot;, pas de réponse à la seconde question). Une étude solide du projet même si la liste des tâches à effectuer manque.&lt;br /&gt;
| Bonne question sur le budget, mais posez la si vous voulez une réponse :D Liste de matériel encore très embryonnaire : rien sur l'électronique, une discussion avec votre encadrant s'impose pour fixer la partie mécanique.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P13 [[IMA4 2018/2019 P13|Emetteur / Récepteur analogique en bande 5725-5875 MHz]]&lt;br /&gt;
| Un seul concurrent. Scénario d'usage ne donnant probablement pas la pleine mesure du produit. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien sur la planification&amp;lt;/font&amp;gt;.&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien.&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;
| P14 [[IMA4 2018/2019 P14|Voiture autonome en modèle réduit]]&lt;br /&gt;
| Il me semble que le chassis doit être celui d'un modèle radio-commandé existant. Il me semble que le pilotage manuel n'est pas autorisé. Description un peu rapide des concurrents. Une synthèse du matériel et logiciels employés aurait été intéressant. Pour le scénario d'usage, une description avec la voiture comme sujet aurait être plus intéressant. La réponse à la première question ne va pas dans le sens de l'autonomie. Dire que python est le langage par défaut de la RPi n'a pas de sens. Vous avez tout intérêt à prendre le langage le plus efficace est ce n'est probablement pas python. Pas de servo-moteurs continus sur une voiture radio-commandé. Pas vraiement de plan de travail. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Prenez contact avec votre encadrant direct, j'aimerais que vos choix soient validés, certains me paraissent discutables.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Aucune référence précise pour les matériels. Rien sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2018/2019 P22|Secure And Verified Public Announcements through Blockchain]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Excellente rédaction.&amp;lt;/font&amp;gt; Une bonne tentative de description du projet mais toujours un flou sur le travail à réalisé. Cela aurait pu être levé avec une liste précise des tâches à effectuer (une tentative de liste dans les objectifs).&lt;br /&gt;
| Pas de matériel nécessaire (une RPi peut être).&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[IMA4 2018/2019 P26|Discussion pair à pair]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Nombre de coquilles inacceptable&amp;lt;/font&amp;gt;. Rajouter dans les objectifs de devoir tenter une ouverture de bouclier pour TCP (TCP Hole Punching). Analyse du premier concurrent : le prétexte pour n'utiliser que des serveurs microsoft pour les supernoeuds skype est le faible nombre de machines d'utilisateurs non handicapées par des parefeux. Bonne réponse aux questions difficile. L'expérience de skype dit qu'il faut totalement éviter qu'un noeud utilisateur ait à relayer les communications d'un autre utilisateur (ce qui est d'ailleurs contraire aux objectifs). Il faut donc une solution de pair à pair pour '''tous''' les clients. En particulier, IPv6 '''doit''' être intégré dans les solutions possibles. Il ne me semble pas que l'enregistrement des utilisateurs soit nécessaire, elle nuit même à la vie privée. Il faut simplement mémoriser les utilisateurs connectés. &lt;br /&gt;
| Pas de matériel listé pourtant il faut mettre en place un banc d'essai.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[IMA4 2018/2019 P28|Affichage à billes]]&lt;br /&gt;
| Pour les panneaux d'affichage publicitaire, je ne suis pas sur que la consommation puisse être qualifiée d'énorme (il semble que si, à la lecture de votre réponse aux questions difficiles mais cela doit comprendre l'éclairage dont votre produit pourrait avec aussi besoin). &amp;lt;font color='green'&amp;gt;Rédaction très correcte. Un gros effort sur les illustrations. Un scénario d'usage, lui aussi, bien rédigé&amp;lt;/font&amp;gt;. La réponse à la question difficile sur l'énergie consommée par votre produit ne me convainc pas : partez sur la différence d'énergie potentielle pour monter une bille pas sur la force à exercer qu'il faudrait intégrer sur la hauteur de la remontée. Il faut approfondir l'analyse des tâches à effectuer.&lt;br /&gt;
| Il me semble avoir demandé de limiter la complexité du dispositif : 8 moteurs ?? Pas de références précises pour les matériels (lien sur le matériel dans le site du fournisseur).&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2018/2019 P30|Système minimal de gestion de conteneurs]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Excellent Wiki à ce jour. Rédaction très claire. Très bonne introduction. Tâches à réalisées clairement listées (mais dans les objectifs). Présentation très correcte du &amp;quot;concurrent principal&amp;quot;. Un scénario d'usage correct (j'aurais plutôt insisté sur la faible consommation du système en ressources que sur l'installation dans un système fortement personnalisé). Un calendrier prévisionnel.&amp;lt;/font&amp;gt; Le second &amp;quot;concurrent&amp;quot; est en fait l'ancienne couche bas niveau de &amp;lt;code&amp;gt;Docker&amp;lt;/code&amp;gt;. Il faudrait utiliser la syntaxe Wiki mais ne touchez à rien avant la séance du 10 décembre cela me fera un exemple parfait pour expliquer cette syntaxe.&lt;br /&gt;
| Pas de matériel nécessaire (une machine virtuelle sera concédée en cours de projet).&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[IMA4 2018/2019 P31|Robot hexapode de mesure de RSSI WiFi]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Beaucoup trop de coquilles&amp;lt;/font&amp;gt;. Bonne présentation des &amp;quot;concurrents&amp;quot; qui vous servent aussi pour expliquer que votre projet est leur synthèse. Le scénario d'usage se tient. Bonne réponse à la question. Je ne crois pas trop au positionnement par RFID (il faut être sur un tag RFID pour le lire). Etes-vous sur pour l'Arduino méga ? Un Uno avec un bouclier PWM ne serait-il pas plus efficace ?&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Effort de liste de matériel avec des références précises&amp;lt;/font&amp;gt;. Pas de liste sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2018/2019 P32|Robe augmentée]]&lt;br /&gt;
| En français l'abréviation de Monsieur est M. Mr est l'abrévation de Mister donc à n'utiliser qu'en anglosaxonnerie. Attention nous avons une expérience du fil à coudre conducteur et cela ne marche pas très bien sauf sur une surface très réduite. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Le scénario d'usage est perturbant : cela semble être un scénario pour deux produits différents&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous avez considérablement simplifié le projet (sous-ensemble de projets déjà réalisés), la réalisation devra être impeccable pour que cela puisse être validé comme projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| La liste du matériel précise ce que vous souhaitez faire. Que vient faire la platine d'essai dans cette liste ? Pour le prototype ? Vous ne parlez pas du tout de la carte contrôleur. C'est une Lilypad ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[IMA4 2018/2019 P33|Collier à animations lumineuses]]&lt;br /&gt;
| Un français imaginatif avec un nombre de coquilles dans la moyenne. Un scénario d'usage rocambolesque (il doit me manquer quelques références) mais acceptable. Des concurrents pertinents. Réponses aux questions acceptables. Se limiter à trois plaques ne me semble pas pertinent (même si vous pouvez faire un premier test sur trois plaques). Pour l'étude de la communication prévoyez un prototype avec quelques Arduino.&lt;br /&gt;
| Une liste de matériel qui semble être établie à la hâte. Il manque de nombreux composants électroniques pour faire tourner micro-contrôleurs et pilotes de LED. Pas de référence précise pour les composants.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2018/2019 P35|Machine Learning pour navigation autonome de robots mobiles]]&lt;br /&gt;
| Il n'est pas tenu compte des erreurs de français. Dans la partie objectifs, la première sous-partie devrait plutôt s'appeler &amp;quot;partie robotique&amp;quot;, il n'y a rien d'électronique ici. Le travail a effectuer est assez flou. En particulier le Wiki ne contient rien sur les bibliothèques de &amp;quot;machine learning&amp;quot; à utiliser.&lt;br /&gt;
| Le matériel est fourni par les encadrants directs (AIP ?)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[IMA4 2018/2019 P37|Station de recharge intelligente pour robot mobile]]&lt;br /&gt;
| Trop de coquilles. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Il semble que le sujet initial ne correspond plus à ce qui est demandé, merci de préciser le nouveau sujet, calibrage du robot ?&amp;lt;/font&amp;gt;Comment comptez-vous calibrer un préhenseur avec simplement du code (pas de réponse au niveau de la question difficile) ? &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Un seul concurrrent et sur la partie obsolète du projet&amp;lt;/font&amp;gt;. Une analyse du travail a effectuer qui ne tient pas compte de l'abandon du sujet original.&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Aucune 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;
| P38 [[IMA4 2018/2019 P38|Interface Graphique pour Robotino 2 Upgradé]]&lt;br /&gt;
| Choix des &amp;quot;concurrents&amp;quot; peu pertinents ou il fallait insister sur les différences entre ces robots et le robotino 2 amélioré. Le scénario d'usage se tient. Bonne réponse à la question &amp;quot;difficile&amp;quot;. Il semble que le but du projet se réduise à créer une interface web avec une bibliothèque spécifique. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;L'interface devra être irréprochable pour constituer un projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Projet purement informatique, pas de matériel nécessaire (autre qu'un robotino amélioré).&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2018/2019 P40|RFID/NFC]]&lt;br /&gt;
| L'objectif est clairement explicité et dans un français très correct. Desc concurrents peu pertinents et une analyse trop hâtive des dits concurrents. La réponse sur la question de la difficulté du projet n'est pas convaincante. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Votre application de contrôle du robotino par smartphone se devra d'être irréprochable pour constituer un projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Attention, tout votre projet repose sur la validité des lecteur RFID commandés. Si ces lecteurs ne sont pas utilisables votre projet tombe à l'eau. Vous avez étudié la compatibilité des lecteurs avec les robotino ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2018/2019 P42|Coupe de robotique des écoles primaires]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Beaucoup trop de coquilles&amp;lt;/font&amp;gt;. Objectifs très clairement précisés. Analyse des concurrents et réponse lapidaires. Le fait que vous ne respectiez pas le cahier des charges imposé aux enfants est problématique. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une liste précise des tâches a effectuer. Un calendrier prévisionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Bel effort de liste de matériel. Quelques composants chez des fournisseurs non agréés. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Liste sur la page principale&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 [[IMA4 2018/2019 P44|Clônes améliorés des modules ARDUINO]]&lt;br /&gt;
| Restriction du sujet à la conception et réalisation d'une seule carte, ce qui est, ma foi, prudent. Bonne description de &amp;quot;concurrents&amp;quot;. Des coquilles mais sans plus. Ne mettez pas d'espace ou d'accents dans les noms des fichiers téléchargés. Scénario d'usage acceptable. Clairement vous avez déjà pas mal réfléchi à votre carte. &lt;br /&gt;
| Une liste de matériel mais sans lien vers le composant chez un fournisseur agréé.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[IMA4 2018/2019 P45|Sac à main ou sac à dos solaire]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très bien illustré, rédaction assez correcte (quelques coquilles)&amp;lt;/font&amp;gt;. Bonne description de concurrents, scénario d'usage convenable. Réponses un peu rapides aux questions &amp;quot;difficiles&amp;quot;&lt;br /&gt;
| Une liste de composants qui parait encore bien préliminaire. Aucun lien sur les composants chez les fournisseurs.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P46 [[IMA4 2018/2019 P46|Kit Robot]]&lt;br /&gt;
| PLutôt bien rédigé malgré quelques coquilles. Objectifs bien fixés. Concurrents décrits en détail (un peu de synthèse n'aurait pas fait de mal). &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Scénario d'usage très correct&amp;lt;/font&amp;gt;. &lt;br /&gt;
| Un liste de composants bien avancée. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Des liens vers les fournisseurs. Matériels sur la page principale.&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;
| P57 [[IMA4 2018/2019 P57|Mise à jour over the air]]&lt;br /&gt;
| Bon cahier des charges qui répond aux questions que l'on pourrait se poser à la lecture du reste de la page. Quelle différence entre votre solution et Dualoptiboot du coup ? Dualoptiboot ne comprend pas la partie matérielle ? Allez-vous l'utiliser ? Un scénario d'usage bien rapide. La réponse semble à coté de la question, il semble que vous répondez à la question &amp;quot;comment vérifier une somme de contrôle avant de flasher la mémoire programme ?&amp;quot;. Comment allez vous gérer la clef de chiffrement ? Elle est figée dans l'amorceur ? Je crois comprendre en fin de page que vous voulez fixer une clef par capteur, cela casse le principe de la mise à jour par diffusion radio, non ?&lt;br /&gt;
| Une première liste de matériel sans lien vers les sites des fournisseurs agréés.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P63 [[IMA4 2018/2019 P63|Etude de la consommation d'un capteur de pollution]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Une liste de matériel avec des liens vers des fournisseurs. Par contre les fournisseurs choisis ne sont pas forcément utilisables.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P70 [[IMA4 2018/2019 P70|Impact du matériel et du logiciel sur le rayonnement électromagnétique]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction très correcte. Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Une liste de matériels très embryonnaire et sans lien exploitable.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P72 [[IMA4 2018/2019 P72|Mesure du courant simple]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction correcte. Wiki bien illustré. Une partie analyse correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une liste de matériel bien avancée avec des liens exploitables.&amp;lt;/font&amp;gt; Recopiez les liens sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P73 [[IMA4 2018/2019 P73|Ecriture automatique de partition musicale]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction très correcte. Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire. Un calendrier prévisionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Une tentative de liste de matériel qui ne pourra effectivement être finalisé qu'après discussions avec un électronicien.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! 10/12/2018 !! 16/01/2019 !! 23/01/2019 !! 30/01/2019 !! 06/02/2019 !! 13/02/2019 !! 27/02/2019&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[IMA4 2018/2019 P9|Spider and I]]&lt;br /&gt;
| Nestor Martinez / Lina Mejbar&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| A208&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2018/2019 P10|Capteur de niveau d'eau et de pollution]]&lt;br /&gt;
| Antoine Branquart&lt;br /&gt;
| Absent (certificat médical)&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| Absent (certificat médical)&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2018/2019 P12|Recyclage plastique imprimante 3D]]&lt;br /&gt;
| Corentin Danjou / Pol Mulon&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E304/E301&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
|-&lt;br /&gt;
| P13 [[IMA4 2018/2019 P13|Emetteur / Récepteur analogique en bande 5725-5875 MHz]]&lt;br /&gt;
| Arthur Reviron&lt;br /&gt;
| Absent&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2018/2019 P14|Voiture autonome en modèle réduit]]&lt;br /&gt;
| Hugo Dejaegher / Brandon Elemva&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2018/2019 P22|Secure And Verified Public Announcements through Blockchain]]&lt;br /&gt;
| Arezki Ait Mouheb&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[IMA4 2018/2019 P26|Discussion pair à pair]]&lt;br /&gt;
| Fabien Di Natale / Ibrahim Ben Dhiab&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[IMA4 2018/2019 P28|Affichage à billes]]&lt;br /&gt;
| Flora Dziedzic / Martin Michel &lt;br /&gt;
| OK&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E305&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| A311&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2018/2019 P30|Système minimal de gestion de conteneurs]]&lt;br /&gt;
| Hind Malti&lt;br /&gt;
| OK&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E303&lt;br /&gt;
|E306&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[IMA4 2018/2019 P31|Robot hexapode de mesure de RSSI WiFi]]&lt;br /&gt;
| Rémi Foucault / Hugo Velly&lt;br /&gt;
| OK&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304 / Fabricarium&lt;br /&gt;
|E304 / Fabricarium&lt;br /&gt;
|E304&lt;br /&gt;
|E303&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2018/2019 P32|Robe augmentée]]&lt;br /&gt;
| Brinda Muzakare / Yan Xuelu&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[IMA4 2018/2019 P33|Collier à animations lumineuses]]&lt;br /&gt;
| Loris Ahouassou&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2018/2019 P35|Machine Learning pour navigation autonome de robots mobiles]]&lt;br /&gt;
| Wenjing Chen / Puyuan Lin&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| C304&lt;br /&gt;
| C102&lt;br /&gt;
| C304&lt;br /&gt;
| C304&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[IMA4 2018/2019 P37|Station de recharge intelligente pour robot mobile]]&lt;br /&gt;
| Guillaume Declerck / Pierre Guigo&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[IMA4 2018/2019 P38|Interface Graphique pour Robotino 2 Upgradé]]&lt;br /&gt;
| François Brassart / Jérôme Haon&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2018/2019 P40|RFID/NFC]]&lt;br /&gt;
| Jean De Dieu Nduwamungu / Xinwei Hu&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2018/2019 P42|Coupe de robotique des écoles primaires]]&lt;br /&gt;
| Pierre Frison / Thibault Lepoivre&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| fabricarium&lt;br /&gt;
| E301(fab fermé)&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2018/2019 P44|Clônes améliorés des modules ARDUINO]]&lt;br /&gt;
| Théau Moinat&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[IMA4 2018/2019 P45|Sac à main ou sac à dos solaire]]&lt;br /&gt;
| Mathis Dupré&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P46 [[IMA4 2018/2019 P46|Kit Robot]]&lt;br /&gt;
| Valentin Pitre / Gaëlle Bernard&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| A208&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P57 [[IMA4 2018/2019 P57|Mise à jour over the air]]&lt;br /&gt;
| Florent Leroy&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P63 [[IMA4 2018/2019 P63|Etude de la consommation d'un capteur de pollution]]&lt;br /&gt;
| Victor Lorthios / Juliette Obled&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P70 [[IMA4 2018/2019 P70|Impact du matériel et du logiciel sur le rayonnement électromagnétique]]&lt;br /&gt;
| Antoine Moreau / Souheib Khinache&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P72 [[IMA4 2018/2019 P72|Mesure du courant simple]]&lt;br /&gt;
| Raphaël Martin&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
|-&lt;br /&gt;
| P73 [[IMA4 2018/2019 P73|Ecriture automatique de partition musicale]]&lt;br /&gt;
| Hugo Leurent / Fabien Ronckier&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hvelly</name></author>	</entry>

	</feed>