<?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=Getchegu</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=Getchegu"/>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Getchegu"/>
		<updated>2026-05-14T01:23:12Z</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:Manette_prog.zip&amp;diff=58134</id>
		<title>Fichier:Manette prog.zip</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Manette_prog.zip&amp;diff=58134"/>
				<updated>2018-05-21T15:20:30Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57746</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57746"/>
				<updated>2018-05-16T17:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'anciens projets.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour d'anciens projets. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons alors du la retravailler en enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté vers du matériel bas niveau (capteurs, actionneurs..), l’Arduino s’est révélé plus optimal que la Raspberry, elle orientée haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans le microprocesseur. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
Cela s'est révélé être une erreur en fin de projet.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR ainsi qu'à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Servomoteurs''' : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car ceux-ci ne nécessitent qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Capteurs''' : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que des détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et, par exemple, décider des placements pour un train de véhicule.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant.&lt;br /&gt;
&lt;br /&gt;
Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Un second problème serait de commencer à lire un message au milieu de l'émission. On se retrouverait alors avec des identifiants faux. On a ainsi ajouté n+1 bits de start de sorte à être sûr que l'on est au début du message.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Pour cela on vérifie que l'on reçoit bien les n+1 bits de start. Puis à chaque bits similaires on incrémente un compteur, on vérifie qu’à chaque fois que l'on a n bits similaires le bit suivant soit inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour la réception, il nous faut utiliser un capteur IR TSOP, modulé à 38kHz. Cela occasionne une contrainte : moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, nous avons voulu utiliser la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Cependant il s’est avéré que cette fonction n’avait pas une résolution assez fine. Nous avons donc choisis de passer par les TIMERS de l’Arduino.&lt;br /&gt;
&lt;br /&gt;
On utilise l'émission et la réception simultanément grâce à l'ordonnanceur. Lors de la réception, on vérifie que la trame reçue correspond bien au format de trame standard, et qu'il n'y a pas d'erreur par rapport aux bits de stuffing et de parité. Une fois vérifiée, on sauvegarde l'identifiant.&lt;br /&gt;
&lt;br /&gt;
Aujourd'hui, on utilise 3 capteurs IR, un sur chaque côté du robot (avant et latéraux). Chaque capteur aura une tâche de l'ordonnanceur qui lui est propre, afin qu'il puisse recevoir le même signal.&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| 20&lt;br /&gt;
| 8&lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 12&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 15 !! 10 !! 28 !! 42 !! 220&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la simulation de l'algorithmie sur Unity3D.&lt;br /&gt;
De plus, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les différentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudrait se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier permettra le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillera la carte électronique.&lt;br /&gt;
Le dernier maintiendra les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot par rapport à un modèle composé d'un seul bloc. Cependant nous avons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&lt;br /&gt;
&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&lt;br /&gt;
&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place et pris en main l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des réelles modifications. Pour cela une analyse plus poussée afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|200px|Carte électronique existante]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de l'émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et nous avons lancé les tests de création.&lt;br /&gt;
Côté programmation il était aussi temps de passer à la pratique avec des tests sur les futurs composants du robot.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être reçu et lu.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré qu'elle avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, nous avons donc utilisé le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec en bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étage la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, ainsi qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi d'environ 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|220px|Première version du châssis imprimé]]&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barres fines en longueur (voir image semaine 8). Cependant cette configuration permettait une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à des vis en l'encrant dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:OscillopeIR.jpg|left|400px|]]&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la documentation technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne étant montée en pull-up, on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&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;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IDIR.jpg|400px|]]&lt;br /&gt;
[[Fichier:consoleIR.jpg|400px|]]&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utiliser l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Cependant, le capteur étant tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel. De plus, &lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test des servomoteurs===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servomoteurs à rotation continue, donc asservis en vitesse. On les commande en modulation de largeur d'impulsion (PWM), avec une impulsion de 1 à 2 ms toutes les 20 ms. Nous avons ainsi programmé cette tache avec FreeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurMarcheAvant.mp4 | Vidéo des moteurs en marche Avant]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurMarcheArriere.mp4 | Vidéo des moteurs en marche Arrière]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution définie par l'OS était de 1 ms. Il était donc impossible d'avoir une impulsion de 1 à 2 ms pour contrôler les moteurs en vitesse. Nous pouvions seulement mettre 1 ms ou 2 ms, ce qui correspondait à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Nous devions alors utiliser un autre timer de l'ATMega328p. Cependant, celui-ci n'en contentant que 3, deux de 8 bits et un de 16 bits, nous devions utiliser le dernier timer pour contrôler les 2 servomoteurs et le capteur à ultrason (on utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour FreeRTOS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du routage des composants sur la carte électronique a été une phase d'apprentissage des techniques de soudage et d'utilisation des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, selon les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servomoteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms ainsi qu'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste dans laquelle on insère dans l'ordre d'extinction les pins à éteindre et l'instant moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurTourner.mp4 | Vidéo des moteurs à vitesses différentes]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P25_Carte_Electronique_fonctionnelle.jpg|220px|left|Carte finalisée et fonctionnelle]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Une fois l'environnement du microprocesseur routé au four, nous avons pu souder&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
à la main les composants manquant, toujours fonctions par fonctions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
afin de limiter les risques de loupés.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps. Cela n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est déroulé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons cherché à stocker les identifiants des robots captés et le numéro du capteur en question.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on a mis en œuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Même après une analyse approfondie, nous ne trouvions pas la cause du problème.&lt;br /&gt;
&lt;br /&gt;
Il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand elle était pleine. &lt;br /&gt;
Après l'édition du code pour minimiser les données, nous n'avions plus de problèmes. Nous avons alors décommenté certaines lignes de codes. Mais nous n'arrivions pas à stocker l'identifiant capté. &lt;br /&gt;
&lt;br /&gt;
En envoyant par le terminal &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors que l'on l'affichait juste après le &amp;quot;Malloc&amp;quot; correspondant. Cette fonction renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. &lt;br /&gt;
&lt;br /&gt;
En utilisant avr-size sur l'exécutable, on remarque que 85% de la RAM (1.7ko / 2ko) est déjà occupé avant même l'exécution du programme. Ceci est alors dû aux variables statiques du programme. Cependant nos programmes n'utilisent qu'une ou deux variables statiques.&lt;br /&gt;
Ceci nous a permis de déceler que le problème est dû au FreeRTOS qui utilise énormément de variables statiques dont la plupart ne nous sont pas utiles dans notre cas. &lt;br /&gt;
&lt;br /&gt;
Après avoir fait des recherches, nous n'avons pas réussi à réduire la taille consommée par FreeRTOS. Si nous avions eu plus de temps, nous aurions programmé notre propre ordonnanceur, ce qui aurait pu permettre de réduire de 70% la taille consommée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
Lors des dernières semaines de travail, nous avons assemblé les différentes parties du robot afin  d'obtenir la version finale que l'on a pu présenter lors de la vidéo ainsi que lors de la soutenance.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|220px|Version finalisée du robot.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
De nombreux tests sur les différentes parties nous ont permis de vérifier la bonne fonctionnalité des capteurs ou actionneurs, et nous ont aussi confirmé quelques problèmes dévoilés lors de la programmation tels qu'un manque de mémoire flagrant de l'ATMega bloquant toute avancée algorithmique.&lt;br /&gt;
&lt;br /&gt;
Les différentes informations récoltées nous ont permis de déterminer que la plus grande partie de la mémoire utilisée (85%) était destinée à l'OS implantée au début du projet, soit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à cela, nous avons pensé à programmé un ordonnanceur afin de remplacer FreeRTOS au sein du microprocesseur et ainsi conserver de la mémoire pour le programme fonctionnel.&lt;br /&gt;
Cette solution s'est révélée satisfaisante, cependant le temps restant pour la finalisation du projet ne permettait pas une étude plus approfondie, de fait la vidéo, les rapports et une finalisation nécessaire du système demandaient eux-aussi un temps non négligeable a fournir.&lt;br /&gt;
&lt;br /&gt;
Cependant cette solution serait à prendre en compte comme une option à courts termes pour l'avancée du projet. Elle permet un gain de mémoire conséquent pour une algorithmie simple, mais ne permet pas une extension assez grande sur un aspect longs termes de telle sorte à respecter au maximum le cahier des charges (mapping d'une salle, par exemple).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Programmation du Robot  : [[Fichier:Programmation_P25.zip|Programmation.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57739</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57739"/>
				<updated>2018-05-16T15:14:31Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'anciens projets.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour d'anciens projets. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons alors du la retravailler en enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté vers du matériel bas niveau (capteurs, actionneurs..), l’Arduino s’est révélé plus optimal que la Raspberry, elle orientée haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans le microprocesseur. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
Cela s'est révélé être une erreur en fin de projet.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR ainsi qu'à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Servomoteurs''' : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car ceux-ci ne nécessitent qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Capteurs''' : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que des détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et, par exemple, décider des placements pour un train de véhicule.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant.&lt;br /&gt;
&lt;br /&gt;
Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Un second problème serait de commencer à lire un message au milieu de l'émission. On se retrouverait alors avec des identifiants faux. On a ainsi ajouté n+1 bits de start de sorte à être sûr que l'on est au début du message.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Pour cela on vérifie que l'on reçoit bien les n+1 bits de start. Puis à chaque bits similaires on incrémente un compteur, on vérifie qu’à chaque fois que l'on a n bits similaires le bit suivant soit inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour la réception, il nous faut utiliser un capteur IR TSOP, modulé à 38kHz. Cela occasionne une contrainte : moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, nous avons voulu utiliser la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Cependant il s’est avéré que cette fonction n’avait pas une résolution assez fine. Nous avons donc choisis de passer par les TIMERS de l’Arduino.&lt;br /&gt;
&lt;br /&gt;
On utilise l'émission et la réception simultanément grâce à l'ordonnanceur. Lors de la réception, on vérifie que la trame reçue correspond bien au format de trame standard, et qu'il n'y a pas d'erreur par rapport aux bits de stuffing et de parité. Une fois vérifiée, on sauvegarde l'identifiant.&lt;br /&gt;
&lt;br /&gt;
Aujourd'hui, on utilise 3 capteurs IR, un sur chaque côté du robot (avant et latéraux). Chaque capteur aura une tâche de l'ordonnanceur qui lui est propre, afin qu'il puisse recevoir le même signal.&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| 20&lt;br /&gt;
| 8&lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 12&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 15 !! 10 !! 28 !! 42 !! 220&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la simulation de l'algorithmie sur Unity3D.&lt;br /&gt;
De plus, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les différentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudrait se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier permettra le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillera la carte électronique.&lt;br /&gt;
Le dernier maintiendra les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot par rapport à un modèle composé d'un seul bloc. Cependant nous avons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&lt;br /&gt;
&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&lt;br /&gt;
&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place et pris en main l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des réelles modifications. Pour cela une analyse plus poussée afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|200px|Carte électronique existante]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de l'émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et nous avons lancé les tests de création.&lt;br /&gt;
Côté programmation il était aussi temps de passer à la pratique avec des tests sur les futurs composants du robot.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être reçu et lu.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré qu'elle avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, nous avons donc utilisé le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec en bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étage la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, ainsi qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi d'environ 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|220px|Première version du châssis imprimé]]&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barres fines en longueur (voir image semaine 8). Cependant cette configuration permettait une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à des vis en l'encrant dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:OscillopeIR.jpg|left|400px|]]&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la documentation technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne étant montée en pull-up, on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&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;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IDIR.jpg|400px|]]&lt;br /&gt;
[[Fichier:consoleIR.jpg|400px|]]&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utiliser l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Cependant, le capteur étant tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel. De plus, &lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test des servomoteurs===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servomoteurs à rotation continue, donc asservis en vitesse. On les commande en modulation de largeur d'impulsion (PWM), avec une impulsion de 1 à 2 ms toutes les 20 ms. Nous avons ainsi programmé cette tache avec FreeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurMarcheAvant.mp4 | Vidéo des moteurs en marche Avant]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurMarcheArriere.mp4 | Vidéo des moteurs en marche Arrière]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution définie par l'OS était de 1 ms. Il était donc impossible d'avoir une impulsion de 1 à 2 ms pour contrôler les moteurs en vitesse. Nous pouvions seulement mettre 1 ms ou 2 ms, ce qui correspondait à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Nous devions alors utiliser un autre timer de l'ATMega328p. Cependant, celui-ci n'en contentant que 3, deux de 8 bits et un de 16 bits, nous devions utiliser le dernier timer pour contrôler les 2 servomoteurs et le capteur à ultrason (on utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour FreeRTOS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du routage des composants sur la carte électronique a été une phase d'apprentissage des techniques de soudage et d'utilisation des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, selon les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servomoteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms ainsi qu'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste dans laquelle on insère dans l'ordre d'extinction les pins à éteindre et l'instant moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurTourner.mp4 | Vidéo des moteurs à vitesses différentes]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P25_Carte_Electronique_fonctionnelle.jpg|220px|left|Carte finalisée et fonctionnelle]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Une fois l'environnement du microprocesseur routé au four, nous avons pu souder&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
à la main les composants manquant, toujours fonctions par fonctions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
afin de limiter les risques de loupés.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps. Cela n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est déroulé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons cherché à stocker les identifiants des robots captés et le numéro du capteur en question.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on a mis en œuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Même après une analyse approfondie, nous ne trouvions pas la cause du problème.&lt;br /&gt;
&lt;br /&gt;
Il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand elle était pleine. &lt;br /&gt;
Après l'édition du code pour minimiser les données, nous n'avions plus de problèmes. Nous avons alors décommenté certaines lignes de codes. Mais nous n'arrivions pas à stocker l'identifiant capté. &lt;br /&gt;
&lt;br /&gt;
En envoyant par le terminal &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors que l'on l'affichait juste après le &amp;quot;Malloc&amp;quot; correspondant. Cette fonction renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. &lt;br /&gt;
&lt;br /&gt;
En utilisant avr-size sur l'exécutable, on remarque que 85% de la RAM (1.7ko / 2ko) est déjà occupé avant même l'exécution du programme. Ceci est alors dû aux variables statiques du programme. Cependant nos programmes n'utilisent qu'une ou deux variables statiques.&lt;br /&gt;
Ceci nous a permis de déceler que le problème est dû au FreeRTOS qui utilise énormément de variables statiques dont la plupart ne nous sont pas utiles dans notre cas. &lt;br /&gt;
&lt;br /&gt;
Après avoir fait des recherches, nous n'avons pas réussi à réduire la taille consommée par FreeRTOS. Si nous avions eu plus de temps, nous aurions programmé notre propre ordonnanceur, ce qui aurait pu permettre de réduire de 70% la taille consommée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
Lors des dernières semaines de travail, nous avons assemblé les différentes parties du robot afin  d'obtenir la version finale que l'on a pu présenter lors de la vidéo ainsi que lors de la soutenance.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|220px|Version finalisée du robot.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
De nombreux tests sur les différentes parties nous ont permis de vérifier la bonne fonctionnalité des capteurs ou actionneurs, et nous ont aussi confirmé quelques problèmes dévoilés lors de la programmation tels qu'un manque de mémoire flagrant de l'ATMega bloquant toute avancée algorithmique.&lt;br /&gt;
&lt;br /&gt;
Les différentes informations récoltées nous ont permis de déterminer que la plus grande partie de la mémoire utilisée (85%) était destinée à l'OS implantée au début du projet, soit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à cela, nous avons pensé à programmé un ordonnanceur afin de remplacer FreeRTOS au sein du microprocesseur et ainsi conserver de la mémoire pour le programme fonctionnel.&lt;br /&gt;
Cette solution s'est révélée satisfaisante, cependant le temps restant pour la finalisation du projet ne permettait pas une étude plus approfondie, de fait la vidéo, les rapports et une finalisation nécessaire du système demandaient eux-aussi un temps non négligeable a fournir.&lt;br /&gt;
&lt;br /&gt;
Cependant cette solution serait à prendre en compte comme une option à courts termes pour l'avancée du projet. Elle permet un gain de mémoire conséquent pour une algorithmie simple, mais ne permet pas une extension assez grande sur un aspect longs termes de telle sorte à respecter au maximum le cahier des charges (mapping d'une salle, par exemple).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Rapport_Etcheguibel_Canu.pdf&amp;diff=57281</id>
		<title>Fichier:Rapport Etcheguibel Canu.pdf</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Rapport_Etcheguibel_Canu.pdf&amp;diff=57281"/>
				<updated>2018-05-15T16:22:11Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : Getchegu a téléversé une nouvelle version de Fichier:Rapport Etcheguibel Canu.pdf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Rapport_Etcheguibel_Canu.pdf&amp;diff=57280</id>
		<title>Fichier:Rapport Etcheguibel Canu.pdf</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Rapport_Etcheguibel_Canu.pdf&amp;diff=57280"/>
				<updated>2018-05-15T16:05:46Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57271</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57271"/>
				<updated>2018-05-15T15:49:49Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'anciens projets.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour d'anciens projets. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons alors du la retravailler en enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté vers du matériel bas niveau (capteurs, actionneurs..), l’Arduino s’est révélé plus optimal que la Raspberry, elle orientée haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans le microprocesseur. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
Cela s'est révélé être une erreur en fin de projet.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR ainsi qu'à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Servomoteurs''' : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car ceux-ci ne nécessitent qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Capteurs''' : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que des détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et, par exemple, décider des placements pour un train de véhicule.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant.&lt;br /&gt;
&lt;br /&gt;
Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Un second problème serait de commencer à lire un message au milieu de l'émission. On se retrouverait alors avec des identifiants faux. On a ainsi ajouté n+1 bits de start de sorte à être sûr que l'on est au début du message.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Pour cela on vérifie que l'on reçoit bien les n+1 bits de start. Puis à chaque bits similaires on incrémente un compteur, on vérifie qu’à chaque fois que l'on a n bits similaires le bit suivant soit inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour la réception, il nous faut utiliser un capteur IR TSOP, modulé à 38kHz. Cela occasionne une contrainte : moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, nous avons voulu utiliser la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Cependant il s’est avéré que cette fonction n’avait pas une résolution assez fine. Nous avons donc choisis de passer par les TIMERS de l’Arduino.&lt;br /&gt;
&lt;br /&gt;
On utilise l'émission et la réception simultanément grâce à l'ordonnanceur. Lors de la réception, on vérifie que la trame reçue correspond bien au format de trame standard, et qu'il n'y a pas d'erreur par rapport aux bits de stuffing et de parité. Une fois vérifiée, on sauvegarde l'identifiant.&lt;br /&gt;
&lt;br /&gt;
Aujourd'hui, on utilise 3 capteurs IR, un sur chaque côté du robot (avant et latéraux). Chaque capteur aura une tâche de l'ordonnanceur qui lui est propre, afin qu'il puisse recevoir le même signal.&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| 20&lt;br /&gt;
| 8&lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 12&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 15 !! 10 !! 28 !! 42 !! 220&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la simulation de l'algorithmie sur Unity3D.&lt;br /&gt;
De plus, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les différentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudrait se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier permettra le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillera la carte électronique.&lt;br /&gt;
Le dernier maintiendra les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot par rapport à un modèle composé d'un seul bloc. Cependant nous avons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&lt;br /&gt;
&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&lt;br /&gt;
&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place et pris en main l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des réelles modifications. Pour cela une analyse plus poussée afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|200px|Carte électronique existante]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de l'émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et nous avons lancé les tests de création.&lt;br /&gt;
Côté programmation il était aussi temps de passer à la pratique avec des tests sur les futurs composants du robot.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être reçu et lu.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré qu'elle avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, nous avons donc utilisé le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec en bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étage la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, ainsi qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi d'environ 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|220px|Première version du châssis imprimé]]&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barres fines en longueur (voir image semaine 8). Cependant cette configuration permettait une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à des vis en l'encrant dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:OscillopeIR.jpg|left|400px|]]&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la documentation technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne étant montée en pull-up, on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&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;
[[Fichier:IDIR.jpg|400px|]]&lt;br /&gt;
[[Fichier:consoleIR.jpg|400px|]]&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utiliser l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Cependant, le capteur étant tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel. De plus, &lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test des servomoteurs===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servomoteurs à rotation continue, donc asservis en vitesse. On les commande en modulation de largeur d'impulsion (PWM), avec une impulsion de 1 à 2 ms toutes les 20 ms. Nous avons ainsi programmé cette tache avec FreeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurMarcheAvant.mp4 | Vidéo des moteurs en marche Avant]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurMarcheArriere.mp4 | Vidéo des moteurs en marche Arrière]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution définie par l'OS était de 1 ms. Il était donc impossible d'avoir une impulsion de 1 à 2 ms pour contrôler les moteurs en vitesse. Nous pouvions seulement mettre 1 ms ou 2 ms, ce qui correspondait à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Nous devions alors utiliser un autre timer de l'ATMega328p. Cependant, celui-ci n'en contentant que 3, deux de 8 bits et un de 16 bits, nous devions utiliser le dernier timer pour contrôler les 2 servomoteurs et le capteur à ultrason (on utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour FreeRTOS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du routage des composants sur la carte électronique a été une phase d'apprentissage des techniques de soudage et d'utilisation des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, selon les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servomoteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms ainsi qu'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste dans laquelle on insère dans l'ordre d'extinction les pins à éteindre et l'instant moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurTourner.mp4 | Vidéo des moteurs à vitesses différentes]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P25_Carte_Electronique_fonctionnelle.jpg|220px|left|Carte finalisée et fonctionnelle]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Une fois l'environnement du microprocesseur routé au four, nous avons pu souder&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
à la main les composants manquant, toujours fonctions par fonctions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
afin de limiter les risques de loupés.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps. Cela n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est déroulé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons cherché à stocker les identifiants des robots captés et le numéro du capteur en question.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on a mis en œuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Même après une analyse approfondie, nous ne trouvions pas la cause du problème.&lt;br /&gt;
&lt;br /&gt;
Il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand elle était pleine. &lt;br /&gt;
Après l'édition du code pour minimiser les données, nous n'avions plus de problèmes. Nous avons alors décommenté certaines lignes de codes. Mais nous n'arrivions pas à stocker l'identifiant capté. &lt;br /&gt;
&lt;br /&gt;
En envoyant par le terminal &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors que l'on l'affichait juste après le &amp;quot;Malloc&amp;quot; correspondant. Cette fonction renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. &lt;br /&gt;
&lt;br /&gt;
En utilisant avr-size sur l'exécutable, on remarque que 85% de la RAM (1.7ko / 2ko) est déjà occupé avant même l'exécution du programme. Ceci est alors dû aux variables statiques du programme. Cependant nos programmes n'utilisent qu'une ou deux variables statiques.&lt;br /&gt;
Ceci nous a permis de déceler que le problème est dû au FreeRTOS qui utilise énormément de variables statiques dont la plupart ne nous sont pas utiles dans notre cas. &lt;br /&gt;
&lt;br /&gt;
Après avoir fait des recherches, nous n'avons pas réussi à réduire la taille consommée par FreeRTOS. Si nous avions eu plus de temps, nous aurions programmé notre propre ordonnanceur, ce qui aurait pu permettre de réduire de 70% la taille consommée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
Lors des dernières semaines de travail, nous avons assemblé les différentes parties du robot afin  d'obtenir la version finale que l'on a pu présenter lors de la vidéo ainsi que lors de la soutenance.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|220px|Version finalisée du robot.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
De nombreux tests sur les différentes parties nous ont permis de vérifier la bonne fonctionnalité des capteurs ou actionneurs, et nous ont aussi confirmé quelques problèmes dévoilés lors de la programmation tels qu'un manque de mémoire flagrant de l'ATMega bloquant toute avancée algorithmique.&lt;br /&gt;
&lt;br /&gt;
Les différentes informations récoltées nous ont permis de déterminer que la plus grande partie de la mémoire utilisée (85%) était destinée à l'OS implantée au début du projet, soit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à cela, nous avons pensé à programmé un ordonnanceur afin de remplacer FreeRTOS au sein du microprocesseur et ainsi conserver de la mémoire pour le programme fonctionnel.&lt;br /&gt;
Cette solution s'est révélée satisfaisante, cependant le temps restant pour la finalisation du projet ne permettait pas une étude plus approfondie, de fait la vidéo, les rapports et une finalisation nécessaire du système demandaient eux-aussi un temps non négligeable a fournir.&lt;br /&gt;
&lt;br /&gt;
Cependant cette solution serait à prendre en compte comme une option à courts termes pour l'avancée du projet. Elle permet un gain de mémoire conséquent pour une algorithmie simple, mais ne permet pas une extension assez grande sur un aspect longs termes de telle sorte à respecter au maximum le cahier des charges (mapping d'une salle, par exemple).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57242</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57242"/>
				<updated>2018-05-15T15:13:05Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'anciens projets.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour d'anciens projets. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons alors du la retravailler en enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté vers du matériel bas niveau (capteurs, actionneurs..), l’Arduino s’est révélé plus optimal que la Raspberry, elle orientée haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans le microprocesseur. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
Cela s'est révélé être une erreur en fin de projet.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR ainsi qu'à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Servomoteurs''' : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car ceux-ci ne nécessitent qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Capteurs''' : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que des détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et, par exemple, décider des placements pour un train de véhicule.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant.&lt;br /&gt;
&lt;br /&gt;
Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Un second problème serait de commencer à lire un message au milieu de l'émission. On se retrouverait alors avec des identifiants faux. On a ainsi ajouté n+1 bits de start de sorte à être sûr que l'on est au début du message.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Pour cela on vérifie que l'on reçoit bien les n+1 bits de start. Puis à chaque bits similaires on incrémente un compteur, on vérifie qu’à chaque fois que l'on a n bits similaires le bit suivant soit inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour la réception, il nous faut utiliser un capteur IR TSOP, modulé à 38kHz. Cela occasionne une contrainte : moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, nous avons voulu utiliser la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Cependant il s’est avéré que cette fonction n’avait pas une résolution assez fine. Nous avons donc choisis de passer par les TIMERS de l’Arduino.&lt;br /&gt;
&lt;br /&gt;
On utilise l'émission et la réception simultanément grâce à l'ordonnanceur. Lors de la réception, on vérifie que la trame reçue correspond bien au format de trame standard, et qu'il n'y a pas d'erreur par rapport aux bits de stuffing et de parité. Une fois vérifiée, on sauvegarde l'identifiant.&lt;br /&gt;
&lt;br /&gt;
Aujourd'hui, on utilise 3 capteurs IR, un sur chaque côté du robot (avant et latéraux). Chaque capteur aura une tâche de l'ordonnanceur qui lui est propre, afin qu'il puisse recevoir le même signal.&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| 20&lt;br /&gt;
| 8&lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 12&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 15 !! 10 !! 28 !! 42 !! 220&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la simulation de l'algorithmie sur Unity3D.&lt;br /&gt;
De plus, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les différentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudrait se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier permettra le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillera la carte électronique.&lt;br /&gt;
Le dernier maintiendra les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot par rapport à un modèle composé d'un seul bloc. Cependant nous avons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&lt;br /&gt;
&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&lt;br /&gt;
&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place et pris en main l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des réelles modifications. Pour cela une analyse plus poussée afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|200px|Carte électronique existante]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de l'émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et nous avons lancé les tests de création.&lt;br /&gt;
Côté programmation il était aussi temps de passer à la pratique avec des tests sur les futurs composants du robot.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être reçu et lu.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré qu'elle avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, nous avons donc utilisé le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec en bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étage la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, ainsi qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi d'environ 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|220px|Première version du châssis imprimé]]&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barres fines en longueur (voir image semaine 8). Cependant cette configuration permettait une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à des vis en l'encrant dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la documentation technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne étant montée en pull-up, on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utiliser l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Cependant, le capteur étant tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel. De plus, &lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test des servomoteurs===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servomoteurs à rotation continue, donc asservis en vitesse. On les commande en modulation de largeur d'impulsion (PWM), avec une impulsion de 1 à 2 ms toutes les 20 ms. Nous avons ainsi programmé cette tache avec FreeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurMarcheAvant.mp4]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media:MoteurMarcheArriere.mp4]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous pouvions seulement mettre 1 ms ou 2 ms, ce qui correspondais à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Ainsi nous devons utiliser un autre timer de l'ATMega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour FreeRTOS donc nous devons utiliser le dernier timer pour contrôler les 2 servomoteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du routage des composants sur la carte électronique a été une phase d'apprentissage des techniques de soudage et d'utilisation des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, selon les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servomoteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms ainsi qu'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste dans laquelle on insère dans l'ordre d'extinction les pins à éteindre et l'instant moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
vidéo moteurs : [video_moteur.mp4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P25_Carte_Electronique_fonctionnelle.jpg|220px|left|Carte finalisée et fonctionnelle]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Une fois l'environnement du microprocesseur routé au four, nous avons pu souder&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
à la main les composants manquant, toujours fonctions par fonctions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
afin de limiter les risques de loupés.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps.&lt;br /&gt;
&lt;br /&gt;
Cette étape n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est passé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
Ce qu'on a voulu faire, c'est stocker les identifiants des robots captés et par quels capteurs. &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on a mis en oeuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Après analyse approfondie, on n'arrivait pas à déceler pourquoi. &lt;br /&gt;
&lt;br /&gt;
Il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand celles-ci étaient toutes pleines. &lt;br /&gt;
Après édition du code pour minimiser les données, on n'avait plus de problèmes. On a alors décommenté certaines lignes de codes. Mais on n'arrivait pas à stocker l'identifiant captée. &lt;br /&gt;
&lt;br /&gt;
En envoyant par le &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors qu'on l'affichait juste après le &amp;quot;malloc&amp;quot; correspondant. &amp;quot;Malloc&amp;quot; renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. &lt;br /&gt;
&lt;br /&gt;
En utilisant avr-size sur l'exécutable, on remarque que 85% de la RAM (1.7ko / 2ko) est déjà occupé avant même l'exécution du programme. Ceci est alors dû aux variables statiques du programme. Cependant nos programmes n'utilisent qu'une ou deux variables statiques.&lt;br /&gt;
Ceci nous a permis de déceler que le problème est dû au FreeRTOS qui utilise énormément de variables statiques dont la plupart ne nous sont pas utiles dans notre cas. &lt;br /&gt;
&lt;br /&gt;
Après avoir fait des recherches, nous n'avons pas réussi à réduire la taille consommée par FreeRTOS. Si nous avions eu plus de temps, nous aurions programmé notre propre ordonnanceur, ce qui aurait pu permettre de réduire de 70% la taille consommée.&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
Lors des dernières semaines de travail, nous avons assemblé les différentes parties du robot afin  d'obtenir la version finale que l'on a pu présenter lors de la vidéo ainsi que lors de la soutenance.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|220px|Version finalisée du robot.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
De nombreux tests sur les différentes parties nous ont permis de vérifier la bonne fonctionnalité des capteurs ou actionneurs, et nous ont aussi confirmé quelques problèmes dévoilés lors de la programmation tels qu'un manque de mémoire flagrant de l'ATMega bloquant toute avancée algorithmique.&lt;br /&gt;
&lt;br /&gt;
Les différentes informations récoltées nous ont permis de déterminer que la plus grande partie de la mémoire utilisée (85%) était déstinée à l'OS implantée au début du projet, soit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à cela, nous avons pensé à programmé un ordonnanceur afin de remplacer FreeRTOS au sein du microprocesseur et ainsi conserver de la mémoire pour le programme fonctionnel.&lt;br /&gt;
Cette solution s'est révélée satisfaisante, cependant le temps restant pour la finalisation du projet ne permettait pas une étude plus approfondie, de fait la vidéo, les rapports et une finalisation nécessaire du système demandaient eux-aussi un temps non négligeable a fournir.&lt;br /&gt;
&lt;br /&gt;
Cependant cette solution serait à prendre en compte comme une option à courts termes pour l'avancée du projet. Elle permet un gain de mémoire conséquent pour une algorithmie simple, mais ne permet pas une extension assez grande sur un aspect longs termes de telle sorte à respecter au maximum le cahier des charges (mapping d'une salle, par exemple).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57220</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57220"/>
				<updated>2018-05-15T14:49:11Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : /* Feuille d'heures */&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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'anciens projets.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour d'anciens projets. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons alors du la retravailler en enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté vers du matériel bas niveau (capteurs, actionneurs..), l’Arduino s’est révélé plus optimal que la Raspberry, elle orientée haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans le microprocesseur. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
Cela s'est révélé être une erreur en fin de projet.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR ainsi qu'à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Servomoteurs''' : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car ceux-ci ne nécessitent qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Capteurs''' : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que des détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et, par exemple, décider des placements pour un train de véhicule.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant.&lt;br /&gt;
&lt;br /&gt;
Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Un second problème serait de commencer à lire un message au milieu de l'émission. On se retrouverait alors avec des identifiants faux. On a ainsi ajouté n+1 bits de start de sorte à être sûr que l'on est au début du message.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Pour cela on vérifie que l'on reçoit bien les n+1 bits de start. Puis à chaque bits similaires on incrémente un compteur, on vérifie qu’à chaque fois que l'on a n bits similaires le bit suivant soit inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour la réception, il nous faut utiliser un capteur IR TSOP, modulé à 38kHz. Cela occasionne une contrainte : moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, nous avons voulu utiliser la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Cependant il s’est avéré que cette fonction n’avait pas une résolution assez fine. Nous avons donc choisis de passer par les TIMERS de l’Arduino.&lt;br /&gt;
&lt;br /&gt;
On utilise l'émission et la réception simultanément grâce à l'ordonnanceur. Lors de la réception, on vérifie que la trame reçue correspond bien au format de trame standard, et qu'il n'y a pas d'erreur par rapport aux bits de stuffing et de parité. Une fois vérifiée, on sauvegarde l'identifiant.&lt;br /&gt;
&lt;br /&gt;
Aujourd'hui, on utilise 3 capteurs IR, un sur chaque côté du robot (avant et latéraux). Chaque capteur aura une tâche de l'ordonnanceur qui lui est propre, afin qu'il puisse recevoir le même signal.&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| 20&lt;br /&gt;
| 8&lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 12&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 15 !! 10 !! 28 !! 42 !! 220&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la simulation de l'algorithmie sur Unity3D.&lt;br /&gt;
De plus, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les différentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudrait se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier permettra le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillera la carte électronique.&lt;br /&gt;
Le dernier maintiendra les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot par rapport à un modèle composé d'un seul bloc. Cependant nous avons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&lt;br /&gt;
&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&lt;br /&gt;
&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place et pris en main l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des réelles modifications. Pour cela une analyse plus poussée afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|200px|Carte électronique existante]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de l'émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et nous avons lancé les tests de création.&lt;br /&gt;
Côté programmation il était aussi temps de passer à la pratique avec des tests sur les futurs composants du robot.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être reçu et lu.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré qu'elle avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, nous avons donc utilisé le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du routage des composants sur la carte électronique a été une phase d'apprentissage des techniques de soudage et d'utilisation des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, selon les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servo-moteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms, ainsi que d'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste. Dans cette liste, on insère dans l'ordre d'extinction les pins à éteindre et à quel moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
vidéo moteurs : [video_moteur.mp4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P25_Carte_Electronique_fonctionnelle.jpg|220px|left|Carte finalisée et fonctionnelle]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Une fois l'environnement du microprocesseur routé au four, nous avons pu souder&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
à la main les composants manquant, toujours fonctions par fonctions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
afin de limiter les risques de loupés.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps.&lt;br /&gt;
&lt;br /&gt;
Cette étape n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est passé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
Ce qu'on a voulu faire, c'est stocker les identifiants des robots captés et par quels capteurs. &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on a mis en oeuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Après analyse approfondie, on n'arrivait pas à déceler pourquoi. &lt;br /&gt;
&lt;br /&gt;
Il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand celles-ci étaient toutes pleines. &lt;br /&gt;
Après édition du code pour minimiser les données, on n'avait plus de problèmes. On a alors décommenté certaines lignes de codes. Mais on n'arrivait pas à stocker l'identifiant captée. &lt;br /&gt;
&lt;br /&gt;
En envoyant par le &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors qu'on l'affichait juste après le &amp;quot;malloc&amp;quot; correspondant. &amp;quot;Malloc&amp;quot; renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. &lt;br /&gt;
&lt;br /&gt;
En utilisant avr-size sur l'exécutable, on remarque que 85% de la RAM (1.7ko / 2ko) est déjà occupé avant même l'exécution du programme. Ceci est alors dû aux variables statiques du programme. Cependant nos programmes n'utilisent qu'une ou deux variables statiques.&lt;br /&gt;
Ceci nous a permis de déceler que le problème est dû au FreeRTOS qui utilise énormément de variables statiques dont la plupart ne nous sont pas utiles dans notre cas. &lt;br /&gt;
&lt;br /&gt;
Après avoir fait des recherches, nous n'avons pas réussi à réduire la taille consommée par FreeRTOS. Si nous avions eu plus de temps, nous aurions programmé notre propre ordonnanceur, ce qui aurait pu permettre de réduire de 70% la taille consommée.&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
Lors des dernières semaines de travail, nous avons assemblé les différentes parties du robot afin  d'obtenir la version finale que l'on a pu présenter lors de la vidéo ainsi que lors de la soutenance.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|220px|Version finalisée du robot.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
De nombreux tests sur les différentes parties nous ont permis de vérifier la bonne fonctionnalité des capteurs ou actionneurs, et nous ont aussi confirmé quelques problèmes dévoilés lors de la programmation tels qu'un manque de mémoire flagrant de l'ATMega bloquant toute avancée algorithmique.&lt;br /&gt;
&lt;br /&gt;
Les différentes informations récoltées nous ont permis de déterminer que la plus grande partie de la mémoire utilisée (85%) était déstinée à l'OS implantée au début du projet, soit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à cela, nous avons pensé à programmé un ordonnanceur afin de remplacer FreeRTOS au sein du microprocesseur et ainsi conserver de la mémoire pour le programme fonctionnel.&lt;br /&gt;
Cette solution s'est révélée satisfaisante, cependant le temps restant pour la finalisation du projet ne permettait pas une étude plus approfondie, de fait la vidéo, les rapports et une finalisation nécessaire du système demandaient eux-aussi un temps non négligeable a fournir.&lt;br /&gt;
&lt;br /&gt;
Cependant cette solution serait à prendre en compte comme une option à courts termes pour l'avancée du projet. Elle permet un gain de mémoire conséquent pour une algorithmie simple, mais ne permet pas une extension assez grande sur un aspect longs termes de telle sorte à respecter au maximum le cahier des charges (mapping d'une salle, par exemple).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57217</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57217"/>
				<updated>2018-05-15T14:46:10Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'anciens projets.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour d'anciens projets. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons alors du la retravailler en enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté vers du matériel bas niveau (capteurs, actionneurs..), l’Arduino s’est révélé plus optimal que la Raspberry, elle orientée haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans le microprocesseur. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
Cela s'est révélé être une erreur en fin de projet.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR ainsi qu'à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Servomoteurs''' : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car ceux-ci ne nécessitent qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Capteurs''' : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que des détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et, par exemple, décider des placements pour un train de véhicule.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant.&lt;br /&gt;
&lt;br /&gt;
Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Un second problème serait de commencer à lire un message au milieu de l'émission. On se retrouverait alors avec des identifiants faux. On a ainsi ajouté n+1 bits de start de sorte à être sûr que l'on est au début du message.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Pour cela on vérifie que l'on reçoit bien les n+1 bits de start. Puis à chaque bits similaires on incrémente un compteur, on vérifie qu’à chaque fois que l'on a n bits similaires le bit suivant soit inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour la réception, il nous faut utiliser un capteur IR TSOP, modulé à 38kHz. Cela occasionne une contrainte : moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, nous avons voulu utiliser la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Cependant il s’est avéré que cette fonction n’avait pas une résolution assez fine. Nous avons donc choisis de passer par les TIMERS de l’Arduino.&lt;br /&gt;
&lt;br /&gt;
On utilise l'émission et la réception simultanément grâce à l'ordonnanceur. Lors de la réception, on vérifie que la trame reçue correspond bien au format de trame standard, et qu'il n'y a pas d'erreur par rapport aux bits de stuffing et de parité. Une fois vérifiée, on sauvegarde l'identifiant.&lt;br /&gt;
&lt;br /&gt;
Aujourd'hui, on utilise 3 capteurs IR, un sur chaque côté du robot (avant et latéraux). Chaque capteur aura une tâche de l'ordonnanceur qui lui est propre, afin qu'il puisse recevoir le même signal.&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| 20&lt;br /&gt;
| 8&lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 12&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 15 !! 10 !! 28 !! 34 !! 212&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la simulation de l'algorithmie sur Unity3D.&lt;br /&gt;
De plus, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les différentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudrait se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier permettra le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillera la carte électronique.&lt;br /&gt;
Le dernier maintiendra les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot par rapport à un modèle composé d'un seul bloc. Cependant nous avons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&lt;br /&gt;
&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&lt;br /&gt;
&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place et pris en main l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des réelles modifications. Pour cela une analyse plus poussée afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|200px|Carte électronique existante]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de l'émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et nous avons lancé les tests de création.&lt;br /&gt;
Côté programmation il était aussi temps de passer à la pratique avec des tests sur les futurs composants du robot.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être reçu et lu.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré qu'elle avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, nous avons donc utilisé le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du routage des composants sur la carte électronique a été une phase d'apprentissage des techniques de soudage et d'utilisation des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, selon les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servo-moteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms, ainsi que d'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste. Dans cette liste, on insère dans l'ordre d'extinction les pins à éteindre et à quel moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
vidéo moteurs : [video_moteur.mp4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P25_Carte_Electronique_fonctionnelle.jpg|220px|left|Carte finalisée et fonctionnelle]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Une fois l'environnement du microprocesseur routé au four, nous avons pu souder&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
à la main les composants manquant, toujours fonctions par fonctions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
afin de limiter les risques de loupés.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps.&lt;br /&gt;
&lt;br /&gt;
Cette étape n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est passé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
Ce qu'on a voulu faire, c'est stocker les identifiants des robots captés et par quels capteurs. &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on a mis en oeuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Après analyse approfondie, on n'arrivait pas à déceler pourquoi. &lt;br /&gt;
&lt;br /&gt;
Il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand celles-ci étaient toutes pleines. &lt;br /&gt;
Après édition du code pour minimiser les données, on n'avait plus de problèmes. On a alors décommenté certaines lignes de codes. Mais on n'arrivait pas à stocker l'identifiant captée. &lt;br /&gt;
&lt;br /&gt;
En envoyant par le &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors qu'on l'affichait juste après le &amp;quot;malloc&amp;quot; correspondant. &amp;quot;Malloc&amp;quot; renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. &lt;br /&gt;
&lt;br /&gt;
En utilisant avr-size sur l'exécutable, on remarque que 85% de la RAM (1.7ko / 2ko) est déjà occupé avant même l'exécution du programme. Ceci est alors dû aux variables statiques du programme. Cependant nos programmes n'utilisent qu'une ou deux variables statiques.&lt;br /&gt;
Ceci nous a permis de déceler que le problème est dû au FreeRTOS qui utilise énormément de variables statiques dont la plupart ne nous sont pas utiles dans notre cas. &lt;br /&gt;
&lt;br /&gt;
Après avoir fait des recherches, nous n'avons pas réussi à réduire la taille consommée par FreeRTOS. Si nous avions eu plus de temps, nous aurions programmé notre propre ordonnanceur, ce qui aurait pu permettre de réduire de 70% la taille consommée.&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
Lors des dernières semaines de travail, nous avons assemblé les différentes parties du robot afin  d'obtenir la version finale que l'on a pu présenter lors de la vidéo ainsi que lors de la soutenance.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|220px|Version finalisée du robot.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
De nombreux tests sur les différentes parties nous ont permis de vérifier la bonne fonctionnalité des capteurs ou actionneurs, et nous ont aussi confirmé quelques problèmes dévoilés lors de la programmation tels qu'un manque de mémoire flagrant de l'ATMega bloquant toute avancée algorithmique.&lt;br /&gt;
&lt;br /&gt;
Les différentes informations récoltées nous ont permis de déterminer que la plus grande partie de la mémoire utilisée (85%) était déstinée à l'OS implantée au début du projet, soit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à cela, nous avons pensé à programmé un ordonnanceur afin de remplacer FreeRTOS au sein du microprocesseur et ainsi conserver de la mémoire pour le programme fonctionnel.&lt;br /&gt;
Cette solution s'est révélée satisfaisante, cependant le temps restant pour la finalisation du projet ne permettait pas une étude plus approfondie, de fait la vidéo, les rapports et une finalisation nécessaire du système demandaient eux-aussi un temps non négligeable a fournir.&lt;br /&gt;
&lt;br /&gt;
Cependant cette solution serait à prendre en compte comme une option à courts termes pour l'avancée du projet. Elle permet un gain de mémoire conséquent pour une algorithmie simple, mais ne permet pas une extension assez grande sur un aspect longs termes de telle sorte à respecter au maximum le cahier des charges (mapping d'une salle, par exemple).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57088</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57088"/>
				<updated>2018-05-15T09:33:09Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'anciens projets.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour d'anciens projets. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons alors du la retravailler en enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté vers du matériel bas niveau (capteurs, actionneurs..), l’Arduino s’est révélé plus optimal que la Raspberry, elle orientée haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans le microprocesseur. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
Cela s'est révélé être une erreur en fin de projet.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR ainsi qu'à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Servomoteurs''' : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car ceux-ci ne nécessitent qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Capteurs''' : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que des détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et, par exemple, décider des placements pour un train de véhicule.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant.&lt;br /&gt;
&lt;br /&gt;
Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Un second problème serait de commencer à lire un message au milieu de l'émission. On se retrouverait alors avec des identifiants faux. On a ainsi ajouté n+1 bits de start de sorte à être sûr que l'on est au début du message.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Pour cela on vérifie que l'on reçoit bien les n+1 bits de start. Puis à chaque bits similaires on incrémente un compteur, on vérifie qu’à chaque fois que l'on a n bits similaires le bit suivant soit inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, modulé à 38kHz. Cela occasionne une contrainte : moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, nous avons voulu utiliser la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Cependant il s’est avéré que cette fonction n’avait pas une résolution assez fine. Nous avons donc choisis de passer par les TIMERS de l’Arduino. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| 20&lt;br /&gt;
| /&lt;br /&gt;
| 27&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 12&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 15 !! 10 !! 28 !! 34 !! 208&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du routage des composants sur la carte électronique a été une phase d'apprentissage des techniques de soudage et d'utilisation des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, selon les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servo-moteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms, ainsi que d'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste. Dans cette liste, on insère dans l'ordre d'extinction les pins à éteindre et à quel moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
vidéo moteurs : [video_moteur.mp4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P25_Carte_Electronique_fonctionnelle.jpg|220px|left|Carte finalisée et fonctionnelle]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Une fois l'environnement du microprocesseur routé au four, nous avons pu souder&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
à la main les composants manquant, toujours fonctions par fonctions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
afin de limiter les risques de loupés.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps.&lt;br /&gt;
&lt;br /&gt;
Cette étape n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est passé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
Ce qu'on a voulu faire, c'est stocker les identifiants des robots captés et par quels capteurs. Dans un premier temps, on a mis en oeuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Après analyse approfondie, on n'arrivait pas à déceler pourquoi. Après des recherches sur internet, il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand celles-ci étaient toutes pleines. Après édition du code pour minimiser les données, on n'avait plus de problèmes. On a alors décommenté certaines lignes de codes. Mais on n'arrivait pas à stocker l'identifiant captée. En envoyant par le &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors qu'on l'affichait juste après le &amp;quot;malloc&amp;quot; correspondant. Après des recherches sur internet, &amp;quot;malloc&amp;quot; renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. Il n'y a pas de certitude que le problème vienne bien d'un manque de mémoire, mais c'est la seule explication qu'on a trouvé pour le moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
Lors des dernières semaines de travail, nous avons assemblé les différentes parties du robot afin  d'obtenir la version finale que l'on a pu présenter lors de la vidéo ainsi que lors de la soutenance.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|220px|Version finalisée du robot.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
De nombreux tests sur les différentes parties nous ont permis de vérifier la bonne fonctionnalité des capteurs ou actionneurs, et nous ont aussi confirmé quelques problèmes dévoilés lors de la programmation tels qu'un manque de mémoire flagrant de l'ATMega bloquant toute avancée algorithmique.&lt;br /&gt;
&lt;br /&gt;
Les différentes informations récoltées nous ont permis de déterminer que la plus grande partie de la mémoire utilisée (85%) était déstinée à l'OS implantée au début du projet, soit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à cela, nous avons pensé à programmé un ordonnanceur afin de remplacer FreeRTOS au sein du microprocesseur et ainsi conserver de la mémoire pour le programme fonctionnel.&lt;br /&gt;
Cette solution s'est révélée satisfaisante, cependant le temps restant pour la finalisation du projet ne permettait pas une étude plus approfondie, de fait la vidéo, les rapports et une finalisation nécessaire du système demandaient eux-aussi un temps non négligeable a fournir.&lt;br /&gt;
&lt;br /&gt;
Cependant cette solution serait à prendre en compte comme une option à courts termes pour l'avancée du projet. Elle permet un gain de mémoire conséquent pour une algorithmie simple, mais ne permet pas une extension assez grande sur un aspect longs termes de telle sorte à respecter au maximum le cahier des charges (mapping d'une salle, par exemple).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57080</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=57080"/>
				<updated>2018-05-15T07:28:03Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'anciens projets.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour d'anciens projets. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons alors du la retravailler en enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| 20&lt;br /&gt;
| /&lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 11&lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 11 !! 14 !! 8 !! 44 !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du routage des composants sur la carte électronique a été une phase d'apprentissage des techniques de soudage et d'utilisation des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, selon les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servo-moteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms, ainsi que d'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste. Dans cette liste, on insère dans l'ordre d'extinction les pins à éteindre et à quel moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
vidéo moteurs : [video_moteur.mp4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P25_Carte_Electronique_fonctionnelle.jpg|220px|left|Carte finalisée et fonctionnelle]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Une fois l'environnement du microprocesseur routé au four, nous avons pu souder&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
à la main les composants manquant, toujours fonctions par fonctions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
afin de limiter les risques de loupés.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps.&lt;br /&gt;
&lt;br /&gt;
Cette étape n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est passé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
Ce qu'on a voulu faire, c'est stocker les identifiants des robots captés et par quels capteurs. Dans un premier temps, on a mis en oeuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Après analyse approfondie, on n'arrivait pas à déceler pourquoi. Après des recherches sur internet, il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand celles-ci étaient toutes pleines. Après édition du code pour minimiser les données, on n'avait plus de problèmes. On a alors décommenté certaines lignes de codes. Mais on n'arrivait pas à stocker l'identifiant captée. En envoyant par le &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors qu'on l'affichait juste après le &amp;quot;malloc&amp;quot; correspondant. Après des recherches sur internet, &amp;quot;malloc&amp;quot; renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. Il n'y a pas de certitude que le problème vienne bien d'un manque de mémoire, mais c'est la seule explication qu'on a trouvé pour le moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
Lors des dernières semaines de travail, nous avons assemblé les différentes parties du robot afin  d'obtenir la version finale que l'on a pu présenter lors de la vidéo ainsi que lors de la soutenance.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|220px|Version finalisée du robot.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
De nombreux tests sur les différentes parties nous ont permis de vérifier la bonne fonctionnalité des capteurs ou actionneurs, et nous ont aussi confirmé quelques problèmes dévoilés lors de la programmation tels qu'un manque de mémoire flagrant de l'ATMega bloquant toute avancée algorithmique.&lt;br /&gt;
&lt;br /&gt;
Les différentes informations récoltées nous ont permis de déterminer que la plus grande partie de la mémoire utilisée (85%) était déstinée à l'OS implantée au début du projet, soit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à cela, nous avons pensé à programmé un ordonnanceur afin de remplacer FreeRTOS au sein du microprocesseur et ainsi conserver de la mémoire pour le programme fonctionnel.&lt;br /&gt;
Cette solution s'est révélée satisfaisante, cependant le temps restant pour la finalisation du projet ne permettait pas une étude plus approfondie, de fait la vidéo, les rapports et une finalisation nécessaire du système demandaient eux-aussi un temps non négligeable a fournir.&lt;br /&gt;
&lt;br /&gt;
Cependant cette solution serait à prendre en compte comme une option à courts termes pour l'avancée du projet. Elle permet un gain de mémoire conséquent pour une algorithmie simple, mais ne permet pas une extension assez grande sur un aspect longs termes de telle sorte à respecter au maximum le cahier des charges (mapping d'une salle, par exemple).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56984</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56984"/>
				<updated>2018-05-14T20:09:29Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| 20&lt;br /&gt;
| /&lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 11&lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 11 !! 14 !! 8 !! 44 !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du routage des composants sur la carte électronique a été une phase d'apprentissage des techniques de soudage et d'utilisation des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, selon les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servo-moteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms, ainsi que d'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste. Dans cette liste, on insère dans l'ordre d'extinction les pins à éteindre et à quel moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
vidéo moteurs : [video_moteur.mp4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P25_Carte_Electronique_fonctionnelle.jpg|220px|left|Carte finalisée et fonctionnelle]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Une fois l'environnement du microprocesseur routé au four, nous avons pu souder&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
à la main les composants manquant, toujours fonctions par fonctions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
afin de limiter les risques de loupés.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps.&lt;br /&gt;
&lt;br /&gt;
Cette étape n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est passé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
Ce qu'on a voulu faire, c'est stocker les identifiants des robots captés et par quels capteurs. Dans un premier temps, on a mis en oeuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Après analyse approfondie, on n'arrivait pas à déceler pourquoi. Après des recherches sur internet, il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand celles-ci étaient toutes pleines. Après édition du code pour minimiser les données, on n'avait plus de problèmes. On a alors décommenté certaines lignes de codes. Mais on n'arrivait pas à stocker l'identifiant captée. En envoyant par le &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors qu'on l'affichait juste après le &amp;quot;malloc&amp;quot; correspondant. Après des recherches sur internet, &amp;quot;malloc&amp;quot; renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. Il n'y a pas de certitude que le problème vienne bien d'un manque de mémoire, mais c'est la seule explication qu'on a trouvé pour le moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
Lors des dernières semaines de travail, nous avons assemblé les différentes parties du robot afin  d'obtenir la version finale que l'on a pu présenter lors de la vidéo ainsi que lors de la soutenance.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|220px|Version finalisée du robot.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
De nombreux tests sur les différentes parties nous ont permis de vérifier la bonne fonctionnalité des capteurs ou actionneurs, et nous ont aussi confirmé quelques problèmes dévoilés lors de la programmation tels qu'un manque de mémoire flagrant de l'ATMega bloquant toute avancée algorithmique.&lt;br /&gt;
&lt;br /&gt;
Les différentes informations récoltées nous ont permis de déterminer que la plus grande partie de la mémoire utilisée (85%) était déstinée à l'OS implantée au début du projet, soit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suite à cela, nous avons pensé à programmé un ordonnanceur afin de remplacer FreeRTOS au sein du microprocesseur et ainsi conserver de la mémoire pour le programme fonctionnel.&lt;br /&gt;
Cette solution s'est révélée satisfaisante, cependant le temps restant pour la finalisation du projet ne permettait pas une étude plus approfondie, de fait la vidéo, les rapports et une finalisation nécessaire du système demandaient eux-aussi un temps non négligeable a fournir.&lt;br /&gt;
&lt;br /&gt;
Cependant cette solution serait à prendre en compte comme une option à courts termes pour l'avancée du projet. Elle permet un gain de mémoire conséquent pour une algorithmie simple, mais ne permet pas une extension assez grande sur un aspect longs termes de telle sorte à respecter au maximum le cahier des charges (mapping d'une salle, par exemple).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:P25_Carte_Electronique_fonctionnelle.jpg&amp;diff=56977</id>
		<title>Fichier:P25 Carte Electronique fonctionnelle.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:P25_Carte_Electronique_fonctionnelle.jpg&amp;diff=56977"/>
				<updated>2018-05-14T19:32:52Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56975</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56975"/>
				<updated>2018-05-14T19:18:06Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| 20&lt;br /&gt;
| /&lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 11&lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 11 !! 14 !! 8 !! 44 !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du rootage des composants sur la carte électronique a été une phase d'apprentissage du soudage et des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, seulement les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servo-moteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms, ainsi que d'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste. Dans cette liste, on insère dans l'ordre d'extinction les pins à éteindre et à quel moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
vidéo moteurs : [video_moteur.mp4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
Une fois l'environnement du microprocesseur routé au four, nous avons pu souder à la main les composants manquant, toujours fonctions par fonctions afin de limiter les risques de loupés.&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps.&lt;br /&gt;
&lt;br /&gt;
Cette étape n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est passé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
Ce qu'on a voulu faire, c'est stocker les identifiants des robots captés et par quels capteurs. Dans un premier temps, on a mis en oeuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Après analyse approfondie, on n'arrivait pas à déceler pourquoi. Après des recherches sur internet, il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand celles-ci étaient toutes pleines. Après édition du code pour minimiser les données, on n'avait plus de problèmes. On a alors décommenté certaines lignes de codes. Mais on n'arrivait pas à stocker l'identifiant captée. En envoyant par le &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors qu'on l'affichait juste après le &amp;quot;malloc&amp;quot; correspondant. Après des recherches sur internet, &amp;quot;malloc&amp;quot; renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. Il n'y a pas de certitude que le problème vienne bien d'un manque de mémoire, mais c'est la seule explication qu'on a trouvé pour le moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56932</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56932"/>
				<updated>2018-05-14T17:16:41Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RobotFinal.jpg|200px]][[Fichier:RobotFinal_face.jpg|218px]][[Fichier:RobotFinal_cote.jpg|204px]][[Fichier:RobotFinal_dos.jpg|201px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:Impression_RobotFinal.jpg|left|220px|Chassis finalisé.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| 0&lt;br /&gt;
| 20&lt;br /&gt;
| 0&lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 11&lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 11 !! 14 !! 8 !! 44 !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||180px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du rootage des composants sur la carte électronique a été une phase d'apprentissage du soudage et des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, seulement les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servo-moteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms, ainsi que d'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste. Dans cette liste, on insère dans l'ordre d'extinction les pins à éteindre et à quel moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
vidéo moteurs : [video_moteur.mp4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
Une fois l'environnement du microprocesseur routé au four, nous avons pu souder à la main les composants manquant, toujours fonctions par fonctions afin de limiter les risques de loupés.&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps.&lt;br /&gt;
&lt;br /&gt;
Cette étape n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est passé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
Ce qu'on a voulu faire, c'est stocker les identifiants des robots captés et par quels capteurs. Dans un premier temps, on a mis en oeuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Après analyse approfondie, on n'arrivait pas à déceler pourquoi. Après des recherches sur internet, il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand celles-ci étaient toutes pleines. Après édition du code pour minimiser les données, on n'avait plus de problèmes. On a alors décommenté certaines lignes de codes. Mais on n'arrivait pas à stocker l'identifiant captée. En envoyant par le &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors qu'on l'affichait juste après le &amp;quot;malloc&amp;quot; correspondant. Après des recherches sur internet, &amp;quot;malloc&amp;quot; renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. Il n'y a pas de certitude que le problème vienne bien d'un manque de mémoire, mais c'est la seule explication qu'on a trouvé pour le moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Impression_RobotFinal.jpg&amp;diff=56931</id>
		<title>Fichier:Impression RobotFinal.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Impression_RobotFinal.jpg&amp;diff=56931"/>
				<updated>2018-05-14T17:11:48Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotFinal_cote.jpg&amp;diff=56925</id>
		<title>Fichier:RobotFinal cote.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotFinal_cote.jpg&amp;diff=56925"/>
				<updated>2018-05-14T17:00:51Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotFinal_dos.jpg&amp;diff=56921</id>
		<title>Fichier:RobotFinal dos.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotFinal_dos.jpg&amp;diff=56921"/>
				<updated>2018-05-14T16:58:30Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotFinal_cot%C3%A9.jpg&amp;diff=56920</id>
		<title>Fichier:RobotFinal coté.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotFinal_cot%C3%A9.jpg&amp;diff=56920"/>
				<updated>2018-05-14T16:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotFinal_face.jpg&amp;diff=56919</id>
		<title>Fichier:RobotFinal face.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotFinal_face.jpg&amp;diff=56919"/>
				<updated>2018-05-14T16:57:06Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56911</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56911"/>
				<updated>2018-05-14T16:36:29Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis.]][[Fichier:RobotFinal.jpg|left|220px|Robot finalisé et monté.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| / &lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| Programmation du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 4&lt;br /&gt;
| 0&lt;br /&gt;
| 20&lt;br /&gt;
| 0&lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 22&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 11&lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !! 6 !! 11 !! 11 !! 14 !! 8 !! 44 !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin ou fin du début ?==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||200px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du rootage des composants sur la carte électronique a été une phase d'apprentissage du soudage et des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, seulement les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
===Programmation des moteurs===&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la semaine 10, on a dû utiliser un timer de l'ATMega pour contrôler les 2 servo-moteurs. Les serveurs sont commandés en PWM, d'une pulsion comprise entre 1 et 2 ms, sur une échelle de 20ms.&lt;br /&gt;
&lt;br /&gt;
Le timer étant de 8 bits, en divisant au maximum la fréquence du compteur, cela ne suffisait pas pour contenir 20 ms. Pour palier ce problème, on utilise une échelle de 10 ms, ainsi que d'un booléen pour savoir si on est sur les 10 premières millisecondes ou sur les 10 dernières.&lt;br /&gt;
&lt;br /&gt;
Si on est dans les 10 premières, on doit allumer les sorties correspondant aux moteurs. Puis on les éteint toujours dans ce cycle, l'un après l'autre. &lt;br /&gt;
Pour savoir lequel éteindre, on utilise une liste. Dans cette liste, on insère dans l'ordre d'extinction les pins à éteindre et à quel moment.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on lit la 1ère cellule de la liste, si le compteur est supérieur ou égal à la valeur d'extinction, on éteint les pins associées, puis on supprime la cellule pour lire la prochaine extinction.&lt;br /&gt;
&lt;br /&gt;
Avec ce système, on peut ainsi contrôler les moteurs en vitesse, mais aussi à les faire fonctionner à des vitesses différentes. Ce qui permet de faire tourner le robot.&lt;br /&gt;
&lt;br /&gt;
vidéo moteurs : [video_moteur.mp4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminé suite à de nombreux bugs des imprimantes 3D. &lt;br /&gt;
&lt;br /&gt;
De plus nous avons pu avancer sur la programmation du contrôle du robot.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
Une fois l'environnement du microprocesseur routé au four, nous avons pu souder à la main les composants manquant, toujours fonctions par fonctions afin de limiter les risques de loupés.&lt;br /&gt;
&lt;br /&gt;
===Algorithmie des robots===&lt;br /&gt;
&lt;br /&gt;
A présent que l'on peut transmettre et recevoir des trames infrarouges, et faire tourner les moteurs comme on veut, il nous faut regrouper le tout.&lt;br /&gt;
&lt;br /&gt;
1ère étape : Faire fonctionner la transmission infrarouge et les moteurs en même temps.&lt;br /&gt;
&lt;br /&gt;
Cette étape n'a pas posé de problème.&lt;br /&gt;
&lt;br /&gt;
2nde étape : Faire fonctionner les 3 capteurs en même temps et faire se mouvoir le robot en conséquence.&lt;br /&gt;
&lt;br /&gt;
Cette étape est celle qui nous a posé le plus de problèmes.&lt;br /&gt;
&lt;br /&gt;
Faire fonctionner les 3 capteurs en même temps s'est passé sans encombre. Chaque capteur arrivait à recevoir les trames conjointement.&lt;br /&gt;
Ce qu'on a voulu faire, c'est stocker les identifiants des robots captés et par quels capteurs. Dans un premier temps, on a mis en oeuvre les fonctions permettant de gérer la liste des robots captés et une autre dans cette dernière qui regroupait les capteurs les ayant captés.&lt;br /&gt;
C'est ici que les problèmes se sont posés. On obtenait des résultats incohérents avec suppression de diverses données. Après analyse approfondie, on n'arrivait pas à déceler pourquoi. Après des recherches sur internet, il s'est avéré que cela pouvait être produit par un manque de mémoire. L'ATMega n'ayant aucune protection sur l'écriture des données, celui-ci écrasait des cellules mémoires quand celles-ci étaient toutes pleines. Après édition du code pour minimiser les données, on n'avait plus de problèmes. On a alors décommenté certaines lignes de codes. Mais on n'arrivait pas à stocker l'identifiant captée. En envoyant par le &amp;quot;minicom&amp;quot; l'adresse de la cellule stockant l'identifiant, il s'est avéré que celle-ci était nulle, alors qu'on l'affichait juste après le &amp;quot;malloc&amp;quot; correspondant. Après des recherches sur internet, &amp;quot;malloc&amp;quot; renvoie une valeur nulle quand la mémoire de l'ATMega est pleine ou quand la taille de la cellule est supérieure à la capacité de la mémoire. Il n'y a pas de certitude que le problème vienne bien d'un manque de mémoire, mais c'est la seule explication qu'on a trouvé pour le moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Montage du robot et tests finaux===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotFinal.jpg&amp;diff=56903</id>
		<title>Fichier:RobotFinal.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotFinal.jpg&amp;diff=56903"/>
				<updated>2018-05-14T16:12:36Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56351</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56351"/>
				<updated>2018-05-12T22:14:23Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 20&lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !! !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||200px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du rootage des composants sur la carte électronique a été une phase d'apprentissage du soudage et des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, seulement les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminés suite à de nombreux bugs des imprimantes 3D.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
Une fois l'environnement du microprocesseur routé au four, nous avons pu souder à la main les composants manquant, toujours fonctions par fonctions afin de limiter les risques de loupés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport_Etcheguibel_Canu.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56350</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56350"/>
				<updated>2018-05-12T22:13:44Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 20&lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !! !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||200px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du rootage des composants sur la carte électronique a été une phase d'apprentissage du soudage et des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, seulement les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminés suite à de nombreux bugs des imprimantes 3D.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
Une fois l'environnement du microprocesseur routé au four, nous avons pu souder à la main les composants manquant, toujours fonctions par fonctions afin de limiter les risques de loupés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[Fichier:RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[Fichier:STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Fichier:Rapport.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56348</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56348"/>
				<updated>2018-05-12T22:10:22Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 20&lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !! !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||200px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du rootage des composants sur la carte électronique a été une phase d'apprentissage du soudage et des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, seulement les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminés suite à de nombreux bugs des imprimantes 3D.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
Une fois l'environnement du microprocesseur routé au four, nous avons pu souder à la main les composants manquant, toujours fonctions par fonctions afin de limiter les risques de loupés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[STL.zip|STL.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Rapport.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56347</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56347"/>
				<updated>2018-05-12T22:08:02Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 20&lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !! !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||200px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du rootage des composants sur la carte électronique a été une phase d'apprentissage du soudage et des différents outils mis à disposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons choisi, seulement les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
&lt;br /&gt;
Une fois la chauffe terminée, nous avons vérifié le bon fonctionnement du microprocesseur et de sa programmation au travers de pin broches externes ICSP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminés suite à de nombreux bugs des imprimantes 3D.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants===&lt;br /&gt;
&lt;br /&gt;
Une fois l'environnement du microprocesseur routé au four, nous avons pu souder à la main les composants manquant, toujours fonctions par fonctions afin de limiter les risques de loupés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
Fichier Fritzing de la carte électronique : [[RobotPCB.zip|RobotPCB.zip]]&lt;br /&gt;
&lt;br /&gt;
Fichiers STL du châssis  : [[STL.zip|Chassis.zip]]&lt;br /&gt;
&lt;br /&gt;
Rapport de Projet : [[Rapport.pdf|Rapport.pdf]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotPCB.zip&amp;diff=56346</id>
		<title>Fichier:RobotPCB.zip</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:RobotPCB.zip&amp;diff=56346"/>
				<updated>2018-05-12T22:07:37Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:STL.zip&amp;diff=56345</id>
		<title>Fichier:STL.zip</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:STL.zip&amp;diff=56345"/>
				<updated>2018-05-12T22:05:04Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56339</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56339"/>
				<updated>2018-05-12T21:41:16Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p et de son environnement.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible des autres robots.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une puce FTDI et de son environnement, gérant la partie USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite qu'une seule sortie du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 20&lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !! !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||200px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du rootage des composants sur la carte électronique a été une phase d'apprentissage du soudage et des différents outils mis à disposition.&lt;br /&gt;
Tout d'abord, nous avons choisi, seulement les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
Une fois ces fonctionnalités vérifiées, nous avons pu souder à la main les composants suivant, toujours fonctions par fonctions afin de limiter les risques de loupés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 12, 13==&lt;br /&gt;
&lt;br /&gt;
Les dernières semaines de travail ont été principalement axées sur le soudage de la carte électronique ainsi que de nombreuses impressions du châssis, non terminés suite à de nombreux bugs des imprimantes 3D.&lt;br /&gt;
&lt;br /&gt;
===Soudage des composants : l'apprentissage===&lt;br /&gt;
&lt;br /&gt;
Le début du rootage des composants sur la carte électronique a été une phase d'apprentissage du soudage et des différents outils mis à disposition.&lt;br /&gt;
Tout d'abord, nous avons choisi, seulement les conseil de M. Redon, de placer l’environnement du microprocesseur afin de réaliser la soudure au four.&lt;br /&gt;
Une fois ces fonctionnalités vérifiées, nous avons pu souder à la main les composants suivant, toujours fonctions par fonctions afin de limiter les risques de loupés.&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56326</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=56326"/>
				<updated>2018-05-12T18:59:39Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Information sur le projet=&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une partie gérant la liaison USB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite que d’une seule commande du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 20&lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !! !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||200px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_final_2.PNG&amp;diff=55259</id>
		<title>Fichier:CAD Robot final 2.PNG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_final_2.PNG&amp;diff=55259"/>
				<updated>2018-05-01T17:35:07Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : Getchegu a téléversé une nouvelle version de Fichier:CAD Robot final 2.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=55159</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=55159"/>
				<updated>2018-04-29T20:32:44Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Information sur le projet=&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une partie gérant la liaison USB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite que d’une seule commande du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !! !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||200px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=55158</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=55158"/>
				<updated>2018-04-29T20:29:11Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Information sur le projet=&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une partie gérant la liaison USB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite que d’une seule commande du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Semaines de Fin !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 26&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !! !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB==&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]][[Fichier:PCB Schematic Robot.png||200px|Carte PCB finale]]&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:PCB_Schematic_Robot.png&amp;diff=55157</id>
		<title>Fichier:PCB Schematic Robot.png</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:PCB_Schematic_Robot.png&amp;diff=55157"/>
				<updated>2018-04-29T19:30:32Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : Getchegu a téléversé une nouvelle version de Fichier:PCB Schematic Robot.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PCB du robot (vue schématique).&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54869</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54869"/>
				<updated>2018-04-11T22:47:14Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Information sur le projet=&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une partie gérant la liaison USB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite que d’une seule commande du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Heures S14 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !!  !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB==&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;br /&gt;
&lt;br /&gt;
===Test servo-moteur===&lt;br /&gt;
&lt;br /&gt;
Afin de déplacer le robot, nous utilisons des servo-moteurs à rotation continue, donc asservi en vitesse. On les commande en pwm, avec une impulsion de 1 à 2 ms toutes les 20 ms. Pour cela, on a codé la taĉhe avec freeRTOS. Avec vTaskDelay, nous attendions un temps t avec la sortie à 1 puis un second temps t2 avec la sortie à 0.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:video_servo_moteur|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous arrivions à avoir la rotation des moteurs. Cependant, nous n'arrivions pas à les contrôler en vitesse, ils étaient toujours à vitesse maximale. Après des études du code utilisé par FreeRTOS, il s'est avéré que la résolution du freeRTOS était de 1 ms. Il est donc impossible d'avoir une impulsion de 1,2 ms pour le contrôler en vitesse. Nous ne pouvions mettre que 1 ms ou 2 ms, ce qui correspond à la vitesse maximale dans un sens ou l'autre.&lt;br /&gt;
&lt;br /&gt;
Donc nous devons utilisez un autre timer de l'atmega328p. Cependant, il n'en contient que 3, deux de 8 bits et un de 16 bits. On utilise déjà un timer de 8 bits pour la modulation infra-rouge et un de 16 bits pour freeRTOS. Nous devons donc utilisé le dernier timer pour contrôler les 2 servo-moteurs et le capteur à ultrason.&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=54868</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2017/2018</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=54868"/>
				<updated>2018-04-11T22:42:21Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : /* Fiche de présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Notes sur les projets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse du projet || Retour sur l'analyse || Matériel || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation sans supports, bonne analyse de la concurrence. Par contre le scénario d'usage est à revoir en précisant l'usage pour le particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le scénario est précisé mais aucune réponse aux questions difficiles &amp;quot;gestion des températures et procédure d'entretien&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Si le contenu du Wiki reflète la quantité de travail fourni, c'est inquiétant.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Peu de matière, pas de justification des choix, aucune réalisation concréte présentée. Sauf effort très important de dernière minute, un projet qui n'aboutira pas.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Inutile en l'état actuel du projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation focalisée sur les réseaux de neurones. Exercice mal compris (pas d'introduction du contexte, pas de scénario d'usage).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Toujours pas d'analyse de la concurrence, ni de scénario d'usage. Pas de réponse aux questions difficiles &amp;quot;quel est le matériel ? quel est le protocole ? quelles sont les entrées du réseau de neurones ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste mais il manque des références vers les fournisseurs agréés (voir page de l'an dernier).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Illustrez votre Wiki avec des schémas ou des photos de votre montage. Décrivez mieux votre plateforme de test et les résultats obtenus. Essayez de corriger les problèmes de français.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Wiki trop peu alimenté pour cette phase du projet, aucune illustration, impossible de se faire une idée de l'avancée du projet avec le Wiki. Coquilles non prises en compte.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une démonstration avec le dispositif décrit en fin de Wiki peut être envisagée.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Architecture de la source d'énergie (nombre de chemins d'énergie ?)&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Vous devriez avoir quelques éléments sur la réalisation. Complétez votre Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Un Wiki illustré mais avec du copier/coller des manuels de référence sans grand intérêt. Toujours pas de circuit testé en fin de projet. Un très important effort final est toujours possible.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;A priori inutile sauf si une version fonctionnelle de la carte était obtenue.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Présentation focalisée sur la création du site Web. Effort fait pour rédiger un scénario d'usage.&amp;lt;/font&amp;gt; &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Réponses aux questions mais l'analyse de la consommation est imprécise. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé dans la page Wiki mais à reporter en bas de la page des projets de cette année avec des références valides.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un effort de documentation mais illustrez par des schémas, des pages de l'application et des tests.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un Wiki correct mais sans plus, des problèmes de format, des illustrations mal incluses, des vidéos youtube. Cela dit le Wiki peut devenir tout à fait correct avec un peu de temps et de soin.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de doute sur le travail effectué, une vidéo de démonstration est possible et requise.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé. Scénario d'usage à préciser sur la partie réseau de capteurs.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Scénario d'usage non précisé. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence, êtes-vous sur que le matériel n'a pas besoin d'être acheté ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. N'hésitez pas à solliciter votre encadrant direct en cas de blocage !&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. Prenez un peu de temps pour corriger les coquilles assez fréquentes. Wiki légérement décalé par rapport au travail effectué.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Aucun doute sur le travail effectué mais il n'est pas sur que le sujet se prête à une vidéo. A discuter avec les encadrants.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Pas de support. Exercice très bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de réponse aux questions difficiles &amp;quot;quelle alimentation ? comment faire pour différencier les briques ? comment les briques vont-elles communiquer ? quelle sécurité vis-à-vis des enfants ?&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. Faites un effort de formatage du texte (par exemple en utilisant des sous-titres plutôt que de souligner des lignes).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail progresse mais le Wiki est décalé.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une démonstration est requise, faites en sorte que les prototypes soient au rendez-vous.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Rien à signaler (juste une confusion entre le MSP430 et le CC430).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Questions difficiles évacuées. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Un Wiki correct permettant de suivre l'avancé du projet. Le rapport devra être plus précis.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Aucun doute sur la qualité du travail, le sujet ne se prête pas à une démonstration sauf si des processus visuels peuvent être chargés sur RIOT pour CC430.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un peu rapide, exercice réalisé. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas d'analyse de la concurrence. Peu d'effort de rédaction. Des coquilles. Une réponse rapide à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais pas forcément exhaustif et sans référence valide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. Wiki agréable à lire.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Merci de corriger les coquilles trop nombreuses en fin de Wiki. Les derniers travaux sont décrits trop succinctement.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une démonstration est requise. Un grand effort va devoir être fourni pour obtenir un prototype fonctionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Page Wiki vide, pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet. Essayez de mieux formater votre texte pour une meilleure facilité de lecture.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Travail correctement décrit mais une tendance à s'arrêter à chaque obstacle, qu'en est-il de l'utilisation de &amp;lt;code&amp;gt;v4l2loopback&amp;lt;/code&amp;gt; ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une démonstration est requise. Faites en sorte d'obtenir un prototype fonctionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Pas d'analyse de la concurrence, pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;L'analyse de la concurrence et le scénario d'usage ont été ajoutés. Par contre pas de réponse aux questions difficiles &amp;quot;quelle sera l'autonomie de la balle et quel sera le système de rechargement ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet au 18/02/2018&amp;lt;/font&amp;gt;. &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Wiki mis à jour en catastrophe le 19/02/2018. Peu d'informations, seul le routage d'une carte semble avoir été entrepris.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune mise à jour du Wiki depuis la dernière remarque ci-dessus. L'avancée du travail ne peut pas être évaluée.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une démonstration est requise. Un prototype sera-t-il disponible ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Trouver des concurrents indirects. Une histoire mais pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page Wiki modifiée après la présentation. Une réponse incomplète à la question difficile. Trop de coquilles pour ce niveau d'études.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Bonne description du travail. Cinq séances pour faire chauffer une résistance, n'est-ce pas trop ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Rien à dire sur la forme, le Wiki est toujours bien tenu et permet de se faire une bonne idée de l'avancée du projet. Par contre le travail effectué sur les dernières semaine est très léger.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;De gros doute sur la possibilité d'avoir un dispositif convaincant à montrer en fin de projet. Je ne demande qu'à être démenti.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune modification de la page Wiki depuis début octobre.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet. Projet encore dans la phase de prototypage. Comment vous comptez recevoir une carte SIM ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Wiki non mis à jour. Le code (IDE Arduino) est inclus in extenso dans le Wiki. Toujours pas d'intégration des composants.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;De gros doute sur la possibilité d'avoir un dispositif convaincant à montrer en fin de projet. Je ne demande qu'à être démenti.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Supports très textuels, pas de scénario d'usage mais une rédaction sur l'intérêt psychologique, pas vraiment de partie &amp;quot;concurrents&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un effort pour trouver des &amp;quot;concurrents&amp;quot;, pas de réponses aux questions difficiles &amp;quot;combien de LEDs ? quelle alimentation pour quelle autonomie&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail est a peu près décrit mais la page Wiki ressemble a un brouillon.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Beaucoup d'aide pour améliorer le Wiki mais pas d'effort pour le maintenir par la suite : pas de description du mandala décoré. Rien non plus sur la programmation des animations.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une démonstration est requise, il faut finaliser le projet, concernant le matériel c'est correctement engagé mais il faut un gros effort sur la programmation.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Bonne présentation orale. Utilisation du bluetooth peu convainquant. Pas de scénario d'usage. Un &amp;quot;concurrent&amp;quot; trouvé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Concept de scénario d'usage non compris. Une réponse à la question difficile très rapide et non convaincante.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste de matériel dans la page Wiki mais à insérer dans le tableau en bas de la page principale. Pas de référence (voir sur la page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail avec le prototype pilote de LEDs est très bien décrit et de façon agréable à lire. Par contre le schéma du futur circuit est très mal engagé. Il faut commencer par faire un schéma plus précis du collier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;La discussion sur la conception du circuit est difficile à comprendre, d'où sortent les intensités de 0,6A et de 1,2A ? Mettre une photo d'écran pour le PCB est une hérésie sachant qu'il est possible d'exporter une image directement de Fritzing. Sans un très important travail final, il sera impossible de mener le projet à bien.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Une démonstration est requise, il faut finaliser le projet un très gros effort est nécessaire malgré l'aide déjà apporté.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Support assez corrects, sujet non entièrement compris, scénario d'usage minimal.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un problème dans le scénario d'usage : les conteneurs doivent être lancés sur un serveur. Une réponse acceptable à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Aucun travail ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le Wiki a été utilisé mais montre un manque de travail flagrant. Un élève ne participe pas au projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Sauf miracle aucune démonstration ne sera possible.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Compte-rendu du travail très lapidaire et parfois illisible à cause des coquilles. Le Wiki ne donne pas l'impression que le projet avance.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Il est clair que le Wiki est alimenté mais un manque de rigueur dans la syntaxe mediawiki et de trop nombreuses coquilles ne permettent pas une lecture facile. Avec un peu de soin vous pourriez avoir un excellent Wiki. Le travail décrit est foisonnant, essayez de synthétiser, en particulier il serait intéressant de savoir dans quel état sont les différents travaux entrepris.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une démonstration est requise.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation trop impécise, pas vraiment de scénario d'usage. Par contre des concurrents ont été présentés.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un scénario d'usage éloigné de la future utilisation. Trop de coquilles dans ce scénario. Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste du matériel mais pas dans la page principale. Pas de référence (voir page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Compte-rendu non à jour au 18/02/2018 alors que la feuille d'heures est à jour. Le Wiki manque d'illustration, par exemple donnez le schéma du circuit.&amp;lt;/font&amp;gt; &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Des informations sur la carte en gestation&amp;lt;/font&amp;gt;.&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Wiki non mis à jour. Toujours entrain de travailler sur la clef XBee.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Une démonstration est requise. Un très grand effort semble nécessaire pour avoir quelque chose à présenter sur la table.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte. Un concurrent assez peu en rapport avec les essaims de robots mais dans la ligne des dispositifs de déminage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Liste du matériel. Préciser pour le chassis.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Impossible de connaître l'avancé du projet à la lecture du Wiki. N'êtes-vous pas entrain de vous perdre dans vos problèmes avec FreeRTOS ?&amp;lt;/font&amp;gt; &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;De quelle résistance devant le récepteur IR parlez-vous ? Il n'y en a pas sur le PCB. Votre Wiki se concentre ces dernières semaines sur la modélisation du chassis alors que le travail sur la programmation de l'ATMega328p n'y figure pas. C'est dommage sachant qu'il s'agit du travail le plus valorisant.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une démonstation est requise. Arriverez-vous à souder et programmer une carte à temps ? Votre chassis complexe sera-t-il aussi fonctionnel qu'un chassis très simple à base de 2 plaques et d'entretoises ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Objectif mal expliqué. Exercice réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Mieux définir l'objectif suite à la visite en entreprise. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Bonne description du travail. Votre Wiki manque d'illustrations sur un sujet qui le permet.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Wiki non à jour. Ce qui est disponible donne l'impression d'un papillonnage de tutorial en tutorial. Vous abandonnez la banana PI D1 en début de projet pour vous concentrer sur de la reconnaissance d'image que vous ne semblez pas avoir conduit à bien puisque vous parlez de l'abandonner. Vous passez de C++ à python sans raison convaincante. Vous développez un serveur Web sous &amp;lt;code&amp;gt;flask&amp;lt;/code&amp;gt; que vous cachez derrière un proxy inverse &amp;lt;code&amp;gt;ngnix&amp;lt;/code&amp;gt;. Vous parlez de stratégie en semaine 9 ce qui bien tardif. Votre projet semble embourbé.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Malheureusement il ne semble pas qu'il y aura quoi que ce soit à montrer. Je ne demande qu'à être démenti.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Excellente présentation et excellent travail préparatoire, Scénario d'usage à préciser, trouver des concurrents.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Attention quand vous dites qu'un ATMega328p n'a pas assez de sorties pour commander 8 oscillateurs, il dispose tout de même de plus de 20 E/S.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Wiki toujours excellent. Votre exploration du monde de l'électronique analogique est passionnant à lire du moins pour un profane en la matière. Juste des notes pour les deux dernières semaines mais c'est mieux que rien et vous avez raison de vous concentrer sur la réalisation.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Démonstration requise. En espérant que la sculpture soit totalement opérationnelle.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice réussi. Cependant précisez les acteurs dans le scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de modification du scénario. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Rien à redire sur la liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Description du travail correct, des illustrations. Essayez de formater avec la syntaxe Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Wiki très correct sur la forme. Pas tout à fait à jour.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Démonstration requise. Du travail nécessaire pour avoir un prototype pour la démonstration.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponses aux questions difficiles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail effectué est décrit. Un nombre de coquilles non acceptable, la lecture en devient difficile. Utilisez la syntaxe de formatage du Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Corrigez vos erreurs de grammaire et d'orthographe ! Utilisez correctement la syntaxe mediawiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Démonstration requise. Même un résultat négatif, du style la plante est muette, est intéressant.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Sujet se prêtant peu à l'exercice mais très bonne présentation. Sujet travaillé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas vraiment de question, la suggestion est noté dans la page Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Description du travail un peu rapide (DNS leak quesako ?). Rédaction en cours au moment de la lecture du Wiki.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Effort de rédaction entre le 18/02/2018 et le 19/02/2018. Il manque des sections mais le travail effectué devient lisible.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bon Wiki. Des améliorations possibles comme la correction des coquilles et compléter la partie état de l'art.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Aucun doute sur la qualité et la quantité de travail comme le montre l'&amp;quot;état de l'art&amp;quot; du Wiki. Ce sujet se prête peu à une vidéo. Il est cependant possible d'envisager une courte vidéo avec la confrontation de deux navigations Web, une classique, l'autre en passant par Tor. Le coté délicat est de trouver des démonstrations visuelles de la confidentialité apportée par Tor.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Comment démarrer l'imprimante à distance ? Comment sera calibrée la plaque d’impression ?&lt;br /&gt;
Comment la plaque va se fixer sur le sol ? &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Il est possible de mettre une copie d'écran de l'application de plus. Pas la peine de vous tirer dans les pattes.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Respectez la syntaxe mediawiki. Voir les corrections. Ajoutez une photo de l'imprimante dans l'état actuel. Très bon Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Démonstration requise. Aucun doute sur le fait que le dispositif fonctionnera parfaitement de bout en bout.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le projet ne semble pas encore avoir été sérieusement étudié.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Net effort de documentation de la page Wiki. Pas de réponse directe à la question difficile sur la Kinect mais une discussion sur le problème posé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description du travail. Des illustrations mais il pourrait y avoir des photos du système robotino / kinect.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Depuis février le projet piétine. Votre feuille d'heure de février en témoigne : les banques d'images des MPS n'ont pas pu être constituées (pas de raison donnée pour cet échec), de plus 13h pour acquérir des images d'une caméra même stéréoscopique est exagéré. Il vous a fallu tout le mois de mars pour résoudre ces problèmes et encore votre discussion sur la reconnaissance des MPS est peu pertinente comme expliqué en séance. Toujours rien sur l'implantation du dispositif de reconnaissance sur le système embarqué.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Il semble peu probable qu'une démonstration puisse avoir lieu. Je ne demande qu'à être démenti.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Contexte mal présenté, sujet flou. Scénario d'usage à préciser. Pas de contact avec les encadrants avant la présentation.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page de Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Compte-rendu rapide du travail. Ce compte-rendu est inquiétant. Il ne semble y avoir aucun résultat depuis le début du projet. Un module a été abandonné sans que le module en question n'ait été décrit ou que la raison de l'abandon ait été précisé. Attention votre projet est en voie d'échec.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Wiki court. Le seul travail décrit est l'écriture d'un script shell. Une seule ligne sur la création d'un conteneur.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune démonstration envisageable.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page de Wiki assez vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Le robot centaure est en plus mauvais état maintenant qu'au début du projet. Vous semblez avoir une nouvelle fois abandonné votre projet.&amp;lt;/font&amp;gt; &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Des ajouts mineurs au Wiki le 19/02/2018.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Du travail réalisé avec un certain succès durant le mois de mars. A nouveau abandon du projet en avril.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Il ne semble pas raisonnable d'espérer une démonstration.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Présentation très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse à la question difficile. Page Wiki un peu vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un Wiki incomplet alors que la feuille d'heures est actualisée. Vous semblez toujours bloqués sur les problèmes d'étalonnage !&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Wiki très peu alimenté. Présentation du contrôle avec simulink.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une démonstration requise. Pour l'instant seul le contrôle par simulink est disponible. Ce n'est pas suffisant.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Wiki avec quelques informations sur le travail accompli depuis fin novembre : étude sur modbus et labview. Quelques coquilles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Très peu d'illustrations. Texte mal formaté et avec des coquilles intolérable à ce niveau d'étude. Le compte-rendu donne l'impression d'une méthode de travail très brouillonne.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Wiki insuffisant.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Projet terminé, pas de vidéo.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation sans support. Trouver des concurrents indirects. Pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Projet en échec ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Projet en échec.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune avancée, il est désormais impossible d'avoir un prototype en fin de projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki bien tenue. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Quelques éléments sur le matériel dans la page Wiki mais aucune liste avec références.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Presque à jour. Vous n'aviez pas des cartes à faire fabriquer à l'extérieur ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Rédaction rapide sur les dernières semaine. Une expérimentation est nécessaire à ce stage du projet. Elle est attendue avec impatience.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Démonstration requise. Débrouillez-vous pour avoir quelque chose de percutant à montrer !&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki très complète. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une liste probablement pas exhaustive.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Exceptionnel !&amp;lt;/b&amp;gt; Très illustré, bien rédigé, le travail de recherche est très bien décrit. Je ne suis pas un fan de la mise en gras d'un quart du texte et la syntaxe Wiki n'est pas vraiment utilisée mais c'est du détail?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Il faudra encore relire le Wiki pour corriger les coquilles des nouveaux paragraphes. Les images et les vidéos sont aussi à ajouter. Il n'en reste pas moins que le Wiki et impressionnant et sera exceptionnel une fois totalement rédigé et corrigé.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Démonstration absolument requise. Il y aura forcément quelque chose à montrer !&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Projet en échec ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Toujours rien sur l'avancé du projet. Projet en échec.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Vidéo non adaptée au sujet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| Erasmus &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Projet en échec constaté.&amp;lt;/font&amp;gt;&lt;br /&gt;
| A voir avec l'encadrant direct.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| A voir avec l'encadrant direct.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fiche de présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! Séance 1 (17/01) !! Séance 2 (24/01) !! Séance 3 (31/01) !! Séance 4 (7/02) !! Séance 5 (14/02) !! Séance 6 (21/02) !! Séance 7 (7/03) !! Séance 8 (14/03) !! Séance 9 (21/03) !! Séance 10 (28/03) !! Séance 11 (4/04) !! Séance 12 (11/04) !! Séance 13 (18/04)&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
|Quentin Boëns / Henri Carlier&lt;br /&gt;
|E304 &lt;br /&gt;
|E304/305&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|C201&lt;br /&gt;
|C201&lt;br /&gt;
|C201/E304&lt;br /&gt;
|E304/Fab&lt;br /&gt;
|Fab/A313&lt;br /&gt;
|C205  Départ 17h (entretien stage)&lt;br /&gt;
|C205&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
|Ji Yang&lt;br /&gt;
|E306&lt;br /&gt;
|E303&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|E301&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
|C201&lt;br /&gt;
|E304&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| Alexis Viscogliosi / Abass Ayoub &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|E304 &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Alexis Viscogliosi Absent excusé pour entretien stage&amp;lt;/font&amp;gt;&lt;br /&gt;
|C008&lt;br /&gt;
|C008&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;
|C201&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| Paul Ribeiro / Mehanna Naïf&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absents &amp;lt;/font&amp;gt;&lt;br /&gt;
|E301&lt;br /&gt;
|E301 puis B309 puis B207&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|C201 puis E304&lt;br /&gt;
|C201 et E304&lt;br /&gt;
|C201&lt;br /&gt;
|C201/E303&lt;br /&gt;
|C201&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| Antoine Gossehdelatte&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;
| E306&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| Maëva Delaporte / Simon Blas&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| C201/E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| Baptiste Cartier&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E306&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| Amine El Messaoudi / Simon Feutrier&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| B207&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;
| E305 - C202&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Jade Dupont&lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|Absence Maladie&lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|Absente entretien stage&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| Thomas Cunin / Thibault Cattelain&lt;br /&gt;
| E304&lt;br /&gt;
| B306/E304&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (E304 - A305)&amp;lt;/font&amp;gt;&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E304/C200&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| Rémi Mairesse / Gustave Roux&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304 / C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Oumaima Naanaa&lt;br /&gt;
|E302&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;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| Lirui Zhang / Lihe Zhang&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;
| E304&lt;br /&gt;
| E302&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E302&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| Lijie Yao / Keren Qiang&lt;br /&gt;
| E303&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;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| Maxime Creteur / Gao Fan&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absents &amp;lt;/font&amp;gt;&lt;br /&gt;
|E303&lt;br /&gt;
|B309 puis B207&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|E304&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|E303 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Gao Fan absent &amp;lt;/font&amp;gt;&lt;br /&gt;
|E304&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| Amaury Knockaert / Fabrice Taingland&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304/E302&lt;br /&gt;
| C203/E306&lt;br /&gt;
| E306/E304&lt;br /&gt;
| Forum stages euratech/E304&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E304&lt;br /&gt;
| E304 / C205&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| Matthieu Delobelle&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E303 - C201&lt;br /&gt;
| E306 - C201&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201-E302&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| Benjamin Canu / Ganix Etcheguibel&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| Forum Euratech jusqu'à 17h &amp;lt;br/&amp;gt; E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306 / Fab&lt;br /&gt;
| E306 / Fab&lt;br /&gt;
| E306 / C202&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| Taky Djeraba / Thomas Hubert&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| Jean-Baptiste Watine / Antoine Untereiner&lt;br /&gt;
| E306/C201&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (C201) &amp;lt;/font&amp;gt;&lt;br /&gt;
| C205&lt;br /&gt;
| C205/E301&lt;br /&gt;
| C205/E301&lt;br /&gt;
| E301&lt;br /&gt;
| C205&lt;br /&gt;
| C205/C201&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| Transley Gracias / Camille Saad&lt;br /&gt;
| E306 &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/C202&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306/C202&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| Xavier Chenot / Rodolphe Toin&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;
| E306 puis C201&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| Antoine Duquenoy / Anthony Durot&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;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| Eloi Zalczer / Justine Senellart&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|Hors Polytech/E302&lt;br /&gt;
|E302/E304&lt;br /&gt;
|E302/E304&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|Entretien/E302&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| Damien Narbais / Zoé Briois&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (E301)&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304 + 17h réunion C00X&lt;br /&gt;
| C205&lt;br /&gt;
| E304 + 17h réunion C00X&lt;br /&gt;
| A317&lt;br /&gt;
| E304&lt;br /&gt;
| E30X&lt;br /&gt;
| C205 + Damien -&amp;gt; entretien stage&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| Hugo Delbroucq / Nicolas Havard &lt;br /&gt;
| E301&lt;br /&gt;
| INRIA&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt; (INRIA)&lt;br /&gt;
| E301&lt;br /&gt;
| E301 puis E304&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| INRIA&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| Claire Vandamme / Alexandra Villa &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|Hors Polytech/B106&lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|Bureau de Mr Pekpe/E306&lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|C008(Claire : jusque 16h, RDV médical)&lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|- &lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| Florian Le Foll&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; (Pas de salle) &amp;lt;/font&amp;gt;E303&lt;br /&gt;
|E303&lt;br /&gt;
|E303&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;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| Carval Amaury/ Prud'Homme Geoffrey&lt;br /&gt;
| fabricarium &lt;br /&gt;
| fabricarium puis Hors Polytech&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
| Carval E306 - Preud'homme E301&lt;br /&gt;
| E301&lt;br /&gt;
| Carval C20X - Preud'homme Fabricarium&lt;br /&gt;
| Quelque part&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E306&lt;br /&gt;
| Fabricarium (au fond)&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| Erwan Dufresne&lt;br /&gt;
| E302/E306&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
| E302&lt;br /&gt;
| E306&lt;br /&gt;
| E302&lt;br /&gt;
| E302/Fabricarium&lt;br /&gt;
| E302/Fabricarium&lt;br /&gt;
| Fabricarium/E304&lt;br /&gt;
| E304/Fab&lt;br /&gt;
| E306/Fab&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 PP1|Robot hexapode pour escalier]]&lt;br /&gt;
| Eduardo Gomez &lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| C201&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| &lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=54718</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2017/2018</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=54718"/>
				<updated>2018-04-11T12:39:52Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : /* Fiche de présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Notes sur les projets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse du projet || Retour sur l'analyse || Matériel || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation sans supports, bonne analyse de la concurrence. Par contre le scénario d'usage est à revoir en précisant l'usage pour le particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le scénario est précisé mais aucune réponse aux questions difficiles &amp;quot;gestion des températures et procédure d'entretien&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Si le contenu du Wiki reflète la quantité de travail fourni, c'est inquiétant.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Peu de matière, pas de justification des choix, aucune réalisation concréte présentée. Sauf effort très important de dernière minute, un projet qui n'aboutira pas.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Inutile en l'état actuel du projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation focalisée sur les réseaux de neurones. Exercice mal compris (pas d'introduction du contexte, pas de scénario d'usage).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Toujours pas d'analyse de la concurrence, ni de scénario d'usage. Pas de réponse aux questions difficiles &amp;quot;quel est le matériel ? quel est le protocole ? quelles sont les entrées du réseau de neurones ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste mais il manque des références vers les fournisseurs agréés (voir page de l'an dernier).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Illustrez votre Wiki avec des schémas ou des photos de votre montage. Décrivez mieux votre plateforme de test et les résultats obtenus. Essayez de corriger les problèmes de français.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Wiki trop peu alimenté pour cette phase du projet, aucune illustration, impossible de se faire une idée de l'avancée du projet avec le Wiki. Coquilles non prises en compte.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une démonstration avec le dispositif décrit en fin de Wiki peut être envisagée.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Architecture de la source d'énergie (nombre de chemins d'énergie ?)&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Vous devriez avoir quelques éléments sur la réalisation. Complétez votre Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Un Wiki illustré mais avec du copier/coller des manuels de référence sans grand intérêt. Toujours pas de circuit testé en fin de projet. Un très important effort final est toujours possible.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;A priori inutile sauf si une version fonctionnelle de la carte était obtenue.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Présentation focalisée sur la création du site Web. Effort fait pour rédiger un scénario d'usage.&amp;lt;/font&amp;gt; &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Réponses aux questions mais l'analyse de la consommation est imprécise. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé dans la page Wiki mais à reporter en bas de la page des projets de cette année avec des références valides.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un effort de documentation mais illustrez par des schémas, des pages de l'application et des tests.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un Wiki correct mais sans plus, des problèmes de format, des illustrations mal incluses, des vidéos youtube. Cela dit le Wiki peut devenir tout à fait correct avec un peu de temps et de soin.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de doute sur le travail effectué, une vidéo de démonstration est possible et requise.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé. Scénario d'usage à préciser sur la partie réseau de capteurs.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Scénario d'usage non précisé. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence, êtes-vous sur que le matériel n'a pas besoin d'être acheté ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. N'hésitez pas à solliciter votre encadrant direct en cas de blocage !&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. Prenez un peu de temps pour corriger les coquilles assez fréquentes. Wiki légérement décalé par rapport au travail effectué.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Aucun doute sur le travail effectué mais il n'est pas sur que le sujet se prête à une vidéo. A discuter avec les encadrants.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Pas de support. Exercice très bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de réponse aux questions difficiles &amp;quot;quelle alimentation ? comment faire pour différencier les briques ? comment les briques vont-elles communiquer ? quelle sécurité vis-à-vis des enfants ?&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. Faites un effort de formatage du texte (par exemple en utilisant des sous-titres plutôt que de souligner des lignes).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail progresse mais le Wiki est décalé.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une démonstration est requise, faites en sorte que les prototypes soient au rendez-vous.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Rien à signaler (juste une confusion entre le MSP430 et le CC430).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Questions difficiles évacuées. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Un Wiki correct permettant de suivre l'avancé du projet. Le rapport devra être plus précis.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Aucun doute sur la qualité du travail, le sujet ne se prête pas à une démonstration sauf si des processus visuels peuvent être chargés sur RIOT pour CC430.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un peu rapide, exercice réalisé. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas d'analyse de la concurrence. Peu d'effort de rédaction. Des coquilles. Une réponse rapide à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais pas forcément exhaustif et sans référence valide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. Wiki agréable à lire.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Merci de corriger les coquilles trop nombreuses en fin de Wiki. Les derniers travaux sont décrits trop succinctement.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une démonstration est requise. Un grand effort va devoir être fourni pour obtenir un prototype fonctionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Page Wiki vide, pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet. Essayez de mieux formater votre texte pour une meilleure facilité de lecture.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Travail correctement décrit mais une tendance à s'arrêter à chaque obstacle, qu'en est-il de l'utilisation de &amp;lt;code&amp;gt;v4l2loopback&amp;lt;/code&amp;gt; ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une démonstration est requise. Faites en sorte d'obtenir un prototype fonctionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Pas d'analyse de la concurrence, pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;L'analyse de la concurrence et le scénario d'usage ont été ajoutés. Par contre pas de réponse aux questions difficiles &amp;quot;quelle sera l'autonomie de la balle et quel sera le système de rechargement ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet au 18/02/2018&amp;lt;/font&amp;gt;. &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Wiki mis à jour en catastrophe le 19/02/2018. Peu d'informations, seul le routage d'une carte semble avoir été entrepris.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune mise à jour du Wiki depuis la dernière remarque ci-dessus. L'avancée du travail ne peut pas être évaluée.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une démonstration est requise. Un prototype sera-t-il disponible ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Trouver des concurrents indirects. Une histoire mais pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page Wiki modifiée après la présentation. Une réponse incomplète à la question difficile. Trop de coquilles pour ce niveau d'études.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Bonne description du travail. Cinq séances pour faire chauffer une résistance, n'est-ce pas trop ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Rien à dire sur la forme, le Wiki est toujours bien tenu et permet de se faire une bonne idée de l'avancée du projet. Par contre le travail effectué sur les dernières semaine est très léger.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;De gros doute sur la possibilité d'avoir un dispositif convaincant à montrer en fin de projet. Je ne demande qu'à être démenti.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune modification de la page Wiki depuis début octobre.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet. Projet encore dans la phase de prototypage. Comment vous comptez recevoir une carte SIM ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Wiki non mis à jour. Le code (IDE Arduino) est inclus in extenso dans le Wiki. Toujours pas d'intégration des composants.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;De gros doute sur la possibilité d'avoir un dispositif convaincant à montrer en fin de projet. Je ne demande qu'à être démenti.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Supports très textuels, pas de scénario d'usage mais une rédaction sur l'intérêt psychologique, pas vraiment de partie &amp;quot;concurrents&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un effort pour trouver des &amp;quot;concurrents&amp;quot;, pas de réponses aux questions difficiles &amp;quot;combien de LEDs ? quelle alimentation pour quelle autonomie&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail est a peu près décrit mais la page Wiki ressemble a un brouillon.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Beaucoup d'aide pour améliorer le Wiki mais pas d'effort pour le maintenir par la suite : pas de description du mandala décoré. Rien non plus sur la programmation des animations.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une démonstration est requise, il faut finaliser le projet, concernant le matériel c'est correctement engagé mais il faut un gros effort sur la programmation.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Bonne présentation orale. Utilisation du bluetooth peu convainquant. Pas de scénario d'usage. Un &amp;quot;concurrent&amp;quot; trouvé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Concept de scénario d'usage non compris. Une réponse à la question difficile très rapide et non convaincante.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste de matériel dans la page Wiki mais à insérer dans le tableau en bas de la page principale. Pas de référence (voir sur la page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail avec le prototype pilote de LEDs est très bien décrit et de façon agréable à lire. Par contre le schéma du futur circuit est très mal engagé. Il faut commencer par faire un schéma plus précis du collier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;La discussion sur la conception du circuit est difficile à comprendre, d'où sortent les intensités de 0,6A et de 1,2A ? Mettre une photo d'écran pour le PCB est une hérésie sachant qu'il est possible d'exporter une image directement de Fritzing. Sans un très important travail final, il sera impossible de mener le projet à bien.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Une démonstration est requise, il faut finaliser le projet un très gros effort est nécessaire malgré l'aide déjà apporté.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Support assez corrects, sujet non entièrement compris, scénario d'usage minimal.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un problème dans le scénario d'usage : les conteneurs doivent être lancés sur un serveur. Une réponse acceptable à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Aucun travail ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le Wiki a été utilisé mais montre un manque de travail flagrant. Un élève ne participe pas au projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Sauf miracle aucune démonstration ne sera possible.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Compte-rendu du travail très lapidaire et parfois illisible à cause des coquilles. Le Wiki ne donne pas l'impression que le projet avance.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Il est clair que le Wiki est alimenté mais un manque de rigueur dans la syntaxe mediawiki et de trop nombreuses coquilles ne permettent pas une lecture facile. Avec un peu de soin vous pourriez avoir un excellent Wiki. Le travail décrit est foisonnant, essayez de synthétiser, en particulier il serait intéressant de savoir dans quel état sont les différents travaux entrepris.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une démonstration est requise.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation trop impécise, pas vraiment de scénario d'usage. Par contre des concurrents ont été présentés.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un scénario d'usage éloigné de la future utilisation. Trop de coquilles dans ce scénario. Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste du matériel mais pas dans la page principale. Pas de référence (voir page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Compte-rendu non à jour au 18/02/2018 alors que la feuille d'heures est à jour. Le Wiki manque d'illustration, par exemple donnez le schéma du circuit.&amp;lt;/font&amp;gt; &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Des informations sur la carte en gestation&amp;lt;/font&amp;gt;.&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Wiki non mis à jour. Toujours entrain de travailler sur la clef XBee.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Une démonstration est requise. Un très grand effort semble nécessaire pour avoir quelque chose à présenter sur la table.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte. Un concurrent assez peu en rapport avec les essaims de robots mais dans la ligne des dispositifs de déminage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Liste du matériel. Préciser pour le chassis.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Impossible de connaître l'avancé du projet à la lecture du Wiki. N'êtes-vous pas entrain de vous perdre dans vos problèmes avec FreeRTOS ?&amp;lt;/font&amp;gt; &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;De quelle résistance devant le récepteur IR parlez-vous ? Il n'y en a pas sur le PCB. Votre Wiki se concentre ces dernières semaines sur la modélisation du chassis alors que le travail sur la programmation de l'ATMega328p n'y figure pas. C'est dommage sachant qu'il s'agit du travail le plus valorisant.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une démonstation est requise. Arriverez-vous à souder et programmer une carte à temps ? Votre chassis complexe sera-t-il aussi fonctionnel qu'un chassis très simple à base de 2 plaques et d'entretoises ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Objectif mal expliqué. Exercice réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Mieux définir l'objectif suite à la visite en entreprise. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Bonne description du travail. Votre Wiki manque d'illustrations sur un sujet qui le permet.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Wiki non à jour. Ce qui est disponible donne l'impression d'un papillonnage de tutorial en tutorial. Vous abandonnez la banana PI D1 en début de projet pour vous concentrer sur de la reconnaissance d'image que vous ne semblez pas avoir conduit à bien puisque vous parlez de l'abandonner. Vous passez de C++ à python sans raison convaincante. Vous développez un serveur Web sous &amp;lt;code&amp;gt;flask&amp;lt;/code&amp;gt; que vous cachez derrière un proxy inverse &amp;lt;code&amp;gt;ngnix&amp;lt;/code&amp;gt;. Vous parlez de stratégie en semaine 9 ce qui bien tardif. Votre projet semble embourbé.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Malheureusement il ne semble pas qu'il y aura quoi que ce soit à montrer. Je ne demande qu'à être démenti.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Excellente présentation et excellent travail préparatoire, Scénario d'usage à préciser, trouver des concurrents.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Attention quand vous dites qu'un ATMega328p n'a pas assez de sorties pour commander 8 oscillateurs, il dispose tout de même de plus de 20 E/S.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Wiki toujours excellent. Votre exploration du monde de l'électronique analogique est passionnant à lire du moins pour un profane en la matière. Juste des notes pour les deux dernières semaines mais c'est mieux que rien et vous avez raison de vous concentrer sur la réalisation.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Démonstration requise. En espérant que la sculpture soit totalement opérationnelle.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice réussi. Cependant précisez les acteurs dans le scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de modification du scénario. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Rien à redire sur la liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Description du travail correct, des illustrations. Essayez de formater avec la syntaxe Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Wiki très correct sur la forme. Pas tout à fait à jour.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Démonstration requise. Du travail nécessaire pour avoir un prototype pour la démonstration.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponses aux questions difficiles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail effectué est décrit. Un nombre de coquilles non acceptable, la lecture en devient difficile. Utilisez la syntaxe de formatage du Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Corrigez vos erreurs de grammaire et d'orthographe ! Utilisez correctement la syntaxe mediawiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Démonstration requise. Même un résultat négatif, du style la plante est muette, est intéressant.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Sujet se prêtant peu à l'exercice mais très bonne présentation. Sujet travaillé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas vraiment de question, la suggestion est noté dans la page Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Description du travail un peu rapide (DNS leak quesako ?). Rédaction en cours au moment de la lecture du Wiki.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Effort de rédaction entre le 18/02/2018 et le 19/02/2018. Il manque des sections mais le travail effectué devient lisible.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bon Wiki. Des améliorations possibles comme la correction des coquilles et compléter la partie état de l'art.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Aucun doute sur la qualité et la quantité de travail comme le montre l'&amp;quot;état de l'art&amp;quot; du Wiki. Ce sujet se prête peu à une vidéo. Il est cependant possible d'envisager une courte vidéo avec la confrontation de deux navigations Web, une classique, l'autre en passant par Tor. Le coté délicat est de trouver des démonstrations visuelles de la confidentialité apportée par Tor.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Comment démarrer l'imprimante à distance ? Comment sera calibrée la plaque d’impression ?&lt;br /&gt;
Comment la plaque va se fixer sur le sol ? &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Il est possible de mettre une copie d'écran de l'application de plus. Pas la peine de vous tirer dans les pattes.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Respectez la syntaxe mediawiki. Voir les corrections. Ajoutez une photo de l'imprimante dans l'état actuel. Très bon Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Démonstration requise. Aucun doute sur le fait que le dispositif fonctionnera parfaitement de bout en bout.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le projet ne semble pas encore avoir été sérieusement étudié.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Net effort de documentation de la page Wiki. Pas de réponse directe à la question difficile sur la Kinect mais une discussion sur le problème posé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description du travail. Des illustrations mais il pourrait y avoir des photos du système robotino / kinect.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Depuis février le projet piétine. Votre feuille d'heure de février en témoigne : les banques d'images des MPS n'ont pas pu être constituées (pas de raison donnée pour cet échec), de plus 13h pour acquérir des images d'une caméra même stéréoscopique est exagéré. Il vous a fallu tout le mois de mars pour résoudre ces problèmes et encore votre discussion sur la reconnaissance des MPS est peu pertinente comme expliqué en séance. Toujours rien sur l'implantation du dispositif de reconnaissance sur le système embarqué.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Il semble peu probable qu'une démonstration puisse avoir lieu. Je ne demande qu'à être démenti.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Contexte mal présenté, sujet flou. Scénario d'usage à préciser. Pas de contact avec les encadrants avant la présentation.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page de Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Compte-rendu rapide du travail. Ce compte-rendu est inquiétant. Il ne semble y avoir aucun résultat depuis le début du projet. Un module a été abandonné sans que le module en question n'ait été décrit ou que la raison de l'abandon ait été précisé. Attention votre projet est en voie d'échec.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Wiki court. Le seul travail décrit est l'écriture d'un script shell. Une seule ligne sur la création d'un conteneur.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune démonstration envisageable.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page de Wiki assez vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Le robot centaure est en plus mauvais état maintenant qu'au début du projet. Vous semblez avoir une nouvelle fois abandonné votre projet.&amp;lt;/font&amp;gt; &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Des ajouts mineurs au Wiki le 19/02/2018.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Du travail réalisé avec un certain succès durant le mois de mars. A nouveau abandon du projet en avril.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Il ne semble pas raisonnable d'espérer une démonstration.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Présentation très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse à la question difficile. Page Wiki un peu vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un Wiki incomplet alors que la feuille d'heures est actualisée. Vous semblez toujours bloqués sur les problèmes d'étalonnage !&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Wiki très peu alimenté. Présentation du contrôle avec simulink.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une démonstration requise. Pour l'instant seul le contrôle par simulink est disponible. Ce n'est pas suffisant.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Wiki avec quelques informations sur le travail accompli depuis fin novembre : étude sur modbus et labview. Quelques coquilles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Très peu d'illustrations. Texte mal formaté et avec des coquilles intolérable à ce niveau d'étude. Le compte-rendu donne l'impression d'une méthode de travail très brouillonne.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Wiki insuffisant.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Projet terminé, pas de vidéo.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation sans support. Trouver des concurrents indirects. Pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Projet en échec ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Projet en échec.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune avancée, il est désormais impossible d'avoir un prototype en fin de projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki bien tenue. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Quelques éléments sur le matériel dans la page Wiki mais aucune liste avec références.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Presque à jour. Vous n'aviez pas des cartes à faire fabriquer à l'extérieur ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Rédaction rapide sur les dernières semaine. Une expérimentation est nécessaire à ce stage du projet. Elle est attendue avec impatience.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Démonstration requise. Débrouillez-vous pour avoir quelque chose de percutant à montrer !&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki très complète. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une liste probablement pas exhaustive.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Exceptionnel !&amp;lt;/b&amp;gt; Très illustré, bien rédigé, le travail de recherche est très bien décrit. Je ne suis pas un fan de la mise en gras d'un quart du texte et la syntaxe Wiki n'est pas vraiment utilisée mais c'est du détail?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Il faudra encore relire le Wiki pour corriger les coquilles des nouveaux paragraphes. Les images et les vidéos sont aussi à ajouter. Il n'en reste pas moins que le Wiki et impressionnant et sera exceptionnel une fois totalement rédigé et corrigé.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Démonstration absolument requise. Il y aura forcément quelque chose à montrer !&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Projet en échec ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Toujours rien sur l'avancé du projet. Projet en échec.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Vidéo non adaptée au sujet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| Erasmus &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Projet en échec constaté.&amp;lt;/font&amp;gt;&lt;br /&gt;
| A voir avec l'encadrant direct.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| A voir avec l'encadrant direct.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fiche de présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! Séance 1 (17/01) !! Séance 2 (24/01) !! Séance 3 (31/01) !! Séance 4 (7/02) !! Séance 5 (14/02) !! Séance 6 (21/02) !! Séance 7 (7/03) !! Séance 8 (14/03) !! Séance 9 (21/03) !! Séance 10 (28/03) !! Séance 11 (4/04) !! Séance 12 (11/04) !! Séance 13 (18/04)&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
|Quentin Boëns / Henri Carlier&lt;br /&gt;
|E304 &lt;br /&gt;
|E304/305&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|C201&lt;br /&gt;
|C201&lt;br /&gt;
|C201/E304&lt;br /&gt;
|E304/Fab&lt;br /&gt;
|Fab/A313&lt;br /&gt;
|C205  Départ 17h (entretien stage)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
|Ji Yang&lt;br /&gt;
|E306&lt;br /&gt;
|E303&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|E301&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
|C201&lt;br /&gt;
|E304&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| Alexis Viscogliosi / Abass Ayoub &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|E304 &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Alexis Viscogliosi Absent excusé pour entretien stage&amp;lt;/font&amp;gt;&lt;br /&gt;
|C008&lt;br /&gt;
|C008&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;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| Paul Ribeiro / Mehanna Naïf&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absents &amp;lt;/font&amp;gt;&lt;br /&gt;
|E301&lt;br /&gt;
|E301 puis B309 puis B207&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|C201 puis E304&lt;br /&gt;
|C201 et E304&lt;br /&gt;
|C201&lt;br /&gt;
|C201/E303&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| Antoine Gossehdelatte&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;
| E306&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| Maëva Delaporte / Simon Blas&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| C201/E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| Baptiste Cartier&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E306&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| Amine El Messaoudi / Simon Feutrier&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| B207&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Jade Dupont&lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|Absence Maladie&lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|Absente entretien stage&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| Thomas Cunin / Thibault Cattelain&lt;br /&gt;
| E304&lt;br /&gt;
| B306/E304&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (E304 - A305)&amp;lt;/font&amp;gt;&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E304/C200&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| Rémi Mairesse / Gustave Roux&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304 / C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Oumaima Naanaa&lt;br /&gt;
|E302&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;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| Lirui Zhang / Lihe Zhang&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;
| E304&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| Lijie Yao / Keren Qiang&lt;br /&gt;
| E303&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;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| Maxime Creteur / Gao Fan&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absents &amp;lt;/font&amp;gt;&lt;br /&gt;
|E303&lt;br /&gt;
|B309 puis B207&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|E304&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|E303 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Gao Fan absent &amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| Amaury Knockaert / Fabrice Taingland&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304/E302&lt;br /&gt;
| C203/E306&lt;br /&gt;
| E306/E304&lt;br /&gt;
| Forum stages euratech/E304&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E304&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| Matthieu Delobelle&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E303 - C201&lt;br /&gt;
| E306 - C201&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201-E302&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| Benjamin Canu / Ganix Etcheguibel&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| Forum Euratech jusqu'à 17h &amp;lt;br/&amp;gt; E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306 / Fab&lt;br /&gt;
| E306 / Fab&lt;br /&gt;
| E306 / C204&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| Taky Djeraba / Thomas Hubert&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| Jean-Baptiste Watine / Antoine Untereiner&lt;br /&gt;
| E306/C201&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (C201) &amp;lt;/font&amp;gt;&lt;br /&gt;
| C205&lt;br /&gt;
| C205/E301&lt;br /&gt;
| C205/E301&lt;br /&gt;
| E301&lt;br /&gt;
| C205&lt;br /&gt;
| C205/C201&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| Transley Gracias / Camille Saad&lt;br /&gt;
| E306 &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/C202&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| Xavier Chenot / Rodolphe Toin&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;
| E306 puis C201&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| Antoine Duquenoy / Anthony Durot&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;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| Eloi Zalczer / Justine Senellart&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|Hors Polytech/E302&lt;br /&gt;
|E302/E304&lt;br /&gt;
|E302/E304&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| Damien Narbais / Zoé Briois&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (E301)&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304 + 17h réunion C00X&lt;br /&gt;
| C205&lt;br /&gt;
| E304 + 17h réunion C00X&lt;br /&gt;
| A317&lt;br /&gt;
| E304&lt;br /&gt;
| E30X&lt;br /&gt;
| C205 + Damien -&amp;gt; entretien stage&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| Hugo Delbroucq / Nicolas Havard &lt;br /&gt;
| E301&lt;br /&gt;
| INRIA&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt; (INRIA)&lt;br /&gt;
| E301&lt;br /&gt;
| E301 puis E304&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| INRIA&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| Claire Vandamme / Alexandra Villa &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|Hors Polytech/B106&lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|Bureau de Mr Pekpe/E306&lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|C008(Claire : jusque 16h, RDV médical)&lt;br /&gt;
|C008&lt;br /&gt;
|- &lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| Florian Le Foll&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; (Pas de salle) &amp;lt;/font&amp;gt;E303&lt;br /&gt;
|E303&lt;br /&gt;
|E303&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;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| Carval Amaury/ Prud'Homme Geoffrey&lt;br /&gt;
| fabricarium &lt;br /&gt;
| fabricarium puis Hors Polytech&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
| Carval E306 - Preud'homme E301&lt;br /&gt;
| E301&lt;br /&gt;
| Carval C20X - Preud'homme Fabricarium&lt;br /&gt;
| Quelque part&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E306&lt;br /&gt;
| Fabricarium (au fond)&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| Erwan Dufresne&lt;br /&gt;
| E302/E306&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
| E302&lt;br /&gt;
| E306&lt;br /&gt;
| E302&lt;br /&gt;
| E302/Fabricarium&lt;br /&gt;
| E302/Fabricarium&lt;br /&gt;
| Fabricarium/E304&lt;br /&gt;
| E304/Fab&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 PP1|Robot hexapode pour escalier]]&lt;br /&gt;
| Eduardo Gomez &lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| C201&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| &lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54524</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54524"/>
				<updated>2018-04-05T20:16:35Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Information sur le projet=&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une partie gérant la liaison USB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite que d’une seule commande du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Heures S14 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !!  !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB==&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=54523</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2017/2018</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=54523"/>
				<updated>2018-04-05T20:13:40Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : /* Fiche de présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Notes sur les projets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse du projet || Retour sur l'analyse || Matériel || Mi-parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation sans supports, bonne analyse de la concurrence. Par contre le scénario d'usage est à revoir en précisant l'usage pour le particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le scénario est précisé mais aucune réponse aux questions difficiles &amp;quot;gestion des températures et procédure d'entretien&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Si le contenu du Wiki reflète la quantité de travail fourni, c'est inquiétant.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation focalisée sur les réseaux de neurones. Exercice mal compris (pas d'introduction du contexte, pas de scénario d'usage).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Toujours pas d'analyse de la concurrence, ni de scénario d'usage. Pas de réponse aux questions difficiles &amp;quot;quel est le matériel ? quel est le protocole ? quelles sont les entrées du réseau de neurones ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste mais il manque des références vers les fournisseurs agréés (voir page de l'an dernier).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Illustrez votre Wiki avec des schémas ou des photos de votre montage. Décrivez mieux votre plateforme de test et les résultats obtenus. Essayez de corriger les problèmes de français.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Architecture de la source d'énergie (nombre de chemins d'énergie ?)&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Vous devriez avoir quelques éléments sur la réalisation. Complétez votre Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Présentation focalisée sur la création du site Web. Effort fait pour rédiger un scénario d'usage.&amp;lt;/font&amp;gt; &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Réponses aux questions mais l'analyse de la consommation est imprécise. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé dans la page Wiki mais à reporter en bas de la page des projets de cette année avec des références valides.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un effort de documentation mais illustrez par des schémas, des pages de l'application et des tests.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé. Scénario d'usage à préciser sur la partie réseau de capteurs.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Scénario d'usage non précisé. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence, êtes-vous sur que le matériel n'a pas besoin d'être acheté ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. N'hésitez pas à solliciter votre encadrant direct en cas de blocage !&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Pas de support. Exercice très bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de réponse aux questions difficiles &amp;quot;quelle alimentation ? comment faire pour différencier les briques ? comment les briques vont-elles communiquer ? quelle sécurité vis-à-vis des enfants ?&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. Faites un effort de formatage du texte (par exemple en utilisant des sous-titres plutôt que de souligner des lignes).&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Rien à signaler (juste une confusion entre le MSP430 et le CC430).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Questions difficiles évacuées. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un peu rapide, exercice réalisé. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas d'analyse de la concurrence. Peu d'effort de rédaction. Des coquilles. Une réponse rapide à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais pas forcément exhaustif et sans référence valide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. Wiki agréable à lire.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Page Wiki vide, pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet. Essayez de mieux formater votre texte pour une meilleure facilité de lecture.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Pas d'analyse de la concurrence, pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;L'analyse de la concurrence et le scénario d'usage ont été ajoutés. Par contre pas de réponse aux questions difficiles &amp;quot;quelle sera l'autonomie de la balle et quel sera le système de rechargement ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet au 18/02/2018&amp;lt;/font&amp;gt;. &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Wiki mis à jour en catastrophe le 19/02/2018. Peu d'informations, seul le routage d'une carte semble avoir été entrepris.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Trouver des concurrents indirects. Une histoire mais pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page Wiki modifiée après la présentation. Une réponse incomplète à la question difficile. Trop de coquilles pour ce niveau d'études.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Bonne description du travail. Cinq séances pour faire chauffer une résistance, n'est-ce pas trop ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune modification de la page Wiki depuis début octobre.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet. Projet encore dans la phase de prototypage. Comment vous comptez recevoir une carte SIM ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Supports très textuels, pas de scénario d'usage mais une rédaction sur l'intérêt psychologique, pas vraiment de partie &amp;quot;concurrents&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un effort pour trouver des &amp;quot;concurrents&amp;quot;, pas de réponses aux questions difficiles &amp;quot;combien de LEDs ? quelle alimentation pour quelle autonomie&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail est a peu près décrit mais la page Wiki ressemble a un brouillon.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Bonne présentation orale. Utilisation du bluetooth peu convainquant. Pas de scénario d'usage. Un &amp;quot;concurrent&amp;quot; trouvé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Concept de scénario d'usage non compris. Une réponse à la question difficile très rapide et non convaincante.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste de matériel dans la page Wiki mais à insérer dans le tableau en bas de la page principale. Pas de référence (voir sur la page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail avec le prototype pilote de LEDs est très bien décrit et de façon agréable à lire. Par contre le schéma du futur circuit est très mal engagé. Il faut commencer par faire un schéma plus précis du collier.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Support assez corrects, sujet non entièrement compris, scénario d'usage minimal.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un problème dans le scénario d'usage : les conteneurs doivent être lancés sur un serveur. Une réponse acceptable à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Aucun travail ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Compte-rendu du travail très lapidaire et parfois illisible à cause des coquilles. Le Wiki ne donne pas l'impression que le projet avance.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation trop impécise, pas vraiment de scénario d'usage. Par contre des concurrents ont été présentés.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un scénario d'usage éloigné de la future utilisation. Trop de coquilles dans ce scénario. Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste du matériel mais pas dans la page principale. Pas de référence (voir page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Compte-rendu non à jour au 18/02/2018 alors que la feuille d'heures est à jour. Le Wiki manque d'illustration, par exemple donnez le schéma du circuit.&amp;lt;/font&amp;gt; &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Des informations sur la carte en gestation&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte. Un concurrent assez peu en rapport avec les essaims de robots mais dans la ligne des dispositifs de déminage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Liste du matériel. Préciser pour le chassis.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Impossible de connaître l'avancé du projet à la lecture du Wiki. N'êtes-vous pas entrain de vous perdre dans vos problèmes avec FreeRTOS ?&amp;lt;/font&amp;gt; &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Objectif mal expliqué. Exercice réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Mieux définir l'objectif suite à la visite en entreprise. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Bonne description du travail. Votre Wiki manque d'illustrations sur un sujet qui le permet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Excellente présentation et excellent travail préparatoire, Scénario d'usage à préciser, trouver des concurrents.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Attention quand vous dites qu'un ATMega328p n'a pas assez de sorties pour commander 8 oscillateurs, il dispose tout de même de plus de 20 E/S.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice réussi. Cependant précisez les acteurs dans le scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de modification du scénario. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Rien à redire sur la liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Description du travail correct, des illustrations. Essayez de formater avec la syntaxe Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponses aux questions difficiles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail effectué est décrit. Un nombre de coquilles non acceptable, la lecture en devient difficile. Utilisez la syntaxe de formatage du Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Sujet se prêtant peu à l'exercice mais très bonne présentation. Sujet travaillé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas vraiment de question, la suggestion est noté dans la page Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Description du travail un peu rapide (DNS leak quesako ?). Rédaction en cours au moment de la lecture du Wiki.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Effort de rédaction entre le 18/02/2018 et le 19/02/2018. Il manque des sections mais le travail effectué devient lisible.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Comment démarrer l'imprimante à distance ? Comment sera calibrée la plaque d’impression ?&lt;br /&gt;
Comment la plaque va se fixer sur le sol ? &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Il est possible de mettre une copie d'écran de l'application de plus. Pas la peine de vous tirer dans les pattes.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le projet ne semble pas encore avoir été sérieusement étudié.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Net effort de documentation de la page Wiki. Pas de réponse directe à la question difficile sur la Kinect mais une discussion sur le problème posé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description du travail. Des illustrations mais il pourrait y avoir des photos du système robotino / kinect.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Contexte mal présenté, sujet flou. Scénario d'usage à préciser. Pas de contact avec les encadrants avant la présentation.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page de Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Compte-rendu rapide du travail. Ce compte-rendu est inquiétant. Il ne semble y avoir aucun résultat depuis le début du projet. Un module a été abandonné sans que le module en question n'ait été décrit ou que la raison de l'abandon ait été précisé. Attention votre projet est en voie d'échec.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page de Wiki assez vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Le robot centaure est en plus mauvais état maintenant qu'au début du projet. Vous semblez avoir une nouvelle fois abandonné votre projet.&amp;lt;/font&amp;gt; &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Des ajouts mineurs au Wiki le 19/02/2018.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Présentation très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse à la question difficile. Page Wiki un peu vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un Wiki incomplet alors que la feuille d'heures est actualisée. Vous semblez toujours bloqués sur les problèmes d'étalonnage !&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Wiki avec quelques informations sur le travail accompli depuis fin novembre : étude sur modbus et labview. Quelques coquilles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Très peu d'illustrations. Texte mal formaté et avec des coquilles intolérable à ce niveau d'étude. Le compte-rendu donne l'impression d'une méthode de travail très brouillonne.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation sans support. Trouver des concurrents indirects. Pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Projet en échec ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki bien tenue. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Quelques éléments sur le matériel dans la page Wiki mais aucune liste avec références.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Presque à jour. Vous n'aviez pas des cartes à faire fabriquer à l'extérieur ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki très complète. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une liste probablement pas exhaustive.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Exceptionnel !&amp;lt;/b&amp;gt; Très illustré, bien rédigé, le travail de recherche est très bien décrit. Je ne suis pas un fan de la mise en gras d'un quart du texte et la syntaxe Wiki n'est pas vraiment utilisée mais c'est du détail?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Projet en échec ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| Erasmus &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Projet en échec constaté.&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;
== Fiche de présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! Séance 1 (17/01) !! Séance 2 (24/01) !! Séance 3 (31/01) !! Séance 4 (7/02) !! Séance 5 (14/02) !! Séance 6 (21/02) !! Séance 7 (7/03) !! Séance 8 (14/03) !! Séance 9 (21/03) !! Séance 10 (28/03) !! Séance 11 (4/04) !! Séance 12 (11/04) !! Séance 13 (18/04)&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
|Quentin Boëns / Henri Carlier&lt;br /&gt;
|E304 &lt;br /&gt;
|E304/305&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|C201&lt;br /&gt;
|C201&lt;br /&gt;
|C201/E304&lt;br /&gt;
|E304/Fab&lt;br /&gt;
|Fab/A313&lt;br /&gt;
|C205  Départ 17h (entretien stage)&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
|Ji Yang&lt;br /&gt;
|E306&lt;br /&gt;
|E303&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|E301&lt;br /&gt;
|E306&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| Alexis Viscogliosi / Abass Ayoub &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|E304 &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Alexis Viscogliosi Absent excusé pour entretien stage&amp;lt;/font&amp;gt;&lt;br /&gt;
|C008&lt;br /&gt;
|C008&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;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| Paul Ribeiro / Mehanna Naïf&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absents &amp;lt;/font&amp;gt;&lt;br /&gt;
|E301&lt;br /&gt;
|E301 puis B309 puis B207&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|C201 puis E304&lt;br /&gt;
|C201 et E304&lt;br /&gt;
|C201&lt;br /&gt;
|C201/E303&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
|  Antoine Gosse&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;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| Maëva Delaporte / Simon Blas&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| C201/E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| Baptiste Cartier&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E306&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| Amine El Messaoudi / Simon Feutrier&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| B207&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Jade Dupont&lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|Absence Maladie&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;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| Thomas Cunin / Thibault Cattelain&lt;br /&gt;
| E304&lt;br /&gt;
| B306/E304&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (E304 - A305)&amp;lt;/font&amp;gt;&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E304/C200&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| Rémi Mairesse / Gustave Roux&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304 / C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Oumaima Naanaa&lt;br /&gt;
|E302&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;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| Lirui Zhang / Lihe Zhang&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;
| E304&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| Lijie Yao / Keren Qiang&lt;br /&gt;
| E303&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;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| Maxime Creteur / Gao Fan&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absents &amp;lt;/font&amp;gt;&lt;br /&gt;
|E303&lt;br /&gt;
|B309 puis B207&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|E304&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|E303&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| Amaury Knockaert / Fabrice Taingland&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304/E302&lt;br /&gt;
| C203/E306&lt;br /&gt;
| E306/E304&lt;br /&gt;
| Forum stages euratech/E304&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| Matthieu Delobelle&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E303 - C201&lt;br /&gt;
| E306 - C201&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| Benjamin Canu / Ganix Etcheguibel&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| Forum Euratech jusqu'à 17h &amp;lt;br/&amp;gt; E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306 / Fab&lt;br /&gt;
| E306 / Fab&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| Taky Djeraba / Thomas Hubert&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| Jean-Baptiste Watine / Antoine Untereiner&lt;br /&gt;
| E306/C201&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (C201) &amp;lt;/font&amp;gt;&lt;br /&gt;
| C205&lt;br /&gt;
| C205/E301&lt;br /&gt;
| C205/E301&lt;br /&gt;
| E301&lt;br /&gt;
| C205&lt;br /&gt;
| C205/C201&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| Transley Gracias / Camille Saad&lt;br /&gt;
| E306 &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/C202&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| Xavier Chenot / Rodolphe Toin&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;
| E306 puis C201&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| Antoine Duquenoy / Anthony Durot&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;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| Eloi Zalczer / Justine Senellart&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|Hors Polytech/E302&lt;br /&gt;
|E302/E304&lt;br /&gt;
|E302/E304&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| Damien Narbais / Zoé Briois&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (E301)&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304 + 17h réunion C00X&lt;br /&gt;
| C205&lt;br /&gt;
| E304 + 17h réunion C00X&lt;br /&gt;
| A317&lt;br /&gt;
| E304&lt;br /&gt;
| E30X&lt;br /&gt;
| C205 + Damien -&amp;gt; entretien stage&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| Hugo Delbroucq / Nicolas Havard &lt;br /&gt;
| E301&lt;br /&gt;
| INRIA&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt; (INRIA)&lt;br /&gt;
| E301&lt;br /&gt;
| E301 puis E304&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| INRIA&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| Claire Vandamme / Alexandra Villa &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|Hors Polytech/B106&lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|Bureau de Mr Pekpe/E306&lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|C008(Claire : jusque 16h, RDV médical)&lt;br /&gt;
|C008&lt;br /&gt;
|- &lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| Florian Le Foll&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; (Pas de salle) &amp;lt;/font&amp;gt;E303&lt;br /&gt;
|E303&lt;br /&gt;
|E303&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;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| Carval Amaury/ Prud'Homme Geoffrey&lt;br /&gt;
| fabricarium &lt;br /&gt;
| fabricarium puis Hors Polytech&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
| Carval E306 - Preud'homme E301&lt;br /&gt;
| E301&lt;br /&gt;
| Carval C20X - Preud'homme Fabricarium&lt;br /&gt;
| Quelque part&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E306&lt;br /&gt;
| Fabricarium (au fond)&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| Erwan Dufresne&lt;br /&gt;
| E302/E306&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
| E302&lt;br /&gt;
| E306&lt;br /&gt;
| E302&lt;br /&gt;
| E302/Fabricarium&lt;br /&gt;
| E302/Fabricarium&lt;br /&gt;
| Fabricarium/E304&lt;br /&gt;
| E304/Fab&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 PP1|Robot hexapode pour escalier]]&lt;br /&gt;
| Eduardo Gomez &lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| C201&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| &lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=54522</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2017/2018</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=54522"/>
				<updated>2018-04-05T20:13:08Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : /* Fiche de présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Notes sur les projets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse du projet || Retour sur l'analyse || Matériel || Mi-parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation sans supports, bonne analyse de la concurrence. Par contre le scénario d'usage est à revoir en précisant l'usage pour le particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le scénario est précisé mais aucune réponse aux questions difficiles &amp;quot;gestion des températures et procédure d'entretien&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Si le contenu du Wiki reflète la quantité de travail fourni, c'est inquiétant.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation focalisée sur les réseaux de neurones. Exercice mal compris (pas d'introduction du contexte, pas de scénario d'usage).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Toujours pas d'analyse de la concurrence, ni de scénario d'usage. Pas de réponse aux questions difficiles &amp;quot;quel est le matériel ? quel est le protocole ? quelles sont les entrées du réseau de neurones ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste mais il manque des références vers les fournisseurs agréés (voir page de l'an dernier).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Illustrez votre Wiki avec des schémas ou des photos de votre montage. Décrivez mieux votre plateforme de test et les résultats obtenus. Essayez de corriger les problèmes de français.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Architecture de la source d'énergie (nombre de chemins d'énergie ?)&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Vous devriez avoir quelques éléments sur la réalisation. Complétez votre Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Présentation focalisée sur la création du site Web. Effort fait pour rédiger un scénario d'usage.&amp;lt;/font&amp;gt; &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Réponses aux questions mais l'analyse de la consommation est imprécise. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé dans la page Wiki mais à reporter en bas de la page des projets de cette année avec des références valides.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un effort de documentation mais illustrez par des schémas, des pages de l'application et des tests.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé. Scénario d'usage à préciser sur la partie réseau de capteurs.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Scénario d'usage non précisé. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence, êtes-vous sur que le matériel n'a pas besoin d'être acheté ?&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. N'hésitez pas à solliciter votre encadrant direct en cas de blocage !&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Pas de support. Exercice très bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de réponse aux questions difficiles &amp;quot;quelle alimentation ? comment faire pour différencier les briques ? comment les briques vont-elles communiquer ? quelle sécurité vis-à-vis des enfants ?&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. Faites un effort de formatage du texte (par exemple en utilisant des sous-titres plutôt que de souligner des lignes).&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Rien à signaler (juste une confusion entre le MSP430 et le CC430).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Questions difficiles évacuées. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un peu rapide, exercice réalisé. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas d'analyse de la concurrence. Peu d'effort de rédaction. Des coquilles. Une réponse rapide à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais pas forcément exhaustif et sans référence valide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description de l'avancé du projet. Wiki agréable à lire.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Page Wiki vide, pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet. Essayez de mieux formater votre texte pour une meilleure facilité de lecture.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Pas d'analyse de la concurrence, pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;L'analyse de la concurrence et le scénario d'usage ont été ajoutés. Par contre pas de réponse aux questions difficiles &amp;quot;quelle sera l'autonomie de la balle et quel sera le système de rechargement ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet au 18/02/2018&amp;lt;/font&amp;gt;. &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Wiki mis à jour en catastrophe le 19/02/2018. Peu d'informations, seul le routage d'une carte semble avoir été entrepris.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Trouver des concurrents indirects. Une histoire mais pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page Wiki modifiée après la présentation. Une réponse incomplète à la question difficile. Trop de coquilles pour ce niveau d'études.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Bonne description du travail. Cinq séances pour faire chauffer une résistance, n'est-ce pas trop ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune modification de la page Wiki depuis début octobre.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Une bonne description de l'avancé du projet. Projet encore dans la phase de prototypage. Comment vous comptez recevoir une carte SIM ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Supports très textuels, pas de scénario d'usage mais une rédaction sur l'intérêt psychologique, pas vraiment de partie &amp;quot;concurrents&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un effort pour trouver des &amp;quot;concurrents&amp;quot;, pas de réponses aux questions difficiles &amp;quot;combien de LEDs ? quelle alimentation pour quelle autonomie&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail est a peu près décrit mais la page Wiki ressemble a un brouillon.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Bonne présentation orale. Utilisation du bluetooth peu convainquant. Pas de scénario d'usage. Un &amp;quot;concurrent&amp;quot; trouvé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Concept de scénario d'usage non compris. Une réponse à la question difficile très rapide et non convaincante.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste de matériel dans la page Wiki mais à insérer dans le tableau en bas de la page principale. Pas de référence (voir sur la page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail avec le prototype pilote de LEDs est très bien décrit et de façon agréable à lire. Par contre le schéma du futur circuit est très mal engagé. Il faut commencer par faire un schéma plus précis du collier.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Support assez corrects, sujet non entièrement compris, scénario d'usage minimal.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un problème dans le scénario d'usage : les conteneurs doivent être lancés sur un serveur. Une réponse acceptable à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Aucun travail ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Compte-rendu du travail très lapidaire et parfois illisible à cause des coquilles. Le Wiki ne donne pas l'impression que le projet avance.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation trop impécise, pas vraiment de scénario d'usage. Par contre des concurrents ont été présentés.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un scénario d'usage éloigné de la future utilisation. Trop de coquilles dans ce scénario. Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste du matériel mais pas dans la page principale. Pas de référence (voir page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Compte-rendu non à jour au 18/02/2018 alors que la feuille d'heures est à jour. Le Wiki manque d'illustration, par exemple donnez le schéma du circuit.&amp;lt;/font&amp;gt; &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Des informations sur la carte en gestation&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte. Un concurrent assez peu en rapport avec les essaims de robots mais dans la ligne des dispositifs de déminage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Liste du matériel. Préciser pour le chassis.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Impossible de connaître l'avancé du projet à la lecture du Wiki. N'êtes-vous pas entrain de vous perdre dans vos problèmes avec FreeRTOS ?&amp;lt;/font&amp;gt; &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Objectif mal expliqué. Exercice réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Mieux définir l'objectif suite à la visite en entreprise. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Bonne description du travail. Votre Wiki manque d'illustrations sur un sujet qui le permet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Excellente présentation et excellent travail préparatoire, Scénario d'usage à préciser, trouver des concurrents.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Attention quand vous dites qu'un ATMega328p n'a pas assez de sorties pour commander 8 oscillateurs, il dispose tout de même de plus de 20 E/S.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice réussi. Cependant précisez les acteurs dans le scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de modification du scénario. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Rien à redire sur la liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Description du travail correct, des illustrations. Essayez de formater avec la syntaxe Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponses aux questions difficiles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Le travail effectué est décrit. Un nombre de coquilles non acceptable, la lecture en devient difficile. Utilisez la syntaxe de formatage du Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Sujet se prêtant peu à l'exercice mais très bonne présentation. Sujet travaillé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas vraiment de question, la suggestion est noté dans la page Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Description du travail un peu rapide (DNS leak quesako ?). Rédaction en cours au moment de la lecture du Wiki.&amp;lt;/font&amp;gt;&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Effort de rédaction entre le 18/02/2018 et le 19/02/2018. Il manque des sections mais le travail effectué devient lisible.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Comment démarrer l'imprimante à distance ? Comment sera calibrée la plaque d’impression ?&lt;br /&gt;
Comment la plaque va se fixer sur le sol ? &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Il est possible de mettre une copie d'écran de l'application de plus. Pas la peine de vous tirer dans les pattes.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le projet ne semble pas encore avoir été sérieusement étudié.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Net effort de documentation de la page Wiki. Pas de réponse directe à la question difficile sur la Kinect mais une discussion sur le problème posé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bonne description du travail. Des illustrations mais il pourrait y avoir des photos du système robotino / kinect.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Contexte mal présenté, sujet flou. Scénario d'usage à préciser. Pas de contact avec les encadrants avant la présentation.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page de Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Compte-rendu rapide du travail. Ce compte-rendu est inquiétant. Il ne semble y avoir aucun résultat depuis le début du projet. Un module a été abandonné sans que le module en question n'ait été décrit ou que la raison de l'abandon ait été précisé. Attention votre projet est en voie d'échec.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page de Wiki assez vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Le robot centaure est en plus mauvais état maintenant qu'au début du projet. Vous semblez avoir une nouvelle fois abandonné votre projet.&amp;lt;/font&amp;gt; &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Des ajouts mineurs au Wiki le 19/02/2018.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Présentation très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse à la question difficile. Page Wiki un peu vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un Wiki incomplet alors que la feuille d'heures est actualisée. Vous semblez toujours bloqués sur les problèmes d'étalonnage !&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Wiki avec quelques informations sur le travail accompli depuis fin novembre : étude sur modbus et labview. Quelques coquilles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Très peu d'illustrations. Texte mal formaté et avec des coquilles intolérable à ce niveau d'étude. Le compte-rendu donne l'impression d'une méthode de travail très brouillonne.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation sans support. Trouver des concurrents indirects. Pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Projet en échec ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki bien tenue. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Quelques éléments sur le matériel dans la page Wiki mais aucune liste avec références.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tout simplement parfait !&amp;lt;/b&amp;gt; Bien illustré, bien rédigé, le travail est très bien décrit. Presque à jour. Vous n'aviez pas des cartes à faire fabriquer à l'extérieur ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki très complète. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une liste probablement pas exhaustive.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Exceptionnel !&amp;lt;/b&amp;gt; Très illustré, bien rédigé, le travail de recherche est très bien décrit. Je ne suis pas un fan de la mise en gras d'un quart du texte et la syntaxe Wiki n'est pas vraiment utilisée mais c'est du détail?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien sur l'avancé du projet. Projet en échec ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| Erasmus &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Projet en échec constaté.&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;
== Fiche de présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! Séance 1 (17/01) !! Séance 2 (24/01) !! Séance 3 (31/01) !! Séance 4 (7/02) !! Séance 5 (14/02) !! Séance 6 (21/02) !! Séance 7 (7/03) !! Séance 8 (14/03) !! Séance 9 (21/03) !! Séance 10 (28/03) !! Séance 11 (4/04) !! Séance 12 (11/04) !! Séance 13 (18/04)&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
|Quentin Boëns / Henri Carlier&lt;br /&gt;
|E304 &lt;br /&gt;
|E304/305&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|C201&lt;br /&gt;
|C201&lt;br /&gt;
|C201/E304&lt;br /&gt;
|E304/Fab&lt;br /&gt;
|Fab/A313&lt;br /&gt;
|C205  Départ 17h (entretien stage)&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
|Ji Yang&lt;br /&gt;
|E306&lt;br /&gt;
|E303&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|E301&lt;br /&gt;
|E306&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| Alexis Viscogliosi / Abass Ayoub &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|E304 &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Alexis Viscogliosi Absent excusé pour entretien stage&amp;lt;/font&amp;gt;&lt;br /&gt;
|C008&lt;br /&gt;
|C008&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;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| Paul Ribeiro / Mehanna Naïf&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absents &amp;lt;/font&amp;gt;&lt;br /&gt;
|E301&lt;br /&gt;
|E301 puis B309 puis B207&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|C201 puis E304&lt;br /&gt;
|C201 et E304&lt;br /&gt;
|C201&lt;br /&gt;
|C201/E303&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
|  Antoine Gosse&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;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| Maëva Delaporte / Simon Blas&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| C201/E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E301 &amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| Baptiste Cartier&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E306&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| Amine El Messaoudi / Simon Feutrier&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| B207&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Jade Dupont&lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|Absence Maladie&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;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| Thomas Cunin / Thibault Cattelain&lt;br /&gt;
| E304&lt;br /&gt;
| B306/E304&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (E304 - A305)&amp;lt;/font&amp;gt;&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E304/C200&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| Rémi Mairesse / Gustave Roux&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304 / C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Oumaima Naanaa&lt;br /&gt;
|E302&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;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| Lirui Zhang / Lihe Zhang&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;
| E304&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| Lijie Yao / Keren Qiang&lt;br /&gt;
| E303&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;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| Maxime Creteur / Gao Fan&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absents &amp;lt;/font&amp;gt;&lt;br /&gt;
|E303&lt;br /&gt;
|B309 puis B207&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|E304&lt;br /&gt;
|E301&lt;br /&gt;
|E301&lt;br /&gt;
|E303&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| Amaury Knockaert / Fabrice Taingland&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304/E302&lt;br /&gt;
| C203/E306&lt;br /&gt;
| E306/E304&lt;br /&gt;
| Forum stages euratech/E304&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| Matthieu Delobelle&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E303 - C201&lt;br /&gt;
| E306 - C201&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| Benjamin Canu / Ganix Etcheguibel&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| Forum Euratech jusque 17h &amp;lt;br/&amp;gt; E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306 / Fab&lt;br /&gt;
| E306 / Fab&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| Taky Djeraba / Thomas Hubert&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| Jean-Baptiste Watine / Antoine Untereiner&lt;br /&gt;
| E306/C201&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (C201) &amp;lt;/font&amp;gt;&lt;br /&gt;
| C205&lt;br /&gt;
| C205/E301&lt;br /&gt;
| C205/E301&lt;br /&gt;
| E301&lt;br /&gt;
| C205&lt;br /&gt;
| C205/C201&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| Transley Gracias / Camille Saad&lt;br /&gt;
| E306 &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/C202&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| Xavier Chenot / Rodolphe Toin&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;
| E306 puis C201&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| Antoine Duquenoy / Anthony Durot&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;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| Eloi Zalczer / Justine Senellart&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|Hors Polytech/E302&lt;br /&gt;
|E302/E304&lt;br /&gt;
|E302/E304&lt;br /&gt;
|E304/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|E306/E302&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| Damien Narbais / Zoé Briois&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (E301)&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304 + 17h réunion C00X&lt;br /&gt;
| C205&lt;br /&gt;
| E304 + 17h réunion C00X&lt;br /&gt;
| A317&lt;br /&gt;
| E304&lt;br /&gt;
| E30X&lt;br /&gt;
| C205 + Damien -&amp;gt; entretien stage&lt;br /&gt;
| C205&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| Hugo Delbroucq / Nicolas Havard &lt;br /&gt;
| E301&lt;br /&gt;
| INRIA&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt; (INRIA)&lt;br /&gt;
| E301&lt;br /&gt;
| E301 puis E304&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| INRIA&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| Claire Vandamme / Alexandra Villa &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|Hors Polytech/B106&lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|Bureau de Mr Pekpe/E306&lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|C008(Claire : jusque 16h, RDV médical)&lt;br /&gt;
|C008&lt;br /&gt;
|- &lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| Florian Le Foll&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; (Pas de salle) &amp;lt;/font&amp;gt;E303&lt;br /&gt;
|E303&lt;br /&gt;
|E303&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;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| Carval Amaury/ Prud'Homme Geoffrey&lt;br /&gt;
| fabricarium &lt;br /&gt;
| fabricarium puis Hors Polytech&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
| Carval E306 - Preud'homme E301&lt;br /&gt;
| E301&lt;br /&gt;
| Carval C20X - Preud'homme Fabricarium&lt;br /&gt;
| Quelque part&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E306&lt;br /&gt;
| Fabricarium (au fond)&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| Erwan Dufresne&lt;br /&gt;
| E302/E306&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
| E302&lt;br /&gt;
| E306&lt;br /&gt;
| E302&lt;br /&gt;
| E302/Fabricarium&lt;br /&gt;
| E302/Fabricarium&lt;br /&gt;
| Fabricarium/E304&lt;br /&gt;
| E304/Fab&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 PP1|Robot hexapode pour escalier]]&lt;br /&gt;
| Eduardo Gomez &lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| C201&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| C201/Fabricarium&lt;br /&gt;
| &lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54304</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54304"/>
				<updated>2018-04-02T17:56:29Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Information sur le projet=&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une partie gérant la liaison USB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite que d’une seule commande du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Heures S14 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !!  !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB==&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_temp.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.PNG|208px]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54303</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54303"/>
				<updated>2018-04-02T17:54:57Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Information sur le projet=&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une partie gérant la liaison USB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite que d’une seule commande du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Heures S14 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
!Total!! 6 !! 14 !! 21 !! 8 !! 11 !! 9 !! 11 !! 12 !! 16 !!  !!  !!  !!  !!  !!  !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB==&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_final_2.PNG&amp;diff=54301</id>
		<title>Fichier:CAD Robot final 2.PNG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_final_2.PNG&amp;diff=54301"/>
				<updated>2018-04-02T17:54:50Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : Getchegu a déplacé la page Fichier:CAD Robot final 3.PNG vers Fichier:CAD Robot final 2.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_final_3.PNG&amp;diff=54302</id>
		<title>Fichier:CAD Robot final 3.PNG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_final_3.PNG&amp;diff=54302"/>
				<updated>2018-04-02T17:54:50Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : Getchegu a déplacé la page Fichier:CAD Robot final 3.PNG vers Fichier:CAD Robot final 2.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECTION [[Fichier:CAD Robot final 2.PNG]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_temp.jpg&amp;diff=54299</id>
		<title>Fichier:CAD Robot temp.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_temp.jpg&amp;diff=54299"/>
				<updated>2018-04-02T17:54:29Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : Getchegu a déplacé la page Fichier:CAD Robot final 2.jpg vers Fichier:CAD Robot temp.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_final_2.jpg&amp;diff=54300</id>
		<title>Fichier:CAD Robot final 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_final_2.jpg&amp;diff=54300"/>
				<updated>2018-04-02T17:54:29Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : Getchegu a déplacé la page Fichier:CAD Robot final 2.jpg vers Fichier:CAD Robot temp.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECTION [[Fichier:CAD Robot temp.jpg]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54298</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54298"/>
				<updated>2018-04-02T17:24:38Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Information sur le projet=&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une partie gérant la liaison USB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite que d’une seule commande du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_3.PNG|208px|Dernière version du modèle du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Heures S14 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
!Total!!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB==&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique afin de se rapprocher de la finalisation du matériel.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;br /&gt;
&lt;br /&gt;
Les différents tests sur le châssis ont montrés quelques derniers détails importants à modifier sur le modèle 3D. Par exemple, un détail qui peut avoir son importance est la façon de fixer les moteurs et la roue folle sur le châssis.&lt;br /&gt;
En effet, seules des trous de vis avaient été alors prévus sur la base de la pièce, mais aucune vérification de correspondance des orientations n'avait été réalisée.&lt;br /&gt;
De ce fait, les vis-moteurs étant dans l'axe de rotation de la roue, celle-ci aurait été face au sol, ce qui est une méthode de déplacement peu conventionnelle et non choisie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes aussi rendus compte que les empreintes des vis sur la carte électronique ne correspondaient pas aux empreintes des fixations sur le robot, il a donc fallu réduire les écarts. Cependant, vu la disposition des poteaux de support pour la carte électronique, il a fallu aussi resserrer leur base, et donc empiéter sur l'espace de maintient de la pile et de son cache-câble. Pour palier à ce problème, nous avons donc du augmenter légèrement les dimensions du robot en largeur et en hauteur (la longueur à aussi été harmonisée). De plus, une couche à été ajoutée sous le robot au niveau e la fixation de la bille pour permettre au robot d'être à plat sur les trois appuis : roues et bille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi rajouté entre autre des maintiens sur la plaque supérieure afin de garder son empreinte sur les poteaux de la base.&lt;br /&gt;
Suite à cela, nous avons pu finaliser et imprimer en 3D la 2eme version du robot que nous allons tester dans les prochaines semaines en parallèle du soudage des composants sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_3.PNG|208px]]&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_final_2.PNG&amp;diff=54297</id>
		<title>Fichier:CAD Robot final 2.PNG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:CAD_Robot_final_2.PNG&amp;diff=54297"/>
				<updated>2018-04-02T17:00:14Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54164</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54164"/>
				<updated>2018-03-30T16:27:50Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Information sur le projet=&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une partie gérant la liaison USB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite que d’une seule commande du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_2.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Heures S14 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
!Total!!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB==&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54157</id>
		<title>IMA4 2017/2018 P25 : Essaim de Robots</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P25_:_Essaim_de_Robots&amp;diff=54157"/>
				<updated>2018-03-30T12:12:05Z</updated>
		
		<summary type="html">&lt;p&gt;Getchegu : &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;
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim.&lt;br /&gt;
Le principe de l'essaim se base sur les règles d'''autonomie'' et de ''faible intelligence'' de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :&lt;br /&gt;
*Autonomie énergétique, sensorimotrice et décisionnelle.&lt;br /&gt;
*Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.&lt;br /&gt;
&lt;br /&gt;
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
*Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.&lt;br /&gt;
*Mise en place, sur ce châssis, de capteurs et LEDs.&lt;br /&gt;
*Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.&lt;br /&gt;
*Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
''Projet de robots vibrants'' développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.&lt;br /&gt;
&lt;br /&gt;
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.&lt;br /&gt;
&lt;br /&gt;
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
''Projet de drones volants'', par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.&lt;br /&gt;
&lt;br /&gt;
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.&lt;br /&gt;
&lt;br /&gt;
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&amp;amp;rep=rep1&amp;amp;type=pdf&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.&lt;br /&gt;
&lt;br /&gt;
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
Aucune question difficile n'a été abordée lors de la présentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel (Ici pour deux robots) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Fabricant !! Référence Fabricant !! Fournisseur !! Quantité !! Lien fournisseur&lt;br /&gt;
|-&lt;br /&gt;
| Microcontrôleur&lt;br /&gt;
| Atmel&lt;br /&gt;
| ATMEGA328P-MU&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 100nF&lt;br /&gt;
| Kemet&lt;br /&gt;
| C0201C104K9PACTU &lt;br /&gt;
| Farnell&lt;br /&gt;
| 16&lt;br /&gt;
| http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF&lt;br /&gt;
|-&lt;br /&gt;
| Condensateur 10uF&lt;br /&gt;
| Wurth Electronik&lt;br /&gt;
| 885012106006 &lt;br /&gt;
| Farnell&lt;br /&gt;
| 2&lt;br /&gt;
| http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147&lt;br /&gt;
|- &lt;br /&gt;
| Condensateur 22pF&lt;br /&gt;
| AVX&lt;br /&gt;
| 06036A220KAT2A&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d&lt;br /&gt;
|-&lt;br /&gt;
| Rectifier Diode&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| GL34G-E3/83&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d&lt;br /&gt;
|-&lt;br /&gt;
| Quartz&lt;br /&gt;
| ECS&lt;br /&gt;
| ECS-160-20-3X-TR&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB&lt;br /&gt;
|- &lt;br /&gt;
| Servo moteur&lt;br /&gt;
| Olimex Ltd.&lt;br /&gt;
| MS-R-6-40&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d&lt;br /&gt;
|-&lt;br /&gt;
| Blue LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608LVBDZGKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Green LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SGC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d&lt;br /&gt;
|- &lt;br /&gt;
| Red LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APHB1608ZGSURKC&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d&lt;br /&gt;
|- &lt;br /&gt;
| Yellow LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APT1608SYCK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1&lt;br /&gt;
|-&lt;br /&gt;
| Orange LED&lt;br /&gt;
| KingBright&lt;br /&gt;
| APTD1608SECK&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d&lt;br /&gt;
|-&lt;br /&gt;
| White LED 6200K&lt;br /&gt;
| OSRAM Opto Semiconductors&lt;br /&gt;
| LW L283-Q1R2-3K8L-1-Z&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV&lt;br /&gt;
|-&lt;br /&gt;
| LED Infrarouge&lt;br /&gt;
| Farnell&lt;br /&gt;
| OP290A &lt;br /&gt;
| Optek technology&lt;br /&gt;
| 4&lt;br /&gt;
| http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872&lt;br /&gt;
|-&lt;br /&gt;
| Récepteur Infrarouge&lt;br /&gt;
| Vishay Semiconductors&lt;br /&gt;
| TSOP38238&lt;br /&gt;
| Mouser&lt;br /&gt;
| 6&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d&lt;br /&gt;
|-&lt;br /&gt;
| Circuit d'horloge&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| NE555&lt;br /&gt;
| RS Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/timers/0526959/&lt;br /&gt;
|-&lt;br /&gt;
| 1kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ102&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d&lt;br /&gt;
|-&lt;br /&gt;
| 10kΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ103&lt;br /&gt;
| Mouser&lt;br /&gt;
| 4&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d&lt;br /&gt;
|-&lt;br /&gt;
| 1MΩ Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ105&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| 470Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| KTR03EZPJ471&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 330Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ331&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d&lt;br /&gt;
|-&lt;br /&gt;
| 220Ω Resistor&lt;br /&gt;
| ROHM Semiconductor&lt;br /&gt;
| ESR03EZPJ221&lt;br /&gt;
| Mouser&lt;br /&gt;
| 16&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| ALPS&lt;br /&gt;
| SKQGADE010&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d&lt;br /&gt;
|-&lt;br /&gt;
| USB Chip&lt;br /&gt;
| FTDI&lt;br /&gt;
| FT232RL-REEL&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q&lt;br /&gt;
|-&lt;br /&gt;
| USB-C Connector&lt;br /&gt;
| Molex&lt;br /&gt;
| 105450-0101&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d&lt;br /&gt;
|-&lt;br /&gt;
| Régulateur 5v &lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| LM1117IMPX-5&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D&lt;br /&gt;
|-&lt;br /&gt;
| Batteries 9V&lt;br /&gt;
| Panasonic Battery&lt;br /&gt;
| 6LF22XWA/B12&lt;br /&gt;
| Mouser&lt;br /&gt;
| 2&lt;br /&gt;
| http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d&lt;br /&gt;
|-&lt;br /&gt;
| Roue de balance&lt;br /&gt;
| Alwayse&lt;br /&gt;
| 100613&lt;br /&gt;
| RS-Online&lt;br /&gt;
| 2&lt;br /&gt;
| https://fr.rs-online.com/web/p/billes-porteuses/0687770/&lt;br /&gt;
|-&lt;br /&gt;
| Emetteur/Récepteur Ultrason 40 kHz&lt;br /&gt;
| ELECFreaks&lt;br /&gt;
| RB-Elf-143&lt;br /&gt;
| Robotshop&lt;br /&gt;
| 2&lt;br /&gt;
| https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html&lt;br /&gt;
|-&lt;br /&gt;
| Pin externe mâle&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| AVR chip&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Capteur à effet Hall&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Aimant permanent&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Information sur le projet=&lt;br /&gt;
&lt;br /&gt;
==Microprocesseur==&lt;br /&gt;
&lt;br /&gt;
Le microprocesseur étant la &amp;quot;tête pensante&amp;quot; de notre futur robot, nous avons d’abord hésité entre une Raspberry Pi et une Atmega 328p (Arduino). Comme notre projet est orienté matériel bas niveau, l’Arduino s’est révélé plus optimal. Plutôt que la raspberry plutôt orienté haut niveau (flux vidéo, wifi, etc)&lt;br /&gt;
&lt;br /&gt;
Nos robots devant faire plusieurs tâches en “simultané”, il fallait implanter un ordonnanceur dans l’Arduino. Pour cela, nous avons choisi FreeRTOS, un mini OS pour Arduino.&lt;br /&gt;
&lt;br /&gt;
Ce microprocesseur choisi, nous pouvions alors passer à sa programmation en AVR, et à quelques tests avec des composants. Nous avons d’abord décidé de nous attarder sur l’émission de l’identifiant du robot au travers d’une LED infrarouge, puis nous avons tenté de programmer la modulation et la transmission du signal contenant l’identifiant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Infrarouge==&lt;br /&gt;
&lt;br /&gt;
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure du codage de l’émission de l’infrarouge, nous nous sommes rendus compte qu’on allait se confronter à plusieurs problèmes, tel que la corruption du signal infrarouge par l’émission d’autres robots. Pour palier à cela, nous avons décidé d’utiliser des bits de stuffing: Tous les n bits similaires on ajouter un bit contraire afin de vérifier de la non corruption du message.&lt;br /&gt;
Ainsi, si il y a n+1 bits à l’état haut à la suite, cela signifie qu’on reçoit deux signaux en même temps. Donc on arrête de lire le message en cours, corrompu. Comme les robots émettent régulièrement leurs identifiants, on peut se permettre d’en rater quelques-uns.&lt;br /&gt;
Second problème, que se passe-t-il si on commence à lire un message alors qu’on est à la moitié du message émis? On se retrouve alors avec des identifiants faux. Donc on a rajouté n+1 bits de start. Comme cela, on est sûr qu’on est au début du mot.&lt;br /&gt;
&lt;br /&gt;
L’identifiant à l’émission paramétré, il faut à présent coder la réception. Ainsi on vérifie qu’on reçoit bien les n+1 bits de start. Puis à chaque bit similaire on incrémente un compteur, on vérifie qu’à chaque fois qu’on a n bits similaire, le bit suivant est inversé. Si c’est le cas, on passe le bit de stuffing puis on continue à lire le message, sinon on arrête la lecture. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir tester la réception, il nous faut utiliser un capteur IR TSOP, donc modulé à 38kHz. Contrainte occasionnée, moduler notre signal pour qu’il soit lu par le capteur. &lt;br /&gt;
Au début, on utilisait la fonction _delay_ms d’AVR pour pouvoir effectuer une modulation. Mais il s’avérait que cette fonction n’avait pas une résolution assez fine. Donc on passe à présent par les TIMERS de l’Arduino. &lt;br /&gt;
Pour pouvoir visualiser le signal émis par les LED IR, on a placé en série des LED classiques. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est bien à 38kHz, d’autant plus que la LED reliée au capteur n’a pas l’air de s’allumer. Donc on peut supposer que la fréquence du signal n’est pas bonne. Pour cela, on utilisera un oscilloscope afin de visualiser le signal et voir si c’est à l’émission qu’on a un problème.&lt;br /&gt;
&lt;br /&gt;
==Carte Électronique==&lt;br /&gt;
&lt;br /&gt;
L’étude de la carte électronique s’est réalisée péniblement, du fait qu’aucun de nous deux n’étions à l’aise avec la conception de circuits électroniques.&lt;br /&gt;
Cependant avec l’aide de M. Redon, nous avons pu avoir accès à un modèle déjà réalisé pour des projets de PEIPs. Cette carte contenant alors la plupart des composants nécessaires n'était pas optimisée pour la fonction d’un robot en essaim. Nous avons du alors la retravailler et enlevant ou ajoutant certaines parties.&lt;br /&gt;
&lt;br /&gt;
D’abord nous avons remarqué la présence de moteurs électriques. Désirant utiliser des servomoteurs, nous avons alors remplacé cette partie ainsi que le routage sur le microprocesseur.&lt;br /&gt;
&lt;br /&gt;
De plus, le traitement des récepteurs infrarouges se faisait par alternance d’alimentation et par lecture sur une seule pin de l’Atmega. Avec la suppression des moteurs, nous avons alors pu utiliser deux pins de plus afin d’alimenter les TSOPs en continu et donc les lire sur trois pins différentes.&lt;br /&gt;
&lt;br /&gt;
Le châssis du robot permettant la mise en place des capteurs à distance de la carte, il a aussi fallu revoir les empreintes afin de permettre l’accès au travers de connecteurs externes, autant sur la face supérieures pour les capteurs infrarouges ou ultrasons, que sur la face intérieure pour les moteurs ou la pile.&lt;br /&gt;
&lt;br /&gt;
Enfin il a fallu travailler le routage pour éviter toute erreur de RDC telles que des câbles se chevauchant (ou trop proches) tout en évitant les angles droits ou de trop nombreuses connections entre les deux faces de la carte.&lt;br /&gt;
&lt;br /&gt;
La mise en place de la liaison USB à travers la puce FTDI et le connecteur USB-C n’a pas été à refaire, cependant son étude à été inévitable afin de vérifier les connections aux différentes pins. L'intégration d’un programmeur AVR ISP à aussi été nécessaire afin de permettre la programmation du robot monté.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser les fonctions désirées, la carte électronique se compose donc :&lt;br /&gt;
 -d'un microprocesseur Atmega328p.&lt;br /&gt;
 -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un capteur à effet Hall et d'un émetteur-récepteur ultrason afin de repérer les autres robots ainsi que les obstacles.&lt;br /&gt;
 -d'une LED infra-rouge afin d'être visible.&lt;br /&gt;
 -de deux servomoteurs pour assurer les déplacements.&lt;br /&gt;
 -d'une alimentation par une pile 9V.&lt;br /&gt;
 -d'une partie gérant la liaison USB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fichier:PCB_Robot.png|300px|PCB finale du robot.]]&lt;br /&gt;
[[Fichier:PCB_Schematic_Robot.png|270px|PCB finale du robot (vue schématique).]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ServoMoteurs : Pour réaliser la fonction du mouvement, nous avons choisi des servomoteurs afin de permettre un déplacement précis ainsi qu’une économie d’électronique car celui-ci ne nécessite que d’une seule commande du microprocesseur pour commander le sens et la vitesse de rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Capteurs : Nous souhaitons réaliser une fonction de détection des autres robots, ainsi que de l’environnement proche. Pour le premier nous avons décidé de placer une LED infrarouge sur l’arrière du châssis ainsi que de détecteurs sur les trois autres côtés. A travers cette communication, nous pourrons ainsi communiquer l’identifiant propre au robot et décider des placements pour un train de véhicule, par exemple. Nous avons aussi imaginé un dispositif de capteur à effet Hall lié à un aimant permanent accroché au châssis afin de détecter l’approche à très faible distance d’un robot sans pour autant avoir à lire son identifiant. Pour la détection de l’environnement, la mise en place d'émetteur-récepteurs ultrasons à l’avant permettra sa réalisation pour des obstacles proches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modélisation 3D==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser ce robot, nous avons eu l’idée de concevoir un châssis réalisable en impression 3D. Pour cela nous avons utilisé le logiciel en ligne Onshape très utilisé dans ce domaine. Nous avons alors laissé parler notre imagination ainsi que la praticité de conception, quelque peu aidé par certains modèles réalisés à l'École ou ailleurs, afin de créer une coque permettant de maintenir en place les moteurs par vissage, ainsi que les différents capteurs, sans oublier la carte électronique.&lt;br /&gt;
Le modèle a donc d’abord été réalisée sans dimensions précises, nous n’avions que des approximations sur les précédents modèles de mini-robots, et ne pouvions qu’estimer les emplacements des différents trous et poteaux, ainsi que la forme concrète. Cependant nous voulions valider certains points : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d’abord la mise en place de la pile à l’opposé des moteurs, donc au dessus de la roue de balance, afin que le robot ne se renverse pas lors d'accélération brèves, pour cela nous avons donc définit que les moteurs soient à l’avant, et la roue folle ainsi que la pile à l’arrière pour permettre à la compensation du couple réalisé par l’avance ou le recul du robot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, nous souhaitions réaliser un robot disposant de plusieurs étages. Cela offre un confort de lisibilité (et une classe non négligeable), ainsi qu’un espace libre aux capteurs, autant pour l’activité réalisée que pour les tests. Malgré ces avantages, nous avons pu intuiter la réduction de la facilité de montage ainsi que d’accès à la carte électronique. Nous avons cependant préféré continuer dans cette lancée, les dimensions du robot n’étant pas critiquement grandes, laissant ainsi la possibilité d’augmenter l’espace entre les étages.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]][[Fichier:CAD_Robot_final_2.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
*Étude Électronique&lt;br /&gt;
**Étude de la communication infrarouge&lt;br /&gt;
***Évaluation de la faisabilité.&lt;br /&gt;
***Étude de la modulation/démodulation.&lt;br /&gt;
***Détermination du circuit électronique correspondant.&lt;br /&gt;
**Création de la carte Électronique.&lt;br /&gt;
&lt;br /&gt;
*Étude informatique : programmation en C&lt;br /&gt;
**Communication infrarouge&lt;br /&gt;
***Émission des trames d’identification.&lt;br /&gt;
***Réception des trames et analyse.&lt;br /&gt;
**Programmation en C&lt;br /&gt;
***Implémentation de FreeRTOS dans l'Arduino.&lt;br /&gt;
***Contrôle des moteurs.&lt;br /&gt;
***Algorithmie primaire (suivre, s'orienter..).&lt;br /&gt;
**Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).&lt;br /&gt;
&lt;br /&gt;
&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 !! Heures S11 !! Heures S12 !! Heures S13 !! Heures S14 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 6&lt;br /&gt;
| 4&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;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| Étude de la communication infrarouge et des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| 6&lt;br /&gt;
| /&lt;br /&gt;
| 1&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;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| Implémentation de FreeRTOS dans l'Arduino&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 2&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| Développement en C de la communication infrarouge&lt;br /&gt;
| /&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 8&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 du contrôle des moteurs&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation de l'algorithmie des robots&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 3&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;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Étude et Conception de la carte électronique&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| Soudage et tests de la carte électronique&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;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Modélisation 3D du robot en CAD&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 5&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tests et montage du robot&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;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Programmation pour simulation&lt;br /&gt;
| /&lt;br /&gt;
| /&lt;br /&gt;
| 6&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;
| /&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
!Total!!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Déroulement du projet=&lt;br /&gt;
&lt;br /&gt;
==Semaine 2 : communication et moteurs, les débuts==&lt;br /&gt;
&lt;br /&gt;
Lors de cette première partie du projet, nous avons choisis de débuter avec la programmation du robot, ainsi que la modélisation du châssis destiné à l'impression 3D et la modélisation de l'algorithmie sur Unity3D.&lt;br /&gt;
En particulier, nous avons débuté le développement de l’émission infrarouge et de l’algorithmie, ainsi que du contrôle des servomoteurs.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La communication étant une partie importante du Projet, la programmation de l'envoi en série de l'identifiant du robot nous a paru prioritaire. Ici, nous avons testé en émettant bit par bit sur la LED L de la carte Arduino.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'implantation d'un OS pour l'Atmega était aussi important afin de traiter les differentes tâches que le robot devra réaliser. Pour cela nous avons choisit FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
===Moteurs et Algorithmie===&lt;br /&gt;
&lt;br /&gt;
Nous voulions aussi débuter la mise en place du programme de contrôle des moteurs et d'une base de programmation pour les robots, cependant peu de temps y a été accordé car nous avons vite réalisé qu'il faudra se concentrer sur la partie électronique afin de fixer les paramètres liés aux différents composants.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
La conception du châssis du robot s'est fait sur le logiciel de CAD Onshape.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cette semaine nous avons réalisé une ébauche afin de définir certaines règles de montage telles que la mise en place d'étages fonctionnels : &lt;br /&gt;
Le premier étant permettant le montage des moteurs et de la roue folle ainsi que de la pile.&lt;br /&gt;
Le deuxième accueillant la carte électronique.&lt;br /&gt;
Le dernier maintenant les différents capteurs.&lt;br /&gt;
[[Fichier:CAD_Robot_Ebauche.png|left|200px|Ébauche de modélisation 3D du robot]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons alors réalisé l’augmentation de la difficulté de montage ainsi que de la fragilité du robot. Cependant nousa vons préféré continuer et le vérifier par les tests, au risque de modifications ultérieures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
Le développement d'une simulation des robots et de leur comportement afin de les modéliser sous Unity3D est une idée qui nous a beaucoup plu a première vue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Cependant nous nous sommes rendus compte rapidement que cela n'apporterait qu'une visibilité virtuelle, et peu d'avantages en pratique, le but final étant de réaliser les robots et non de les modéliser.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'idée a donc été mise à l'écart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 3 : communication et PCB, ça continue==&lt;br /&gt;
&lt;br /&gt;
La semaine 3 a été dans la continuité de la semaine 2. Nous avons ainsi avancé sur la programmation de la communication, mettant en place les bases de la création de la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Une fois que l’émission a été réalisée, la programmation de la réception en série de l'identifiant semblait nécessaire.&amp;lt;br/&amp;gt;&lt;br /&gt;
L'ajout de bits de stuffing dans le message envoyé a aussi été choisi afin d'améliorer la lecture.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Afin de bien débuter la création de la PCB, nous avons d'abord récupérer le fichier existant pour pouvoir l'analyser et l'optimiser dans le cadre de notre projet. Pour cela nous avons donc dans un premier temps mis en place de l'environnement logiciel Fritzing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4 : Analyse et premiers problèmes==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
La semaine 4 à montré les premiers vrais problèmes liés à l'Atmega et son OS, il a donc fallu corriger l'implémentation de FreeRTOS afin que le microcontrôleur puisse fonctionner correctement.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Une fois que l'étude de la carte électronique a été mise en place, la semaine 4 s'est révélé être le début des modifications. Il a donc fallu commencer à l'analyser afin de comprendre sa configuration pour ensuite la comparer à nos besoin avant de la modifier petit à petit.&lt;br /&gt;
[[Fichier:PCB_Robot_old.png|left|200px|Carte électronique existante]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 5(6,7) : On avance==&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Retour sur le développement de la transmission par infrarouge avec la synchronisation de émission et de la réception des trames de données au travers des sémaphores.&lt;br /&gt;
&lt;br /&gt;
===PCB==&lt;br /&gt;
&lt;br /&gt;
Les prochaines semaines se sont déroulées dans la continuité de la semaine 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 8 : Début de la fin==&lt;br /&gt;
&lt;br /&gt;
La semaine 8 s'est révélée être la semaine des premières finalisations. En effet, autant la carte électronique que la modélisation 3D du châssis on pu être validées sous leur première forme et créées physiquement.&lt;br /&gt;
Côté programmation il est aussi temps de passer à la pratique avec des tests des futurs composants du robot sur les programmes.&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
On teste la transmission du signal Infrarouge :&lt;br /&gt;
&lt;br /&gt;
Pour la réception, d'abord , il nous faut utiliser un capteur IR TSOP. Le capteur étant limité à 38kHz, nous avons donc la contrainte de modulation du signal afin  qu’il puisse être lu par le capteur.&lt;br /&gt;
La fonction _delay_ms d’AVR a d'abord été choisie pour effectuer la modulation. Cependant il s’est avéré que cette fonction avait une résolution trop faible pour pouvoir atteindre les 38kHz. Nous sommes donc passés par les TIMERS de l’Arduino. Sachant que le TIMER 1 est utilisé par FreeRTOS, on utilise le TIMER 0.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir visualiser le signal émis, nous avons choisi de placer des LEDs classique en série avec les LEDs infrarouges. A l’émission, on observe bien un signal modulé mais il est impossible de savoir si il est à 38kHz, d’autant plus que la LED reliée au capteur ne semble pas s’allumer. Nous avons donc supposé que la fréquence du signal n’est pas bonne. Pour cela, nous allons donc utiliser un oscilloscope afin de visualiser le signal émis et reçu et ainsi savoir d'où vient le problème.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
&lt;br /&gt;
Au cours des dernières semaines, la modification de la carte a été une étape importante. Cette semaine marque la fin de l'étude PCB et sa validation.&lt;br /&gt;
Le but ayant été d'optimiser la carte au fonctionnement d'un robot en essaim, nous avons retravaillé certaines parties telles que, par exemple, la séparation du câblage des TSOP, afin d’accéder à leur valeur en continu ainsi que de réduire les différenciations d'alimentation. Nous avons aussi supprimé la partie moteur afin d'obtenir un gain de place et de ne garder que les servomoteurs.&lt;br /&gt;
Nous obtenons ainsi la version finale de la carte.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PCB_Robot.png|left|200px|Carte PCB finale]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans les semaines à venir, nous pourrons donc réaliser des tests afin de savoir si cette validation est définitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D===&lt;br /&gt;
&lt;br /&gt;
Au niveau du châssis, la première &amp;quot;version finale&amp;quot; a aussi été validée. Les cours de Mécatronique (filière SA) étant basés sur la modélisation 3D sur Onshape, le projet à été retravaillé intégralement afin d'offrir plus de possibilité.&lt;br /&gt;
L'impression au FabLab sera réalisée au cours de la prochaine semaine afin de vérifier la solidité et la bonne conception de la pièce, ainsi que la facilité de montage, par exemple au travers des dimensions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_premier.png|left|200px|Premier test de conception du chassis]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur cette image, nous pouvons donc observer la présence des trois étages, avec au bas les trous de vis afin de fixer les moteurs et la roue folle, ainsi que les maintiens de la pile 9V (à gauche), et de l'aimant (à droite).&lt;br /&gt;
Au deuxième étape la forme de la plaque à été adaptée à la taille de la carte PCB et arrondie afin de permettre aux broches placées sur la face intérieure d'être accessibles.&lt;br /&gt;
Sur la haut du robot, des emplacements ont été réalisés afin de maintenant les 3 TSOP, à l'avant (sur la droite de l'image) et sur les deux cotés, aisni qu'un bloc de fixation pour le sonar (surélevé pour qu'il ne soit pas gêné par le capteur infrarouge à l'avant). Enfin un mur à été érigé à l'arrière afin de dirigé le flux de la LED infrarouge uniquement vers l'arrière.&lt;br /&gt;
&lt;br /&gt;
La taille du robot est ainsi de 80x80x80cm. Nous devons ainsi vérifier que cela ne pose pas de problème de montage, mais aussi d'équilibre. La pile étant à l'arrière et les moteurs à l'avant, le robot ne devrait pas se renverser, mais nous devons nous en assurer par l’expérience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9 : On atteint vraiment la pratique==&lt;br /&gt;
&lt;br /&gt;
La semaine 9 a été basée sur les tests. En effet, ayant pu imprimer en 3D la première version du robot, les dimensions de montage ont pu être vérifiées, et une deuxième version a pu être développée. De plus, nous avons pu réaliser de plus amples expériences sur la communication infrarouge.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et premiers tests de montage===&lt;br /&gt;
&lt;br /&gt;
La première version du châssis du robot ayant été imprimée en semaine 8, le nettoyage des plastiques de support a été réalisé durant la semaine 9, permettant ainsi une vision claire de la pièce créée sur Onshape.&lt;br /&gt;
Cela fait, nous avons pu vérifier certaines dimensions et fonctions du châssis.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_imprime_1.jpg|left|220px|Première version du châssis imprimé]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple l'emplacement de la pile ou la netteté de la fabrication approximative à cause des supports ainsi que l'emplacement des vis pour la PCB.&lt;br /&gt;
Originellement prévue avec deux poteaux la maintenant en largeur, et deux barre fines en longueur (voir image semaine 8). Cependant cette configuration permettais une fixation parfaite de la pile, mais ne laissait aucune place pour son montage... Nous avons donc réalisé la difficulté de création d'une pièce aussi petite.&lt;br /&gt;
Nous avons aussi pu vérifier la solidité de la pièce, qui paraissait fragile. Celle-ci montre une grande résistance pour un poids faible malgré sa composition de plastique non plein. Nous avons donc pu valider cette méthode de réalisation par rapport à des montages en pléxiglass, souvent peut solide du fait des nombreuses vis et liaisons pas réellement fixe, créant beaucoup de point sensibles sur la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de corriger le problème de montage de la pile, le &amp;quot;poteau&amp;quot; arrière (coté gauche sur la photo) à été remplacé par une barre fine de même type que les latérales, et l'emplacement de la pile à été légèrement creusé afin de la maintenir.&lt;br /&gt;
&lt;br /&gt;
Les problèmes de support ont été réglés suite à une réévaluation complète de la pièce et de sa modélisation. Les parties nécessitant du support ont donc été retravaillées.&lt;br /&gt;
&lt;br /&gt;
Par exemple, le premier étage a subi une réduction drastique de matière superflue de sorte à ne pas encombrer le dessous et réduire le poids total. Les structures de fixation verticales ont aussi été pensées afin de supporter cet étage au travers de demi-arches de maximum 20° d'orientation (angle à partir duquel l'imprimante 3D pose du support afin de maintenir la structure en place).&lt;br /&gt;
&lt;br /&gt;
De plus, nous avons aussi choisi de fabriquer le deuxième étage à part afin de le monter plus tard grâce à un ensemble vis-écrou, ce dernier encré et collé dans une empreinte spécialement creusé dans les poteaux de structure.&lt;br /&gt;
&lt;br /&gt;
Les vis de maintient de la carte PCB ont été replacés par des tiges coupées afin de permettre une modularité accrue. Une empreinte creusée a aussi été réalisée pour bloquer la carte de façon plus précise et propre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:CAD_Robot_final_2.jpg|208px|Deuxième version de conception du châssis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transmission Infrarouge===&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué les tests avec l'oscilloscope afin de visualiser le signal de la LED infrarouge, et plus précisément la fréquence de la porteuse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:oscilloscope.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous observons que la LED émet bien le bon signal. Donc nous en avons en déduit que le problème venait du récepteur. D'après la doc technique, nous devions imposer un courant de 0,35 mA dans le récepteur. Le soumettant à une tension de 5V, il nous fallait donc placer une résistance de 14kΩ.&lt;br /&gt;
Cependant après une étude du circuit interne du composant, il s'est avéré qu'une résistance était déjà installée. Nous avons donc enlever notre résistance qui limitait trop le courant dans le récepteur. De plus, la résistance interne est montée en pull-up, donc on devait s'attendre à avoir '1' en sortie quand le capteur ne captait pas de signal et '0' quand il en percevait un.&lt;br /&gt;
&lt;br /&gt;
Après réglage du capteur, nous obtenions finalement une réception du message. Il a fallu inverser la lecture des bits afin de les faire correspondre au comportement prévu préalablement. Nous avons ensuite rajouté les bits de stop et de stuffing dans le message envoyé. Nous avons également essayer d'évaluer la fréquence de la tâche d'envoi de message ainsi que celle de réception. Finalement, on obtient un identifiant correct toutes les 5 secondes environs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:led et resultat minicom.png|left|200px|]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avions pensé utilisé l'intensité du signal reçu par le capteur afin de déterminer approximativement la distance du robot émetteur. Mais le capteur étant un tout ou rien, nous ne pouvions l'utiliser comme capteur analogique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 10==&lt;br /&gt;
&lt;br /&gt;
La semaine 10 s'est résumé en la continuation des tests sur le châssis imprimé en 3D ainsi que sur la carte électronique.&lt;br /&gt;
&lt;br /&gt;
===Modélisation 3D et tests de montage===&lt;/div&gt;</summary>
		<author><name>Getchegu</name></author>	</entry>

	</feed>