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

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2015/2016&amp;diff=27675</id>
		<title>Projets IMA5 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2015/2016&amp;diff=27675"/>
				<updated>2016-02-23T12:02:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en allant modifier le format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
Toutes les sources doivent être déposées sur notre archive GIT. Le service est disponible à l'URL [https://archives.plil.fr archives.plil.fr]. Connectez-vous avec vos identifiants Polytech'Lille. Sauf indication contraire de vos encadrants, rendez le projet public et mettez le lien sur votre Wiki. Vous pouvez trouver de la documentation sur ce système d'archives sur ce [https://git-scm.com/book/fr/v1 site].&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Projet&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Encadrant Ecole&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapport décembre&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapports finaux&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Vidéo&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P1 Convertisseur DC/DC pour réseau MTDC]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Mehmet Ilter &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Philippe DELARUE &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P2 Data Logger]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Hidéo VINOT&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 15/12/2015 12;00&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier: Dossier_soutenance_P2_Data_Logger_Hideo_VINOT_IMA5SC_2015.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; mercredi 24 février à 10h avec L. Engels&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P4 Jukebox multi-pièces]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Alexandre Jouy / Julien hérin &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Rodolphe Astori / Xavier Redon / Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:Pre_soutenance_PFE_Jouy_herin.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:Rapport PFE P4 Julien HERIN.pdf]] [[Fichier:Rapport_PFE_Jouy.zip]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; RDV pris le 23/02 avec L. Engels&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P9 Système d'hébergement domestique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Romain Libaert / Timothée Teneur &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Xavier Redon / Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 15/12/2015, 10:21, [[Fichier:P9_LIBAERT_TENEUR_DEC15.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:PFE_Final_TENEUR_LIBAERT.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Tournée le 22/02 par M. Engels&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P10 LILLIAD: Connected Learning Center | P10 LILLIAD: learning center connecté]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Mageshwaran Sekar &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 15/12/2015,07:48, [[Fichier:P10_FYP_December_Report_M_SEKAR.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:FYP-P10-Lilliad-MSEKAR.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P11 Spectateur augmenté]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Teresa Tumbragel &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:Teresa Tumbragel-Rapport Spectateur Augmente.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; NA &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P12 Capteurs enfouis pour vieillissement du béton]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; JULITA Alex &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P14 Localisation dans le corps humain]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Matthieu Marcadet &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 15/12/2015, 10:52, [[Fichier:Rapport_intermediaire_PFE_Marcadet.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:Rapport_PFE_P14_Matthieu_Marcadet.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P18 Meuble intelligent]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Kevin Colautti / Benjamin Lefort &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Rémy Bernard / Alexandre Boé / Xavier Redon / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 14/12/2015, 14:44, [[Fichier:P18_pre_soutenance.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:Rapport_P18_COLAUTTI_LEFORT.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Tournée le 22/02 par M. Engels&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Automatic Soldering System Project|P20 Placeur de composants sur PCB]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Jean Wasilewski &amp;amp; Pierre Letousey &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Xavier Redon / Thomas Vantroys / Alexandre Boé &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:P20_ASSP.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:IMA5-ASSP-JWPL.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Rendez-vous pris avec M. Engels le vendredi 25 Février à 10h &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P24 Nuage pour sites Web]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Jeremie Denechaud / Thibaut Scholaert &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Xavier Redon / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 15/12/2015, 12:02, [[Fichier:P24_Denechaud_Scholaert.pdf| Rapport intermédiaire de projet]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Fait Maison&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P25 Architecture ROS pour des véhicules autonomes intelligents]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Jean-Michel Tournier / Cyril Smagghe &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Vincent Coelen et Rochdi Merzouki &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 15/12/2015,09:04, [[Fichier:P25-2015_Smagghe_Tournier_decembre.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:Rapport_final_P25_Smagghe_Tournier.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;RDV mercredi 24 15h &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P26 Robot de forgeage et d’usinage]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Bertrand Yvernault / Louis Thebault &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Rochdi Merzouki &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 14/12/2015, 17:51&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Tournée le 22/02 par M. Engels &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P27 Robot de fraiseuse]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Flavien Royer / Maxime Morisse &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Rochdi Merzouki &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 14/12/2015, 19:06, [[Fichier:Rapport_Royer_Morisse.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Fichier:RapportPFE_ROYER_MORISSE.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; mardi 23 février à 11h15 avec Laurent Engels&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P30 Thermostat connecté et intelligent]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; TISSOT Elise / TIRABY Céline &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Guillaume Renault / Alexandre Boé / Xavier Redon &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;15/12/2015, 00:35, [[Fichier:Rapport_PFE_TISSOT_TIRABY.pdf‎ ]] &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:Rapport_final_PFE_TISSOT_TIRABY.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Tournée le 19/02 par L. Engels &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P32 Récupération d'énergie pour balise BLE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Quentin Sultana &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Frédéric Giraud / Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 13/12/2015, 19:31, [[Fichier:CR Miprojet_Sultana.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:Rapport_P32_Sultana.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; RDV L. Engels le 24/02 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P33 Réalisations en faveur de l'accessibilité de jeux vidéos]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Jérôme Bailet / Mehdi Zeggaï &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; GAPAS / Laurent Grisoni / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 14/12/2015, 10:54, [[Fichier:PFE_IMA5_Rapport_intermediaire_Bailet_Zeggai.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:PFE_IMA5_P33_Rapport_final_Bailet_Zeggai.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; RDV L. Engels le 25/02 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P35 Robot de test pour le sport de Golf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Deborah Saunders &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Rochdi Merzouki &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 15/12/2015, 12:07&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P34 Optimisation de trajectoire pour un robot de curiethérapie]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Sandra HAGE CHEHADE / Thomas DANEL &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Vincent COELEN / Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 15/12/2015, 12:02&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P40 Maquette mécatronique durcie d'ascenseur 5 étages]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Louis CHAUCHARD / Romain IMBERT &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Blaise CONRARD &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 14/12/2015, 19:21&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:IMA5_P40_Chauchard_Imbert_RapportFinal.pdf‎]] &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; RDV L. Engels le 23/02 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[P13 Plateforme expérimentation IOT]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; ROCHE François &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; 14/12/2015, 19:37, [[Fichier:PFE_P13_Plateforme_expérimentation_IOT.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:PFE_P13-Plateforme_expérimentation.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Tournée le 22/02 par M. Engels &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Implantation d'un filtre FIR-FX-LMS sur FPGA pour l'annulation de Bruit Acoustique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Bown Alexander / Piat Valentin &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; NA &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Pilulier automatique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Manouk Simon / Corentin Duplouy &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; NA &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Fichier:Rapport Duplouy Simon.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; RDV L. Engels le 23/02 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:PFE_IMA5_P33_Rapport_final_Bailet_Zeggai.pdf&amp;diff=27588</id>
		<title>Fichier:PFE IMA5 P33 Rapport final Bailet Zeggai.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:PFE_IMA5_P33_Rapport_final_Bailet_Zeggai.pdf&amp;diff=27588"/>
				<updated>2016-02-22T23:46:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : a téléversé une nouvelle version de « Fichier:PFE IMA5 P33 Rapport final Bailet Zeggai.pdf »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:PFE_IMA5_P33_Rapport_final_Bailet_Zeggai.pdf&amp;diff=27587</id>
		<title>Fichier:PFE IMA5 P33 Rapport final Bailet Zeggai.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:PFE_IMA5_P33_Rapport_final_Bailet_Zeggai.pdf&amp;diff=27587"/>
				<updated>2016-02-22T23:44:31Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : a téléversé une nouvelle version de « Fichier:PFE IMA5 P33 Rapport final Bailet Zeggai.pdf »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=27586</id>
		<title>P33 Réalisations en faveur de l'accessibilité de jeux vidéos</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=27586"/>
				<updated>2016-02-22T23:34:08Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Fichiers Rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:logo_la_gerlotte.jpg|thumb|left|La Gerlotte de l'association La vie,autrement ...]]&lt;br /&gt;
&lt;br /&gt;
Les jeux vidéos se sont largement répandus dans le monde aujourd'hui et sont présents sur toutes les plates-formes : téléphones portables, consoles, ordinateur, tablettes. Ils offrent une expérience ludique et divertissante aux utilisateurs au nombre grandissant. Cependant jouer à un jeux vidéos demande de la pratique : il faut manipuler la souris ou le joystick avec brio tandis que la seconde main parcourt le clavier, les manettes de jeux de plus en plus complexes où nos doigts virevoltent en même temps sur les milliers de boutons. Tout cela requiert une grande concentration et des heures  d'apprentissage non négligeables. &lt;br /&gt;
&lt;br /&gt;
le sujet est d'autant plus difficile pour les personnes handicapées qui souhaitent s’amuser sur un jeu vidéo actuel. Quels sont les moyens qu’un accidenté lourd ou un individu handicapé depuis sa naissance, pourrait utiliser pour se détendre sur un jeu ? &lt;br /&gt;
En fonction de la nature du handicap, des solutions diverses et variées existent.&lt;br /&gt;
&lt;br /&gt;
La Gerlotte, est une maison d’accueil spécialisée de l'association La vie, autrement ..., qui accueille des adultes polyhandicapés dépendants dans tous les actes de la vie quotidienne, à l’exclusion des personnes présentant un gros trouble du comportement ou de la personne.&lt;br /&gt;
&lt;br /&gt;
Nous avons pour projet de permettre l'accessibilité de jeux vidéos aux personnes handicapées de l'établissement et de leur apporter ainsi ce moyen de divertissement.&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
Permettre à des personnes handicapées l'accès aux jeux vidéos.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Afin de rendre accessible des activités ludiques deux approches sont possibles, une adaptation ou une création des périphériques de jeux (manettes, ...) ou une modification de système existants en les rendant plus interactifs. Les enfants et adultes en situation de polyhandicap sont dans l'incapacité physique de manipuler les télécommandes et joysticks prévus avec les consoles de jeux vidéos classiques (wii, nintendo,..). Le projet est de pouvoir leur rendre accessibles ces moyens de se divertir en trouvant des adaptations (type contacteur) correspondant à leurs capacités. Quelques pistes envisagées (non exclusives) : une commande simple BCI (Brain Computer Interface) compatible avec les logiciels existants fonctionnant en mode défilement, ou encore un contacteur au clignement intentionnel de paupière enregistré par webcam...&lt;br /&gt;
Ce projet sera effectué à destination des habitants de la maison d'accueil spécialisée de La Gerlotte de Marcq-en-Barœul. Cette résidence accueille des personnes adultes polyhandicapées dépendantes.&lt;br /&gt;
&lt;br /&gt;
===Étapes du projet===&lt;br /&gt;
* Rencontre avec le personnel de la Gerlotte et établissement du cahier des charges et des attentes&lt;br /&gt;
* &amp;quot;Clôture&amp;quot; du cahier des charges et début de l'élaboration des adaptations convenues&lt;br /&gt;
* Tests des adaptations établies avec les résidents de la Gerlotte, et prise en compte des retours&lt;br /&gt;
&lt;br /&gt;
===Choix techniques : matériel et logiciel===&lt;br /&gt;
* Arduino Leonardo [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 13/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Sparkfun Analog Joystick [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 2 boutons poussoirs [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 1 (du 28/09/2015 au 04/10/2015)===&lt;br /&gt;
Rendez-vous à la Gerlotte du mercredi 30/09/2015 :&lt;br /&gt;
* Rencontre avec l'animateur Xavier Hantson et visite de l'établissement la Gerlotte&lt;br /&gt;
* Rencontre avec les résidents, présentation des infrastructures en place (adaptations, appareillages), et aperçu des différents handicaps pris en charge&lt;br /&gt;
* Réunion avec le directeur David Desmulier, l'ergothérapeute Thierry Danigo et M. Hantson. Brainstorming sur les différents moyens pour l'accessibilité aux jeux vidéos : adaptation, modification de manettes, OneSwitch, support handsfree, reconnaissance oculaire (Eye Tracking Tobii avec le SDK, tools et hardware pour 99 euros), le choix de l'eye track inclurait la création d'un jeux vidéo adapté.&lt;br /&gt;
* Accord pour le prochain rendez-vous au 14/10/2015, où un premier choix d'adaptation devra être fait afin de commencer les premiers travaux&lt;br /&gt;
&lt;br /&gt;
Après discussions avec M. Vantroys et M. Grisoni, la reconnaissance oculaire n'est pas un choix que nous conseillent nos professeurs et la création de jeux vidéos serait un travail beaucoup trop laborieux. À ce jour, nous restons dans l'idée de modification de manettes, périphériques  pour pouvoir jouer à des jeux déjà existant. Nous poursuivons nos recherches pour approfondir le sujet ou pour trouver d'autres possibilités.&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 (du 05/10/2015 au 11/10/2015)===&lt;br /&gt;
Recherche bibliographique sur les solutions et logiciels existants permettant l’accessibilité aux jeux vidéos pour les personnes handicapées (cf [http://www.capgame.fr CapGame]) :&lt;br /&gt;
* GlovePie : commande des jeux par la voix&lt;br /&gt;
* AltController : des boites virtuels simulent des touches du clavier lors du passage ou clic de la souris&lt;br /&gt;
* Kinesic Mouse : contrôle des jeux par mouvements de la tête, sourcils, lèvres, etc&lt;br /&gt;
* UnoJoy : librairie Arduino permettant à partir d'une manette existante ou crée, de la rendre compatible sur Windows/Mac/PS3&lt;br /&gt;
* Emulation d'un clavier/souris sur Windows à l'aide d'une plate-forme de développement SMT32F4 ou d'un Arduino Leonardo. Création d'une manette de jeux avec des boutons/joysticks de bornes d'arcades.&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 (du 12/10/2015 au 18/10/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 14/10/2015 en présence de M. Xavier Hantson, Thierry Danigo, Martin Nicolas, Laurent Grisoni.&lt;br /&gt;
&lt;br /&gt;
Proposition et Brainstorming sur les différentes solutions envisagés :&lt;br /&gt;
* adaptation d'une manette Wii à partir d'un projet déjà commencé l'an dernier ([https://projets-ima.polytech-lille.net:40079/mediawiki/index.php?title=P35_Hack-a-Wii_:_Emulation_de_wiimote_pour_rendre_la_Wii_accessibles_aux_personnes_handicap%C3%A9es lien]), solution orientée pour la console Nintendo Wii&lt;br /&gt;
* création d'une manette adaptable à partir d'un microcontrôleur de type Arduino par exemple, orientée plutôt pour les jeux PC.&lt;br /&gt;
* intégration de jeux vidéos devenus libres, jeux rétros de l'époque Atari, sur les systèmes Rapsberry Pi ou Banana Pi&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée au mercredi 4/11/2015 à 14h30 à La Gerlotte. Pour cette date, il a été convenu de créer un Google Docs ouvert à tous les encadrants du projet permettant de répertorier tous les liens des pistes de recherches abordées et des solutions déjà existantes en France ou à l'étranger. Lors de ce rendez-vous il est prévu d'observer l'utilisation d'un PC par certains résidents.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 (du 19/10/2015 au 25/10/2015)===&lt;br /&gt;
Durant cette semaine, nous avons discuté avec M. Vantroys sur la manière dont nous pourrions présenter un prototype du système imaginé. Il se présenterait sous la forme d'une simple manette constituée d'un joystick et de quelques boutons poussoirs, le tout contrôlé par un Arduino Leonardo. Ainsi, on pourrait présenter au personnel de la Gerlotte une simple manette permettant de jouer à des jeux émulés simples, manette qui serait algorithmiquement facile à paramétrer, et donc faire une démonstration de son fonctionnement.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les prochains jours sera de mettre en place et de tester cette manette.&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 Vacances de la Toussaint (du 26/10/2015 au 01/11/2015)===&lt;br /&gt;
Création d'une manette de jeux simple à l'aide d'un Arduino Leonardo.&lt;br /&gt;
&lt;br /&gt;
Le Leonardo a l'avantage d'être reconnu directement sur l'ordinateur comme un clavier/souris. Les classes Keyboard et Mouse permettent d'émuler ces périphériques d'entrées.&lt;br /&gt;
&lt;br /&gt;
Cependant pour pouvoir être reconnu en tant que manette de jeux il faut modifier la librairie standard USB et le descripteur HID.&lt;br /&gt;
&lt;br /&gt;
Ce prototype dispose d'un joystick analogique 2 axes et de 6 boutons poussoirs (1 bouton est inclus avec le joystick). Il est optimisé pour jouer à des jeux de GameBoy Advance ou rétros (SuperNES, Master System, Gameboy ...) dont les manettes ne disposent pas énormément de touches.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:kirby-nightmare-in-dream-land-gba-1.jpg|left|thumb|250px|Test de Kirby Nightmare in Dreamland sur GBA fonctionnel]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickLeonardo.jpg|thumb|center|300px|Arduino Leonardo comme manette de jeux]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 (du 02/11/2015 au 08/11/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 04/11/2015 en présence de M. Martin Nicolas:&lt;br /&gt;
* découverte de divers logiciels et matériels à disposition des résidents de La Gerlotte : émulateur de souris avec contacteurs (Mouse Mover), système joystick/clic gauche, logiciel de gestion de la souris à partir des mouvements du visage par webcam.&lt;br /&gt;
* observation de l'utilisation d'un ordinateur par un résident (Bertrand), notamment sur un jeu de fléchettes à partir d'un joystick et d'un bouton-clic. Bertrand comprend et agit normalement sur le jeu cependant il lui est difficile de coordonner plusieurs paramètres en même temps tels que la gestion de force et la précision du tir.&lt;br /&gt;
* présentation du premier prototype développé : la manette de jeux Arduino Leonardo. Démonstration sur un jeux de Game Boy Advance (Super Mario World) à partir du système d'émulation RomStation.&lt;br /&gt;
* discussion sur les diverses améliorations que l'on pourrait apporter sur le prototype : création d'une interface graphique permettant la gestion des fonctions implémentées dans la carte Arduino (gestion des touches et des options), automatisation des touches de manière physique ou algorithmique, éclatement des directions du joystick sur plusieurs contacteurs, adaptation jack-pin arduino afin d'utiliser les boutons switch de type Orby.&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée pour le mercredi 25/11/2015 à 14h30 à La Gerlotte. Pour cette date, nous poursuivrons nos recherches afin d'apporter des améliorations du prototype.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 (du 09/11/2015 au 15/11/2015)===&lt;br /&gt;
Rendez-vous au centre au centre CRNT de l'association APF (Association des Paralysés de France) avec M. Danigo. Nous avons récupéré quelques contacteurs, le standard de la connectique dans le domaine du handicap est le jack (principalement 3.5mm mono). Pour pouvoir les utiliser sur notre dispositif il faut utiliser des jacks femelles 3.5mm mono. Après présentation du prototype nous avons discuté de l'ergonomie du système. Il serait judicieux de construire un boitier où l'on brancherait les contacteurs dans les jacks femelles. Réaliser un PCB et ajouter des mousses à l'intérieur pour que le système soit plus solide.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:button.png|center|thumb|180px|Contacteur Jelly Bean Twist]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 (du 16/11/2015 au 22/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype par les jacks femelles 3.5mm mono pour pouvoir utiliser les contacteurs, et ajout d'interrupteurs à levier pour automatiser une touche.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 (du 22/11/2015 au 29/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 25/11/2015 en présence de M. Martin Nicolas, M.Xavier Hantson et M.Thierry Danigo:&lt;br /&gt;
* Présentation du prototype et des améliorations qui ont été apportées&lt;br /&gt;
* Discussion sur les prochaines modifications:&lt;br /&gt;
** Éclater le joystick sur plusieurs contacteurs tout en conservant le joystick (dans le but de rendre le système le plus accessible possible). Si le joystick est éclaté sous la forme de 4 boutons directionnels, il faudra penser à annuler la commande lorsque 2 directions contraires sont pressées (haut-bas et droite-gauche). &lt;br /&gt;
** Gérer l'automatisation d'une touche de façon périodique et non tout-ou-rien, fréquence qui devra être ajustable par potentiomètre par exemple.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 06/01/2016 à 14h30. Pour cette date, nous travaillerons et progresserons sur les axes d'amélioration qui nous ont été proposés, et nous ferons le point sur la soutenance de mi-parcours.&lt;br /&gt;
&lt;br /&gt;
Réunion à l'IRCICA du jeudi 26/11/2015 en présence de M. Laurent Grisoni, M.Samuel Desgrande et Mme.Patricia Plenacoste:&lt;br /&gt;
* Présentation du projet à l'Institut Médico-Éducatif Les Papillons Blancs. Nous avons observé une séquence vidéo dans laquelle un enfant handicapé mental et moteur joue à un jeu vidéo de tir sur une cible à partir d'une Kinect. La Kinect va détecter une accélération dans une zone globale et la difficulté consiste à séparer les mouvements parasites involontaires de l'enfant au geste décisif et intentionnel du lancer.&lt;br /&gt;
* Présentation de notre projet à La Gerlotte et du prototype de manette de jeux. L'idée d'une interface graphique permettant un mapping des commandes de la manette Arduino est envisageable. L'on pourrait configurer les touches afin qu'elles émulent l'appui de 2 touches successives (ex: saut + avancé). &lt;br /&gt;
* Le but de cette réunion serait d'envisager la fusion des 2 projets (Papillons Blancs et Gerlotte) ou l'échange des systèmes afin que dans chaque établissement puisse profiter des réalisations.&lt;br /&gt;
* Proposer à La Gerlotte de tester et s'approprier le prototype pendant 2-3 semaines afin d'avoir un feedback utilisateur.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 (du 30/11/2015 au 06/12/2015)===&lt;br /&gt;
Test du joystick HKD-FW22 pour fauteuil roulant switch 4 axes à connectique serre-fils (screw terminal). Un des interrupteurs est usé et réagit d'une mauvaise façon.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickScrew.jpg|center|thumb|180px|Joystick 4 Axis Screw Terminal]]&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype: automatisation de touches et réglage de la fréquence par des potentiomètres. Chaque potentiomètre est relié à un port analogique et va délivrer une tension. En fonction de la valeur de cette dernière, la période entre 2 appuis successifs sera défini. Par simplicité la fonction de calcul de la période est f(x) = 2 * x. La période maximale est de 2s, et la période minimale de 0s ce qui correspond à un appui constant.&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 (du 07/12/2015 au 13/12/2015)===&lt;br /&gt;
Étude des logiciels JoyMouse et JoyToKey avec une manette de jeux. &lt;br /&gt;
JoyMouse se concentre sur l'émulation d'une souris avec une manette. L'accélération, la sensibilité, la vitesse ainsi que les clics sont interfaçables facilement.&lt;br /&gt;
JoyToKey permet égalemment d'émuler les fonctions de la souris à partir d'une manette mais également simuler des touches claviers. L'interface est beaucoup plus complexes, avec des profils utilisateurs et il est possible d'automatiser une action.&lt;br /&gt;
&lt;br /&gt;
Implémentation Joystick-pad avec boutons. Fonctionne en parallèle du joystick analogique.&lt;br /&gt;
&lt;br /&gt;
Avancement du rapport.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 (du 14/12/2015 au 20/12/2015)===&lt;br /&gt;
&lt;br /&gt;
Finalisation du rapport et préparation de la soutenance mi-parcours.&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 (du 04/01/2016 au 10/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 06/01/2016 en présence de M. Martin Nicolas, Maxime (jeune en situation de handicap suivi par le SAVS Liévin) et M. Benoît Barbet:&lt;br /&gt;
* Maxime nous a fait part de son vécu et de ses attentes concernant son utilisation des jeux-vidéo. Nous avons ainsi pu lui présenter le fonctionnement de notre projet.&lt;br /&gt;
* Pour l'utilisation de son ordinateur, Maxime utilise un trackball qu'il commande au pied. Nous allons donc réfléchir à la possibilité d'intégrer un trackball à notre système par USB. Notre prototype va intégrer un port USB qui permettra d'utiliser tout types de périphériques de commandes tels qu'un trackball, une souris, un joystick USB, une clé Bluetooth.&lt;br /&gt;
* Nous avons aussi discuté de l'interface graphique qui permettrait de gérer les différentes combinaisons de commandes possibles. Nous travaillerons sur ce point dans les jours à venir et nous analyserons si une interface fonctionnelle est envisageable.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 20/01/2016 à 14h30. Pour cette date, nous poursuivrons les recherches sur les points évoqués ci-dessus, et nous rendrons notre prototype utilisable afin qu'il puisse être testé par quelques résidents et par Maxime.&lt;br /&gt;
&lt;br /&gt;
Finalisation des fonctionnalités du prototype et de son boitier. Le prototype sera mis à disposition de La Gerlotte le 20/01/2016.&lt;br /&gt;
&lt;br /&gt;
===Semaine 14 (du 11/01/2016 au 17/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Dans le but d'intégrer un port USB à notre prototype, nous utilisons un Raspbery Pi 2. Elle comprend 4 port USB, la distribution Linux que l'on utilise est Raspbian et nous connectons la Raspberry à l'Arduino Leonardo au travers du port série. L'on branche une souris sur l'un des ports USB et un script C va récupérer les événements de la souris (les coordonnées x et y) dans le dossier /dev/input/mice. Les données sont alors envoyés via le port série vers le Leonardo qui va les traduire en coordonnées du joystick. À l'aide de ce système il est alors possible de contrôler les déplacements de son personnage dans un jeux vidéos avec une souris ou un trackball.&lt;br /&gt;
&lt;br /&gt;
===Semaine 15 (du 18/01/2016 au 24/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Sixième réunion à La Gerlotte le mercredi 20/01/2016 en présence de MM. Martin Nicolas, Thierry Danigo.&lt;br /&gt;
&lt;br /&gt;
Nous avons présenté notre prototype prêt à être testé. Il a notamment été essayé par deux résidents de la Gerlotte, et par Maxime du SAVS Liévin, que nous avions rencontré lors de la réunion précédente.&lt;br /&gt;
&lt;br /&gt;
Nous avons connecté 4 contacteurs sur le prototype (2 touches de direction droite/gauche et 2 touches d'action), et les testeurs ont essayé le prototype sur un jeu simple : Tetris. Le test a été plutôt concluant, les utilisateurs arrivaient à utiliser les différents contacteurs avec plus ou moins de facilité. Aussi, nous avons essayé d'intégrer le trackball de Maxime dans notre système, et en retouchant la sensibilité du trackball, nous nous sommes aperçu que le trackball était parfaitement intégrable dans la manette.&lt;br /&gt;
&lt;br /&gt;
Nous avons laissé le prototype à La Gerlotte, afin qu'il puisse être testé &amp;quot;dans le quotidien&amp;quot; des résidents, et avoir un retour sur une telle utilisation.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au 03/02/2016 à 14h30. Pour cette date, nous poursuivrons notre travail sur l'interface graphique de gestion de commandes, et nous réfléchirons sur le design final du système (style du coffret), et sur la conception de plaques électroniques pour le système final.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:protoManetteTupe.jpg|thumb|center|300px|Prototype de manette de jeux prêt à l'emploi]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 16 (du 25/01/2016 au 31/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous avons continué l'interface graphique de gestion de commandes. Nous utilisons Processing qui est un environnement de développement libre, multi-plateforme, il permet de programmer en Java et de faire du prototypage rapide. &lt;br /&gt;
&lt;br /&gt;
L'interface graphique réalisé à l'aide de la librairie G4P, est un interface basique qui va permettre d'automatiser chaque bouton du joystick à l'aide de potentiomètres virtuels, mais également de pouvoir effectuer des combinaisons de touches. Des voyants indiquent l'appuie des boutons du joystick sur l'interface. &lt;br /&gt;
&lt;br /&gt;
Concernant la communication de Processing à Arduino nous restons sur le classique envoie-réception série de mots-clés qui vont permettent de modifier le comportement de l'Arduino et ainsi pouvoir remapper les commandes ou les automatiser.&lt;br /&gt;
&lt;br /&gt;
===Semaine 17 (du 01/02/2016 au 07/02/2016)===&lt;br /&gt;
&lt;br /&gt;
Compte-rendu de la réunion du mercredi 03/02/2016 à La Gerlotte :&lt;br /&gt;
&lt;br /&gt;
*Retours sur l'utilisation du proto de manette de jeux que nous avons mis à disposition de La Gerlotte durant 2 semaines. Retours positifs et encourageant, utilisation sur des jeux simples tels que Tetris. Utilisation de 3 contacteurs pour les commandes Gauche, Droite et Rotation du bloc. Manipulation autonome des résidents ou aide d'un ergo pour jouer au jeu (au cas par cas des résidents).&lt;br /&gt;
*Partage des commandes entre 2 utilisateurs, permet d'apporter au système une dimension sociale et conviviale. Vincent notamment maitrise parfaitement les commandes de Tetris et a pu jouer pendant plus de 1h sur le jeu de façon autonome. &lt;br /&gt;
*Les jeux nécessitent d'être basiques et d'avoir un arrière plan fixe (tetris, pac-man, casse-brique, jeux de combats en 2D par exemple) car la plupart des résidents sont épileptiques. Si l'on prend un jeu de course simple (par ex mario kart) le 1er plan (voiture et perso, route) et l'arrière plan (décor, paysage) changent en permanence, ce qui peut engendrer une sensation de vertige à un épileptique et causer une crise. Notre système offre beaucoup de possibilités d'adaptation pour les résidents. &lt;br /&gt;
*Une salle multimédia musique et vidéo va être aménagée à La Gerlotte, la manette de jeux sera mise à disposition dans cette salle et des activités de jeux vidéos seront prévues telles que des tournois entre résidents, jeux en coopération, et permettra aux résidents de s'épanouir tout en améliorant autant leurs capacités motrices, leurs réflexes et ainsi les soigner.&lt;br /&gt;
&lt;br /&gt;
Nous avons décrit également l'avancement sur l'interface graphique pour paramétrer l'automatisation des touches et des combinaisons de touches. Cette interface apporterait plus de possibilités d'adaptation au système. Quelques soucis avec la communication de l'interface avec l'Arduino et quelques soucis à intégrer les fonctions de communication sans modifier toute l'architecture et le code en place sur l'Arduino.&lt;br /&gt;
Nous nous sommes mis d'accord sur le fait que 2 boitiers seront réalisés à l'aide de l'imprimante 3D : un boitier pour le système central (Arduino et RaspberryPi) et un boitier pour le joystick et les commandes de direction. Les PCB seront mis en place, le tout pour avoir un produit fini et stable. Ce dernier sera mis à disposition de La Gerlotte.&lt;br /&gt;
&lt;br /&gt;
2 autres manettes supplémentaires seront réalisé, pour Maxime de Liévin et peut-être Le Hameau ?&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée le mercredi 17/02/2016 14h30 où il sera prévu de tester le produit final, et égalemment de prendre une vidéo d'utilisation de la manette par un/des résident(s).&lt;br /&gt;
&lt;br /&gt;
===Semaine 18 (du 08/02/2016 au 14/02/2016)===&lt;br /&gt;
&lt;br /&gt;
=====PCB shield arduino=====&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de réaliser un circuit imprimé afin de créer un shield (bouclier) pour la carte Arduino. Là-dessus, on pourra souder directement 8 prises jack, les 2 potentiomètres, les données transmises en série par la Raspberry Pi, les 4 directions données par le joystick, ainsi que les broches qui seront connectées à l'Arduino. Les pistes sont imprimées sur la face inférieure, et un plan de masse est aussi créé pour relier tous les points de masse, et ainsi éviter de devoir créer des pistes sur une deuxième face. Les prises jack sont reliées aux entrées digitales, les potentiomètres et les données du joystick sont liés aux entrées analogiques, et la Raspberry Pi est reliée au port Rx de l'Arduino.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IMA5_P33_Bailet_Zeggai_PCB_Altium.png|left|thumb|200px|Schéma du PCB intégré à la manette]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IMA5_P33_Bailet_Zeggai_PCB_imprime.jpg|center|thumb|200px|Circuit imprimé obtenu après conception]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Boîtiers de la manette=====&lt;br /&gt;
Nous abandonnons l'idée d'utiliser l'imprimante 3D pour réaliser les boîtiers. En effet l'impression aurait été trop longue (&amp;gt;15h) pour un résultat qui n'aurait pas forcément été solide et optimale.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors tourné pour la découpe laser disponible au Fabricarium et de réaliser des boîtiers en bois. Le processus est rapide (moins de 10 min) et le rendu est assez esthétique. On crée la boite à partir d'un site de [http://carrefour-numerique.cite-sciences.fr/fablab/wiki/doku.php?id=projets:generateur_de_boites génération de boîtes]. Cela va générer un fichier SVG et à l'aide du logiciel Inkscape on ajoute les différents éléments à intégrer: trous, gravures. Plus d'information concernant concernant la découpe laser au Fabricarium disponible [http://www.fabricarium.fr/mediawiki-1.23.5/index.php?title=Speedy_400 ici].&lt;br /&gt;
&lt;br /&gt;
[[Fichier:decoupeJoystick.png|left|thumb|200px|SVG du boîtier du joystick]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:decoupeArduinoRasp.png|center|thumb|200px|SVG du boîtier du système central (Arduino &amp;amp; Raspberry Pi 2)]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Interface graphique de la manette=====&lt;br /&gt;
Nous avons finalisé l'interface graphique de la manette qui permet de remapper les commandes et de réaliser des combinaisons de touches.&lt;br /&gt;
&lt;br /&gt;
En cliquant sur le bouton &amp;quot;Config&amp;quot; cela ouvre une fenêtre qui va permettre de remapper les boutons de la manette.&lt;br /&gt;
Il est possible d'affecter 2 boutons par jack, avec un intervalle de temps les séparant et également configurable.&lt;br /&gt;
B1 correspond au 1er bouton du jack, et B2 le 2ème si affecté.&lt;br /&gt;
Le bouton &amp;quot;Défaut&amp;quot; dans la fenêtre de configuration remet le jack a l'état initial.&lt;br /&gt;
&lt;br /&gt;
L'interface communique avec l'Arduino via le port série pour envoyer des données. Lors de l'appuie sur le bouton &amp;quot;Config&amp;quot; d'un jack, une fenêtre s'ouvre et la manette est désactivée tant que la configuration n'est pas terminée (afin d'éviter d'éventuels bugs). Les données envoyés à l'Arduino sous forme de chaîne de caractère sont : &lt;br /&gt;
* ID du jack à configurer&lt;br /&gt;
* Numéro du 1er bouton à affecter&lt;br /&gt;
et si combinaison de touches, seront envoyés en plus :&lt;br /&gt;
* Numéro du 2ème bouton&lt;br /&gt;
* Intervalle de temps (en ms) séparant le 1er et 2ème bouton&lt;br /&gt;
En cliquant sur &amp;quot;Ok&amp;quot; la nouvelle configuration du jack est envoyée et la manette est re-activée.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mappingBoutonsGUI.png|left|thumb|200px|Interface graphique de la manette]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:configWindowGUI.png|center|thumb|200px|Fenêtre de configuration des jacks]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Partie Arduino=====&lt;br /&gt;
Du côté de l'Arduino, nous avons adapté le code pour pouvoir gérer des combinaisons de touches. On définit une matrice 8x2 de boutons (8 jacks et 2 boutons potentiels affectés par jack). Lors d'un appuie sur un contacteur, si le 2ème bouton n'est pas affecté (initialement à la valeur 13) la manette enverra que la 1ère commande. Si la valeur est différente, la manette enverra le 1er et le 2eme bouton avec un intervalle de temps configurable sur l'interface graphique. &lt;br /&gt;
&lt;br /&gt;
Une fonction va scruter le port série USB de l'Arduino pour voir si des données sont disponibles. Sur ce port l'on ne reçoit que des données de configuration. On adapte alors la matrice de boutons en fonction des données reçues et on ré-active la manette à la fin de chaque configuration.&lt;br /&gt;
&lt;br /&gt;
===Semaine 19 (du 15/02/2016 au 21/02/2016)===&lt;br /&gt;
&lt;br /&gt;
*Montage du système sur le boitier.&lt;br /&gt;
&lt;br /&gt;
*Soudage des composants sur le PCB (broches pour Arduino, prises jack, potentiomètres, données directionnelles)&lt;br /&gt;
&lt;br /&gt;
*Avancement du rapport&lt;br /&gt;
&lt;br /&gt;
*Réunion à La Gerlotte du 17/02/2016 :&lt;br /&gt;
&lt;br /&gt;
Nous avons présenté la version quasi finalisée de la manette, qui est maintenant constituée de deux boîtiers : un boitier directionnel (joystick et contacteurs directionnel), et un boitier central (Raspberry Pi, Arduino et contacteurs d'action). Deux résidents ont testé la manette, et les tests on été plutôt positifs : l'utilisation de la manette a été plutôt bien assimilée. Nous avons pu les filmer pendant qu'ils jouaient.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi présenté une interface graphique fonctionnelle. Celle-ci permet la combinaison de 2 touches d'action sur un contacteur (exemple : tirer + sauter).&lt;br /&gt;
&lt;br /&gt;
Notre prochain objectif est de finaliser complètement le système, et si possible produire une deuxième manette...&lt;br /&gt;
&lt;br /&gt;
== Fichiers Rendus ==&lt;br /&gt;
Dépôt Github du projet&lt;br /&gt;
&lt;br /&gt;
Rapport intermédiaire du projet : [[Fichier:PFE_IMA5_Rapport_intermediaire_Bailet_Zeggai.pdf]]&lt;br /&gt;
&lt;br /&gt;
Rapport final du projet : [[Fichier:PFE_IMA5_P33_Rapport_final_Bailet_Zeggai.pdf]]&lt;br /&gt;
&lt;br /&gt;
Archive du code source du projet : A venir...&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:PFE_IMA5_P33_Rapport_final_Bailet_Zeggai.pdf&amp;diff=27584</id>
		<title>Fichier:PFE IMA5 P33 Rapport final Bailet Zeggai.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:PFE_IMA5_P33_Rapport_final_Bailet_Zeggai.pdf&amp;diff=27584"/>
				<updated>2016-02-22T23:30:15Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=27583</id>
		<title>P33 Réalisations en faveur de l'accessibilité de jeux vidéos</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=27583"/>
				<updated>2016-02-22T23:29:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Semaine 18 (du 08/02/2016 au 14/02/2016) */&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;
==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:logo_la_gerlotte.jpg|thumb|left|La Gerlotte de l'association La vie,autrement ...]]&lt;br /&gt;
&lt;br /&gt;
Les jeux vidéos se sont largement répandus dans le monde aujourd'hui et sont présents sur toutes les plates-formes : téléphones portables, consoles, ordinateur, tablettes. Ils offrent une expérience ludique et divertissante aux utilisateurs au nombre grandissant. Cependant jouer à un jeux vidéos demande de la pratique : il faut manipuler la souris ou le joystick avec brio tandis que la seconde main parcourt le clavier, les manettes de jeux de plus en plus complexes où nos doigts virevoltent en même temps sur les milliers de boutons. Tout cela requiert une grande concentration et des heures  d'apprentissage non négligeables. &lt;br /&gt;
&lt;br /&gt;
le sujet est d'autant plus difficile pour les personnes handicapées qui souhaitent s’amuser sur un jeu vidéo actuel. Quels sont les moyens qu’un accidenté lourd ou un individu handicapé depuis sa naissance, pourrait utiliser pour se détendre sur un jeu ? &lt;br /&gt;
En fonction de la nature du handicap, des solutions diverses et variées existent.&lt;br /&gt;
&lt;br /&gt;
La Gerlotte, est une maison d’accueil spécialisée de l'association La vie, autrement ..., qui accueille des adultes polyhandicapés dépendants dans tous les actes de la vie quotidienne, à l’exclusion des personnes présentant un gros trouble du comportement ou de la personne.&lt;br /&gt;
&lt;br /&gt;
Nous avons pour projet de permettre l'accessibilité de jeux vidéos aux personnes handicapées de l'établissement et de leur apporter ainsi ce moyen de divertissement.&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
Permettre à des personnes handicapées l'accès aux jeux vidéos.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Afin de rendre accessible des activités ludiques deux approches sont possibles, une adaptation ou une création des périphériques de jeux (manettes, ...) ou une modification de système existants en les rendant plus interactifs. Les enfants et adultes en situation de polyhandicap sont dans l'incapacité physique de manipuler les télécommandes et joysticks prévus avec les consoles de jeux vidéos classiques (wii, nintendo,..). Le projet est de pouvoir leur rendre accessibles ces moyens de se divertir en trouvant des adaptations (type contacteur) correspondant à leurs capacités. Quelques pistes envisagées (non exclusives) : une commande simple BCI (Brain Computer Interface) compatible avec les logiciels existants fonctionnant en mode défilement, ou encore un contacteur au clignement intentionnel de paupière enregistré par webcam...&lt;br /&gt;
Ce projet sera effectué à destination des habitants de la maison d'accueil spécialisée de La Gerlotte de Marcq-en-Barœul. Cette résidence accueille des personnes adultes polyhandicapées dépendantes.&lt;br /&gt;
&lt;br /&gt;
===Étapes du projet===&lt;br /&gt;
* Rencontre avec le personnel de la Gerlotte et établissement du cahier des charges et des attentes&lt;br /&gt;
* &amp;quot;Clôture&amp;quot; du cahier des charges et début de l'élaboration des adaptations convenues&lt;br /&gt;
* Tests des adaptations établies avec les résidents de la Gerlotte, et prise en compte des retours&lt;br /&gt;
&lt;br /&gt;
===Choix techniques : matériel et logiciel===&lt;br /&gt;
* Arduino Leonardo [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 13/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Sparkfun Analog Joystick [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 2 boutons poussoirs [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 1 (du 28/09/2015 au 04/10/2015)===&lt;br /&gt;
Rendez-vous à la Gerlotte du mercredi 30/09/2015 :&lt;br /&gt;
* Rencontre avec l'animateur Xavier Hantson et visite de l'établissement la Gerlotte&lt;br /&gt;
* Rencontre avec les résidents, présentation des infrastructures en place (adaptations, appareillages), et aperçu des différents handicaps pris en charge&lt;br /&gt;
* Réunion avec le directeur David Desmulier, l'ergothérapeute Thierry Danigo et M. Hantson. Brainstorming sur les différents moyens pour l'accessibilité aux jeux vidéos : adaptation, modification de manettes, OneSwitch, support handsfree, reconnaissance oculaire (Eye Tracking Tobii avec le SDK, tools et hardware pour 99 euros), le choix de l'eye track inclurait la création d'un jeux vidéo adapté.&lt;br /&gt;
* Accord pour le prochain rendez-vous au 14/10/2015, où un premier choix d'adaptation devra être fait afin de commencer les premiers travaux&lt;br /&gt;
&lt;br /&gt;
Après discussions avec M. Vantroys et M. Grisoni, la reconnaissance oculaire n'est pas un choix que nous conseillent nos professeurs et la création de jeux vidéos serait un travail beaucoup trop laborieux. À ce jour, nous restons dans l'idée de modification de manettes, périphériques  pour pouvoir jouer à des jeux déjà existant. Nous poursuivons nos recherches pour approfondir le sujet ou pour trouver d'autres possibilités.&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 (du 05/10/2015 au 11/10/2015)===&lt;br /&gt;
Recherche bibliographique sur les solutions et logiciels existants permettant l’accessibilité aux jeux vidéos pour les personnes handicapées (cf [http://www.capgame.fr CapGame]) :&lt;br /&gt;
* GlovePie : commande des jeux par la voix&lt;br /&gt;
* AltController : des boites virtuels simulent des touches du clavier lors du passage ou clic de la souris&lt;br /&gt;
* Kinesic Mouse : contrôle des jeux par mouvements de la tête, sourcils, lèvres, etc&lt;br /&gt;
* UnoJoy : librairie Arduino permettant à partir d'une manette existante ou crée, de la rendre compatible sur Windows/Mac/PS3&lt;br /&gt;
* Emulation d'un clavier/souris sur Windows à l'aide d'une plate-forme de développement SMT32F4 ou d'un Arduino Leonardo. Création d'une manette de jeux avec des boutons/joysticks de bornes d'arcades.&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 (du 12/10/2015 au 18/10/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 14/10/2015 en présence de M. Xavier Hantson, Thierry Danigo, Martin Nicolas, Laurent Grisoni.&lt;br /&gt;
&lt;br /&gt;
Proposition et Brainstorming sur les différentes solutions envisagés :&lt;br /&gt;
* adaptation d'une manette Wii à partir d'un projet déjà commencé l'an dernier ([https://projets-ima.polytech-lille.net:40079/mediawiki/index.php?title=P35_Hack-a-Wii_:_Emulation_de_wiimote_pour_rendre_la_Wii_accessibles_aux_personnes_handicap%C3%A9es lien]), solution orientée pour la console Nintendo Wii&lt;br /&gt;
* création d'une manette adaptable à partir d'un microcontrôleur de type Arduino par exemple, orientée plutôt pour les jeux PC.&lt;br /&gt;
* intégration de jeux vidéos devenus libres, jeux rétros de l'époque Atari, sur les systèmes Rapsberry Pi ou Banana Pi&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée au mercredi 4/11/2015 à 14h30 à La Gerlotte. Pour cette date, il a été convenu de créer un Google Docs ouvert à tous les encadrants du projet permettant de répertorier tous les liens des pistes de recherches abordées et des solutions déjà existantes en France ou à l'étranger. Lors de ce rendez-vous il est prévu d'observer l'utilisation d'un PC par certains résidents.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 (du 19/10/2015 au 25/10/2015)===&lt;br /&gt;
Durant cette semaine, nous avons discuté avec M. Vantroys sur la manière dont nous pourrions présenter un prototype du système imaginé. Il se présenterait sous la forme d'une simple manette constituée d'un joystick et de quelques boutons poussoirs, le tout contrôlé par un Arduino Leonardo. Ainsi, on pourrait présenter au personnel de la Gerlotte une simple manette permettant de jouer à des jeux émulés simples, manette qui serait algorithmiquement facile à paramétrer, et donc faire une démonstration de son fonctionnement.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les prochains jours sera de mettre en place et de tester cette manette.&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 Vacances de la Toussaint (du 26/10/2015 au 01/11/2015)===&lt;br /&gt;
Création d'une manette de jeux simple à l'aide d'un Arduino Leonardo.&lt;br /&gt;
&lt;br /&gt;
Le Leonardo a l'avantage d'être reconnu directement sur l'ordinateur comme un clavier/souris. Les classes Keyboard et Mouse permettent d'émuler ces périphériques d'entrées.&lt;br /&gt;
&lt;br /&gt;
Cependant pour pouvoir être reconnu en tant que manette de jeux il faut modifier la librairie standard USB et le descripteur HID.&lt;br /&gt;
&lt;br /&gt;
Ce prototype dispose d'un joystick analogique 2 axes et de 6 boutons poussoirs (1 bouton est inclus avec le joystick). Il est optimisé pour jouer à des jeux de GameBoy Advance ou rétros (SuperNES, Master System, Gameboy ...) dont les manettes ne disposent pas énormément de touches.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:kirby-nightmare-in-dream-land-gba-1.jpg|left|thumb|250px|Test de Kirby Nightmare in Dreamland sur GBA fonctionnel]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickLeonardo.jpg|thumb|center|300px|Arduino Leonardo comme manette de jeux]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 (du 02/11/2015 au 08/11/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 04/11/2015 en présence de M. Martin Nicolas:&lt;br /&gt;
* découverte de divers logiciels et matériels à disposition des résidents de La Gerlotte : émulateur de souris avec contacteurs (Mouse Mover), système joystick/clic gauche, logiciel de gestion de la souris à partir des mouvements du visage par webcam.&lt;br /&gt;
* observation de l'utilisation d'un ordinateur par un résident (Bertrand), notamment sur un jeu de fléchettes à partir d'un joystick et d'un bouton-clic. Bertrand comprend et agit normalement sur le jeu cependant il lui est difficile de coordonner plusieurs paramètres en même temps tels que la gestion de force et la précision du tir.&lt;br /&gt;
* présentation du premier prototype développé : la manette de jeux Arduino Leonardo. Démonstration sur un jeux de Game Boy Advance (Super Mario World) à partir du système d'émulation RomStation.&lt;br /&gt;
* discussion sur les diverses améliorations que l'on pourrait apporter sur le prototype : création d'une interface graphique permettant la gestion des fonctions implémentées dans la carte Arduino (gestion des touches et des options), automatisation des touches de manière physique ou algorithmique, éclatement des directions du joystick sur plusieurs contacteurs, adaptation jack-pin arduino afin d'utiliser les boutons switch de type Orby.&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée pour le mercredi 25/11/2015 à 14h30 à La Gerlotte. Pour cette date, nous poursuivrons nos recherches afin d'apporter des améliorations du prototype.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 (du 09/11/2015 au 15/11/2015)===&lt;br /&gt;
Rendez-vous au centre au centre CRNT de l'association APF (Association des Paralysés de France) avec M. Danigo. Nous avons récupéré quelques contacteurs, le standard de la connectique dans le domaine du handicap est le jack (principalement 3.5mm mono). Pour pouvoir les utiliser sur notre dispositif il faut utiliser des jacks femelles 3.5mm mono. Après présentation du prototype nous avons discuté de l'ergonomie du système. Il serait judicieux de construire un boitier où l'on brancherait les contacteurs dans les jacks femelles. Réaliser un PCB et ajouter des mousses à l'intérieur pour que le système soit plus solide.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:button.png|center|thumb|180px|Contacteur Jelly Bean Twist]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 (du 16/11/2015 au 22/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype par les jacks femelles 3.5mm mono pour pouvoir utiliser les contacteurs, et ajout d'interrupteurs à levier pour automatiser une touche.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 (du 22/11/2015 au 29/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 25/11/2015 en présence de M. Martin Nicolas, M.Xavier Hantson et M.Thierry Danigo:&lt;br /&gt;
* Présentation du prototype et des améliorations qui ont été apportées&lt;br /&gt;
* Discussion sur les prochaines modifications:&lt;br /&gt;
** Éclater le joystick sur plusieurs contacteurs tout en conservant le joystick (dans le but de rendre le système le plus accessible possible). Si le joystick est éclaté sous la forme de 4 boutons directionnels, il faudra penser à annuler la commande lorsque 2 directions contraires sont pressées (haut-bas et droite-gauche). &lt;br /&gt;
** Gérer l'automatisation d'une touche de façon périodique et non tout-ou-rien, fréquence qui devra être ajustable par potentiomètre par exemple.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 06/01/2016 à 14h30. Pour cette date, nous travaillerons et progresserons sur les axes d'amélioration qui nous ont été proposés, et nous ferons le point sur la soutenance de mi-parcours.&lt;br /&gt;
&lt;br /&gt;
Réunion à l'IRCICA du jeudi 26/11/2015 en présence de M. Laurent Grisoni, M.Samuel Desgrande et Mme.Patricia Plenacoste:&lt;br /&gt;
* Présentation du projet à l'Institut Médico-Éducatif Les Papillons Blancs. Nous avons observé une séquence vidéo dans laquelle un enfant handicapé mental et moteur joue à un jeu vidéo de tir sur une cible à partir d'une Kinect. La Kinect va détecter une accélération dans une zone globale et la difficulté consiste à séparer les mouvements parasites involontaires de l'enfant au geste décisif et intentionnel du lancer.&lt;br /&gt;
* Présentation de notre projet à La Gerlotte et du prototype de manette de jeux. L'idée d'une interface graphique permettant un mapping des commandes de la manette Arduino est envisageable. L'on pourrait configurer les touches afin qu'elles émulent l'appui de 2 touches successives (ex: saut + avancé). &lt;br /&gt;
* Le but de cette réunion serait d'envisager la fusion des 2 projets (Papillons Blancs et Gerlotte) ou l'échange des systèmes afin que dans chaque établissement puisse profiter des réalisations.&lt;br /&gt;
* Proposer à La Gerlotte de tester et s'approprier le prototype pendant 2-3 semaines afin d'avoir un feedback utilisateur.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 (du 30/11/2015 au 06/12/2015)===&lt;br /&gt;
Test du joystick HKD-FW22 pour fauteuil roulant switch 4 axes à connectique serre-fils (screw terminal). Un des interrupteurs est usé et réagit d'une mauvaise façon.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickScrew.jpg|center|thumb|180px|Joystick 4 Axis Screw Terminal]]&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype: automatisation de touches et réglage de la fréquence par des potentiomètres. Chaque potentiomètre est relié à un port analogique et va délivrer une tension. En fonction de la valeur de cette dernière, la période entre 2 appuis successifs sera défini. Par simplicité la fonction de calcul de la période est f(x) = 2 * x. La période maximale est de 2s, et la période minimale de 0s ce qui correspond à un appui constant.&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 (du 07/12/2015 au 13/12/2015)===&lt;br /&gt;
Étude des logiciels JoyMouse et JoyToKey avec une manette de jeux. &lt;br /&gt;
JoyMouse se concentre sur l'émulation d'une souris avec une manette. L'accélération, la sensibilité, la vitesse ainsi que les clics sont interfaçables facilement.&lt;br /&gt;
JoyToKey permet égalemment d'émuler les fonctions de la souris à partir d'une manette mais également simuler des touches claviers. L'interface est beaucoup plus complexes, avec des profils utilisateurs et il est possible d'automatiser une action.&lt;br /&gt;
&lt;br /&gt;
Implémentation Joystick-pad avec boutons. Fonctionne en parallèle du joystick analogique.&lt;br /&gt;
&lt;br /&gt;
Avancement du rapport.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 (du 14/12/2015 au 20/12/2015)===&lt;br /&gt;
&lt;br /&gt;
Finalisation du rapport et préparation de la soutenance mi-parcours.&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 (du 04/01/2016 au 10/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 06/01/2016 en présence de M. Martin Nicolas, Maxime (jeune en situation de handicap suivi par le SAVS Liévin) et M. Benoît Barbet:&lt;br /&gt;
* Maxime nous a fait part de son vécu et de ses attentes concernant son utilisation des jeux-vidéo. Nous avons ainsi pu lui présenter le fonctionnement de notre projet.&lt;br /&gt;
* Pour l'utilisation de son ordinateur, Maxime utilise un trackball qu'il commande au pied. Nous allons donc réfléchir à la possibilité d'intégrer un trackball à notre système par USB. Notre prototype va intégrer un port USB qui permettra d'utiliser tout types de périphériques de commandes tels qu'un trackball, une souris, un joystick USB, une clé Bluetooth.&lt;br /&gt;
* Nous avons aussi discuté de l'interface graphique qui permettrait de gérer les différentes combinaisons de commandes possibles. Nous travaillerons sur ce point dans les jours à venir et nous analyserons si une interface fonctionnelle est envisageable.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 20/01/2016 à 14h30. Pour cette date, nous poursuivrons les recherches sur les points évoqués ci-dessus, et nous rendrons notre prototype utilisable afin qu'il puisse être testé par quelques résidents et par Maxime.&lt;br /&gt;
&lt;br /&gt;
Finalisation des fonctionnalités du prototype et de son boitier. Le prototype sera mis à disposition de La Gerlotte le 20/01/2016.&lt;br /&gt;
&lt;br /&gt;
===Semaine 14 (du 11/01/2016 au 17/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Dans le but d'intégrer un port USB à notre prototype, nous utilisons un Raspbery Pi 2. Elle comprend 4 port USB, la distribution Linux que l'on utilise est Raspbian et nous connectons la Raspberry à l'Arduino Leonardo au travers du port série. L'on branche une souris sur l'un des ports USB et un script C va récupérer les événements de la souris (les coordonnées x et y) dans le dossier /dev/input/mice. Les données sont alors envoyés via le port série vers le Leonardo qui va les traduire en coordonnées du joystick. À l'aide de ce système il est alors possible de contrôler les déplacements de son personnage dans un jeux vidéos avec une souris ou un trackball.&lt;br /&gt;
&lt;br /&gt;
===Semaine 15 (du 18/01/2016 au 24/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Sixième réunion à La Gerlotte le mercredi 20/01/2016 en présence de MM. Martin Nicolas, Thierry Danigo.&lt;br /&gt;
&lt;br /&gt;
Nous avons présenté notre prototype prêt à être testé. Il a notamment été essayé par deux résidents de la Gerlotte, et par Maxime du SAVS Liévin, que nous avions rencontré lors de la réunion précédente.&lt;br /&gt;
&lt;br /&gt;
Nous avons connecté 4 contacteurs sur le prototype (2 touches de direction droite/gauche et 2 touches d'action), et les testeurs ont essayé le prototype sur un jeu simple : Tetris. Le test a été plutôt concluant, les utilisateurs arrivaient à utiliser les différents contacteurs avec plus ou moins de facilité. Aussi, nous avons essayé d'intégrer le trackball de Maxime dans notre système, et en retouchant la sensibilité du trackball, nous nous sommes aperçu que le trackball était parfaitement intégrable dans la manette.&lt;br /&gt;
&lt;br /&gt;
Nous avons laissé le prototype à La Gerlotte, afin qu'il puisse être testé &amp;quot;dans le quotidien&amp;quot; des résidents, et avoir un retour sur une telle utilisation.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au 03/02/2016 à 14h30. Pour cette date, nous poursuivrons notre travail sur l'interface graphique de gestion de commandes, et nous réfléchirons sur le design final du système (style du coffret), et sur la conception de plaques électroniques pour le système final.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:protoManetteTupe.jpg|thumb|center|300px|Prototype de manette de jeux prêt à l'emploi]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 16 (du 25/01/2016 au 31/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous avons continué l'interface graphique de gestion de commandes. Nous utilisons Processing qui est un environnement de développement libre, multi-plateforme, il permet de programmer en Java et de faire du prototypage rapide. &lt;br /&gt;
&lt;br /&gt;
L'interface graphique réalisé à l'aide de la librairie G4P, est un interface basique qui va permettre d'automatiser chaque bouton du joystick à l'aide de potentiomètres virtuels, mais également de pouvoir effectuer des combinaisons de touches. Des voyants indiquent l'appuie des boutons du joystick sur l'interface. &lt;br /&gt;
&lt;br /&gt;
Concernant la communication de Processing à Arduino nous restons sur le classique envoie-réception série de mots-clés qui vont permettent de modifier le comportement de l'Arduino et ainsi pouvoir remapper les commandes ou les automatiser.&lt;br /&gt;
&lt;br /&gt;
===Semaine 17 (du 01/02/2016 au 07/02/2016)===&lt;br /&gt;
&lt;br /&gt;
Compte-rendu de la réunion du mercredi 03/02/2016 à La Gerlotte :&lt;br /&gt;
&lt;br /&gt;
*Retours sur l'utilisation du proto de manette de jeux que nous avons mis à disposition de La Gerlotte durant 2 semaines. Retours positifs et encourageant, utilisation sur des jeux simples tels que Tetris. Utilisation de 3 contacteurs pour les commandes Gauche, Droite et Rotation du bloc. Manipulation autonome des résidents ou aide d'un ergo pour jouer au jeu (au cas par cas des résidents).&lt;br /&gt;
*Partage des commandes entre 2 utilisateurs, permet d'apporter au système une dimension sociale et conviviale. Vincent notamment maitrise parfaitement les commandes de Tetris et a pu jouer pendant plus de 1h sur le jeu de façon autonome. &lt;br /&gt;
*Les jeux nécessitent d'être basiques et d'avoir un arrière plan fixe (tetris, pac-man, casse-brique, jeux de combats en 2D par exemple) car la plupart des résidents sont épileptiques. Si l'on prend un jeu de course simple (par ex mario kart) le 1er plan (voiture et perso, route) et l'arrière plan (décor, paysage) changent en permanence, ce qui peut engendrer une sensation de vertige à un épileptique et causer une crise. Notre système offre beaucoup de possibilités d'adaptation pour les résidents. &lt;br /&gt;
*Une salle multimédia musique et vidéo va être aménagée à La Gerlotte, la manette de jeux sera mise à disposition dans cette salle et des activités de jeux vidéos seront prévues telles que des tournois entre résidents, jeux en coopération, et permettra aux résidents de s'épanouir tout en améliorant autant leurs capacités motrices, leurs réflexes et ainsi les soigner.&lt;br /&gt;
&lt;br /&gt;
Nous avons décrit également l'avancement sur l'interface graphique pour paramétrer l'automatisation des touches et des combinaisons de touches. Cette interface apporterait plus de possibilités d'adaptation au système. Quelques soucis avec la communication de l'interface avec l'Arduino et quelques soucis à intégrer les fonctions de communication sans modifier toute l'architecture et le code en place sur l'Arduino.&lt;br /&gt;
Nous nous sommes mis d'accord sur le fait que 2 boitiers seront réalisés à l'aide de l'imprimante 3D : un boitier pour le système central (Arduino et RaspberryPi) et un boitier pour le joystick et les commandes de direction. Les PCB seront mis en place, le tout pour avoir un produit fini et stable. Ce dernier sera mis à disposition de La Gerlotte.&lt;br /&gt;
&lt;br /&gt;
2 autres manettes supplémentaires seront réalisé, pour Maxime de Liévin et peut-être Le Hameau ?&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée le mercredi 17/02/2016 14h30 où il sera prévu de tester le produit final, et égalemment de prendre une vidéo d'utilisation de la manette par un/des résident(s).&lt;br /&gt;
&lt;br /&gt;
===Semaine 18 (du 08/02/2016 au 14/02/2016)===&lt;br /&gt;
&lt;br /&gt;
=====PCB shield arduino=====&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de réaliser un circuit imprimé afin de créer un shield (bouclier) pour la carte Arduino. Là-dessus, on pourra souder directement 8 prises jack, les 2 potentiomètres, les données transmises en série par la Raspberry Pi, les 4 directions données par le joystick, ainsi que les broches qui seront connectées à l'Arduino. Les pistes sont imprimées sur la face inférieure, et un plan de masse est aussi créé pour relier tous les points de masse, et ainsi éviter de devoir créer des pistes sur une deuxième face. Les prises jack sont reliées aux entrées digitales, les potentiomètres et les données du joystick sont liés aux entrées analogiques, et la Raspberry Pi est reliée au port Rx de l'Arduino.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IMA5_P33_Bailet_Zeggai_PCB_Altium.png|left|thumb|200px|Schéma du PCB intégré à la manette]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IMA5_P33_Bailet_Zeggai_PCB_imprime.jpg|center|thumb|200px|Circuit imprimé obtenu après conception]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Boîtiers de la manette=====&lt;br /&gt;
Nous abandonnons l'idée d'utiliser l'imprimante 3D pour réaliser les boîtiers. En effet l'impression aurait été trop longue (&amp;gt;15h) pour un résultat qui n'aurait pas forcément été solide et optimale.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors tourné pour la découpe laser disponible au Fabricarium et de réaliser des boîtiers en bois. Le processus est rapide (moins de 10 min) et le rendu est assez esthétique. On crée la boite à partir d'un site de [http://carrefour-numerique.cite-sciences.fr/fablab/wiki/doku.php?id=projets:generateur_de_boites génération de boîtes]. Cela va générer un fichier SVG et à l'aide du logiciel Inkscape on ajoute les différents éléments à intégrer: trous, gravures. Plus d'information concernant concernant la découpe laser au Fabricarium disponible [http://www.fabricarium.fr/mediawiki-1.23.5/index.php?title=Speedy_400 ici].&lt;br /&gt;
&lt;br /&gt;
[[Fichier:decoupeJoystick.png|left|thumb|200px|SVG du boîtier du joystick]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:decoupeArduinoRasp.png|center|thumb|200px|SVG du boîtier du système central (Arduino &amp;amp; Raspberry Pi 2)]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Interface graphique de la manette=====&lt;br /&gt;
Nous avons finalisé l'interface graphique de la manette qui permet de remapper les commandes et de réaliser des combinaisons de touches.&lt;br /&gt;
&lt;br /&gt;
En cliquant sur le bouton &amp;quot;Config&amp;quot; cela ouvre une fenêtre qui va permettre de remapper les boutons de la manette.&lt;br /&gt;
Il est possible d'affecter 2 boutons par jack, avec un intervalle de temps les séparant et également configurable.&lt;br /&gt;
B1 correspond au 1er bouton du jack, et B2 le 2ème si affecté.&lt;br /&gt;
Le bouton &amp;quot;Défaut&amp;quot; dans la fenêtre de configuration remet le jack a l'état initial.&lt;br /&gt;
&lt;br /&gt;
L'interface communique avec l'Arduino via le port série pour envoyer des données. Lors de l'appuie sur le bouton &amp;quot;Config&amp;quot; d'un jack, une fenêtre s'ouvre et la manette est désactivée tant que la configuration n'est pas terminée (afin d'éviter d'éventuels bugs). Les données envoyés à l'Arduino sous forme de chaîne de caractère sont : &lt;br /&gt;
* ID du jack à configurer&lt;br /&gt;
* Numéro du 1er bouton à affecter&lt;br /&gt;
et si combinaison de touches, seront envoyés en plus :&lt;br /&gt;
* Numéro du 2ème bouton&lt;br /&gt;
* Intervalle de temps (en ms) séparant le 1er et 2ème bouton&lt;br /&gt;
En cliquant sur &amp;quot;Ok&amp;quot; la nouvelle configuration du jack est envoyée et la manette est re-activée.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mappingBoutonsGUI.png|left|thumb|200px|Interface graphique de la manette]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:configWindowGUI.png|center|thumb|200px|Fenêtre de configuration des jacks]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Partie Arduino=====&lt;br /&gt;
Du côté de l'Arduino, nous avons adapté le code pour pouvoir gérer des combinaisons de touches. On définit une matrice 8x2 de boutons (8 jacks et 2 boutons potentiels affectés par jack). Lors d'un appuie sur un contacteur, si le 2ème bouton n'est pas affecté (initialement à la valeur 13) la manette enverra que la 1ère commande. Si la valeur est différente, la manette enverra le 1er et le 2eme bouton avec un intervalle de temps configurable sur l'interface graphique. &lt;br /&gt;
&lt;br /&gt;
Une fonction va scruter le port série USB de l'Arduino pour voir si des données sont disponibles. Sur ce port l'on ne reçoit que des données de configuration. On adapte alors la matrice de boutons en fonction des données reçues et on ré-active la manette à la fin de chaque configuration.&lt;br /&gt;
&lt;br /&gt;
===Semaine 19 (du 15/02/2016 au 21/02/2016)===&lt;br /&gt;
&lt;br /&gt;
*Montage du système sur le boitier.&lt;br /&gt;
&lt;br /&gt;
*Soudage des composants sur le PCB (broches pour Arduino, prises jack, potentiomètres, données directionnelles)&lt;br /&gt;
&lt;br /&gt;
*Avancement du rapport&lt;br /&gt;
&lt;br /&gt;
*Réunion à La Gerlotte du 17/02/2016 :&lt;br /&gt;
&lt;br /&gt;
Nous avons présenté la version quasi finalisée de la manette, qui est maintenant constituée de deux boîtiers : un boitier directionnel (joystick et contacteurs directionnel), et un boitier central (Raspberry Pi, Arduino et contacteurs d'action). Deux résidents ont testé la manette, et les tests on été plutôt positifs : l'utilisation de la manette a été plutôt bien assimilée. Nous avons pu les filmer pendant qu'ils jouaient.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi présenté une interface graphique fonctionnelle. Celle-ci permet la combinaison de 2 touches d'action sur un contacteur (exemple : tirer + sauter).&lt;br /&gt;
&lt;br /&gt;
Notre prochain objectif est de finaliser complètement le système, et si possible produire une deuxième manette...&lt;br /&gt;
&lt;br /&gt;
== Fichiers Rendus ==&lt;br /&gt;
Dépôt Github du projet&lt;br /&gt;
&lt;br /&gt;
Rapport intermédiaire du projet : [[Fichier:PFE_IMA5_Rapport_intermediaire_Bailet_Zeggai.pdf]]&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:IMA5_P33_Bailet_Zeggai_PCB_imprime.jpg&amp;diff=27582</id>
		<title>Fichier:IMA5 P33 Bailet Zeggai PCB imprime.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:IMA5_P33_Bailet_Zeggai_PCB_imprime.jpg&amp;diff=27582"/>
				<updated>2016-02-22T23:25:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:IMA5_P33_Bailet_Zeggai_PCB_Altium.png&amp;diff=27581</id>
		<title>Fichier:IMA5 P33 Bailet Zeggai PCB Altium.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:IMA5_P33_Bailet_Zeggai_PCB_Altium.png&amp;diff=27581"/>
				<updated>2016-02-22T23:24:03Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=27580</id>
		<title>P33 Réalisations en faveur de l'accessibilité de jeux vidéos</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=27580"/>
				<updated>2016-02-22T23:19:28Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* PCB shield arduino */&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;
==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:logo_la_gerlotte.jpg|thumb|left|La Gerlotte de l'association La vie,autrement ...]]&lt;br /&gt;
&lt;br /&gt;
Les jeux vidéos se sont largement répandus dans le monde aujourd'hui et sont présents sur toutes les plates-formes : téléphones portables, consoles, ordinateur, tablettes. Ils offrent une expérience ludique et divertissante aux utilisateurs au nombre grandissant. Cependant jouer à un jeux vidéos demande de la pratique : il faut manipuler la souris ou le joystick avec brio tandis que la seconde main parcourt le clavier, les manettes de jeux de plus en plus complexes où nos doigts virevoltent en même temps sur les milliers de boutons. Tout cela requiert une grande concentration et des heures  d'apprentissage non négligeables. &lt;br /&gt;
&lt;br /&gt;
le sujet est d'autant plus difficile pour les personnes handicapées qui souhaitent s’amuser sur un jeu vidéo actuel. Quels sont les moyens qu’un accidenté lourd ou un individu handicapé depuis sa naissance, pourrait utiliser pour se détendre sur un jeu ? &lt;br /&gt;
En fonction de la nature du handicap, des solutions diverses et variées existent.&lt;br /&gt;
&lt;br /&gt;
La Gerlotte, est une maison d’accueil spécialisée de l'association La vie, autrement ..., qui accueille des adultes polyhandicapés dépendants dans tous les actes de la vie quotidienne, à l’exclusion des personnes présentant un gros trouble du comportement ou de la personne.&lt;br /&gt;
&lt;br /&gt;
Nous avons pour projet de permettre l'accessibilité de jeux vidéos aux personnes handicapées de l'établissement et de leur apporter ainsi ce moyen de divertissement.&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
Permettre à des personnes handicapées l'accès aux jeux vidéos.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Afin de rendre accessible des activités ludiques deux approches sont possibles, une adaptation ou une création des périphériques de jeux (manettes, ...) ou une modification de système existants en les rendant plus interactifs. Les enfants et adultes en situation de polyhandicap sont dans l'incapacité physique de manipuler les télécommandes et joysticks prévus avec les consoles de jeux vidéos classiques (wii, nintendo,..). Le projet est de pouvoir leur rendre accessibles ces moyens de se divertir en trouvant des adaptations (type contacteur) correspondant à leurs capacités. Quelques pistes envisagées (non exclusives) : une commande simple BCI (Brain Computer Interface) compatible avec les logiciels existants fonctionnant en mode défilement, ou encore un contacteur au clignement intentionnel de paupière enregistré par webcam...&lt;br /&gt;
Ce projet sera effectué à destination des habitants de la maison d'accueil spécialisée de La Gerlotte de Marcq-en-Barœul. Cette résidence accueille des personnes adultes polyhandicapées dépendantes.&lt;br /&gt;
&lt;br /&gt;
===Étapes du projet===&lt;br /&gt;
* Rencontre avec le personnel de la Gerlotte et établissement du cahier des charges et des attentes&lt;br /&gt;
* &amp;quot;Clôture&amp;quot; du cahier des charges et début de l'élaboration des adaptations convenues&lt;br /&gt;
* Tests des adaptations établies avec les résidents de la Gerlotte, et prise en compte des retours&lt;br /&gt;
&lt;br /&gt;
===Choix techniques : matériel et logiciel===&lt;br /&gt;
* Arduino Leonardo [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 13/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Sparkfun Analog Joystick [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 2 boutons poussoirs [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 1 (du 28/09/2015 au 04/10/2015)===&lt;br /&gt;
Rendez-vous à la Gerlotte du mercredi 30/09/2015 :&lt;br /&gt;
* Rencontre avec l'animateur Xavier Hantson et visite de l'établissement la Gerlotte&lt;br /&gt;
* Rencontre avec les résidents, présentation des infrastructures en place (adaptations, appareillages), et aperçu des différents handicaps pris en charge&lt;br /&gt;
* Réunion avec le directeur David Desmulier, l'ergothérapeute Thierry Danigo et M. Hantson. Brainstorming sur les différents moyens pour l'accessibilité aux jeux vidéos : adaptation, modification de manettes, OneSwitch, support handsfree, reconnaissance oculaire (Eye Tracking Tobii avec le SDK, tools et hardware pour 99 euros), le choix de l'eye track inclurait la création d'un jeux vidéo adapté.&lt;br /&gt;
* Accord pour le prochain rendez-vous au 14/10/2015, où un premier choix d'adaptation devra être fait afin de commencer les premiers travaux&lt;br /&gt;
&lt;br /&gt;
Après discussions avec M. Vantroys et M. Grisoni, la reconnaissance oculaire n'est pas un choix que nous conseillent nos professeurs et la création de jeux vidéos serait un travail beaucoup trop laborieux. À ce jour, nous restons dans l'idée de modification de manettes, périphériques  pour pouvoir jouer à des jeux déjà existant. Nous poursuivons nos recherches pour approfondir le sujet ou pour trouver d'autres possibilités.&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 (du 05/10/2015 au 11/10/2015)===&lt;br /&gt;
Recherche bibliographique sur les solutions et logiciels existants permettant l’accessibilité aux jeux vidéos pour les personnes handicapées (cf [http://www.capgame.fr CapGame]) :&lt;br /&gt;
* GlovePie : commande des jeux par la voix&lt;br /&gt;
* AltController : des boites virtuels simulent des touches du clavier lors du passage ou clic de la souris&lt;br /&gt;
* Kinesic Mouse : contrôle des jeux par mouvements de la tête, sourcils, lèvres, etc&lt;br /&gt;
* UnoJoy : librairie Arduino permettant à partir d'une manette existante ou crée, de la rendre compatible sur Windows/Mac/PS3&lt;br /&gt;
* Emulation d'un clavier/souris sur Windows à l'aide d'une plate-forme de développement SMT32F4 ou d'un Arduino Leonardo. Création d'une manette de jeux avec des boutons/joysticks de bornes d'arcades.&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 (du 12/10/2015 au 18/10/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 14/10/2015 en présence de M. Xavier Hantson, Thierry Danigo, Martin Nicolas, Laurent Grisoni.&lt;br /&gt;
&lt;br /&gt;
Proposition et Brainstorming sur les différentes solutions envisagés :&lt;br /&gt;
* adaptation d'une manette Wii à partir d'un projet déjà commencé l'an dernier ([https://projets-ima.polytech-lille.net:40079/mediawiki/index.php?title=P35_Hack-a-Wii_:_Emulation_de_wiimote_pour_rendre_la_Wii_accessibles_aux_personnes_handicap%C3%A9es lien]), solution orientée pour la console Nintendo Wii&lt;br /&gt;
* création d'une manette adaptable à partir d'un microcontrôleur de type Arduino par exemple, orientée plutôt pour les jeux PC.&lt;br /&gt;
* intégration de jeux vidéos devenus libres, jeux rétros de l'époque Atari, sur les systèmes Rapsberry Pi ou Banana Pi&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée au mercredi 4/11/2015 à 14h30 à La Gerlotte. Pour cette date, il a été convenu de créer un Google Docs ouvert à tous les encadrants du projet permettant de répertorier tous les liens des pistes de recherches abordées et des solutions déjà existantes en France ou à l'étranger. Lors de ce rendez-vous il est prévu d'observer l'utilisation d'un PC par certains résidents.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 (du 19/10/2015 au 25/10/2015)===&lt;br /&gt;
Durant cette semaine, nous avons discuté avec M. Vantroys sur la manière dont nous pourrions présenter un prototype du système imaginé. Il se présenterait sous la forme d'une simple manette constituée d'un joystick et de quelques boutons poussoirs, le tout contrôlé par un Arduino Leonardo. Ainsi, on pourrait présenter au personnel de la Gerlotte une simple manette permettant de jouer à des jeux émulés simples, manette qui serait algorithmiquement facile à paramétrer, et donc faire une démonstration de son fonctionnement.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les prochains jours sera de mettre en place et de tester cette manette.&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 Vacances de la Toussaint (du 26/10/2015 au 01/11/2015)===&lt;br /&gt;
Création d'une manette de jeux simple à l'aide d'un Arduino Leonardo.&lt;br /&gt;
&lt;br /&gt;
Le Leonardo a l'avantage d'être reconnu directement sur l'ordinateur comme un clavier/souris. Les classes Keyboard et Mouse permettent d'émuler ces périphériques d'entrées.&lt;br /&gt;
&lt;br /&gt;
Cependant pour pouvoir être reconnu en tant que manette de jeux il faut modifier la librairie standard USB et le descripteur HID.&lt;br /&gt;
&lt;br /&gt;
Ce prototype dispose d'un joystick analogique 2 axes et de 6 boutons poussoirs (1 bouton est inclus avec le joystick). Il est optimisé pour jouer à des jeux de GameBoy Advance ou rétros (SuperNES, Master System, Gameboy ...) dont les manettes ne disposent pas énormément de touches.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:kirby-nightmare-in-dream-land-gba-1.jpg|left|thumb|250px|Test de Kirby Nightmare in Dreamland sur GBA fonctionnel]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickLeonardo.jpg|thumb|center|300px|Arduino Leonardo comme manette de jeux]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 (du 02/11/2015 au 08/11/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 04/11/2015 en présence de M. Martin Nicolas:&lt;br /&gt;
* découverte de divers logiciels et matériels à disposition des résidents de La Gerlotte : émulateur de souris avec contacteurs (Mouse Mover), système joystick/clic gauche, logiciel de gestion de la souris à partir des mouvements du visage par webcam.&lt;br /&gt;
* observation de l'utilisation d'un ordinateur par un résident (Bertrand), notamment sur un jeu de fléchettes à partir d'un joystick et d'un bouton-clic. Bertrand comprend et agit normalement sur le jeu cependant il lui est difficile de coordonner plusieurs paramètres en même temps tels que la gestion de force et la précision du tir.&lt;br /&gt;
* présentation du premier prototype développé : la manette de jeux Arduino Leonardo. Démonstration sur un jeux de Game Boy Advance (Super Mario World) à partir du système d'émulation RomStation.&lt;br /&gt;
* discussion sur les diverses améliorations que l'on pourrait apporter sur le prototype : création d'une interface graphique permettant la gestion des fonctions implémentées dans la carte Arduino (gestion des touches et des options), automatisation des touches de manière physique ou algorithmique, éclatement des directions du joystick sur plusieurs contacteurs, adaptation jack-pin arduino afin d'utiliser les boutons switch de type Orby.&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée pour le mercredi 25/11/2015 à 14h30 à La Gerlotte. Pour cette date, nous poursuivrons nos recherches afin d'apporter des améliorations du prototype.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 (du 09/11/2015 au 15/11/2015)===&lt;br /&gt;
Rendez-vous au centre au centre CRNT de l'association APF (Association des Paralysés de France) avec M. Danigo. Nous avons récupéré quelques contacteurs, le standard de la connectique dans le domaine du handicap est le jack (principalement 3.5mm mono). Pour pouvoir les utiliser sur notre dispositif il faut utiliser des jacks femelles 3.5mm mono. Après présentation du prototype nous avons discuté de l'ergonomie du système. Il serait judicieux de construire un boitier où l'on brancherait les contacteurs dans les jacks femelles. Réaliser un PCB et ajouter des mousses à l'intérieur pour que le système soit plus solide.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:button.png|center|thumb|180px|Contacteur Jelly Bean Twist]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 (du 16/11/2015 au 22/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype par les jacks femelles 3.5mm mono pour pouvoir utiliser les contacteurs, et ajout d'interrupteurs à levier pour automatiser une touche.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 (du 22/11/2015 au 29/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 25/11/2015 en présence de M. Martin Nicolas, M.Xavier Hantson et M.Thierry Danigo:&lt;br /&gt;
* Présentation du prototype et des améliorations qui ont été apportées&lt;br /&gt;
* Discussion sur les prochaines modifications:&lt;br /&gt;
** Éclater le joystick sur plusieurs contacteurs tout en conservant le joystick (dans le but de rendre le système le plus accessible possible). Si le joystick est éclaté sous la forme de 4 boutons directionnels, il faudra penser à annuler la commande lorsque 2 directions contraires sont pressées (haut-bas et droite-gauche). &lt;br /&gt;
** Gérer l'automatisation d'une touche de façon périodique et non tout-ou-rien, fréquence qui devra être ajustable par potentiomètre par exemple.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 06/01/2016 à 14h30. Pour cette date, nous travaillerons et progresserons sur les axes d'amélioration qui nous ont été proposés, et nous ferons le point sur la soutenance de mi-parcours.&lt;br /&gt;
&lt;br /&gt;
Réunion à l'IRCICA du jeudi 26/11/2015 en présence de M. Laurent Grisoni, M.Samuel Desgrande et Mme.Patricia Plenacoste:&lt;br /&gt;
* Présentation du projet à l'Institut Médico-Éducatif Les Papillons Blancs. Nous avons observé une séquence vidéo dans laquelle un enfant handicapé mental et moteur joue à un jeu vidéo de tir sur une cible à partir d'une Kinect. La Kinect va détecter une accélération dans une zone globale et la difficulté consiste à séparer les mouvements parasites involontaires de l'enfant au geste décisif et intentionnel du lancer.&lt;br /&gt;
* Présentation de notre projet à La Gerlotte et du prototype de manette de jeux. L'idée d'une interface graphique permettant un mapping des commandes de la manette Arduino est envisageable. L'on pourrait configurer les touches afin qu'elles émulent l'appui de 2 touches successives (ex: saut + avancé). &lt;br /&gt;
* Le but de cette réunion serait d'envisager la fusion des 2 projets (Papillons Blancs et Gerlotte) ou l'échange des systèmes afin que dans chaque établissement puisse profiter des réalisations.&lt;br /&gt;
* Proposer à La Gerlotte de tester et s'approprier le prototype pendant 2-3 semaines afin d'avoir un feedback utilisateur.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 (du 30/11/2015 au 06/12/2015)===&lt;br /&gt;
Test du joystick HKD-FW22 pour fauteuil roulant switch 4 axes à connectique serre-fils (screw terminal). Un des interrupteurs est usé et réagit d'une mauvaise façon.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickScrew.jpg|center|thumb|180px|Joystick 4 Axis Screw Terminal]]&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype: automatisation de touches et réglage de la fréquence par des potentiomètres. Chaque potentiomètre est relié à un port analogique et va délivrer une tension. En fonction de la valeur de cette dernière, la période entre 2 appuis successifs sera défini. Par simplicité la fonction de calcul de la période est f(x) = 2 * x. La période maximale est de 2s, et la période minimale de 0s ce qui correspond à un appui constant.&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 (du 07/12/2015 au 13/12/2015)===&lt;br /&gt;
Étude des logiciels JoyMouse et JoyToKey avec une manette de jeux. &lt;br /&gt;
JoyMouse se concentre sur l'émulation d'une souris avec une manette. L'accélération, la sensibilité, la vitesse ainsi que les clics sont interfaçables facilement.&lt;br /&gt;
JoyToKey permet égalemment d'émuler les fonctions de la souris à partir d'une manette mais également simuler des touches claviers. L'interface est beaucoup plus complexes, avec des profils utilisateurs et il est possible d'automatiser une action.&lt;br /&gt;
&lt;br /&gt;
Implémentation Joystick-pad avec boutons. Fonctionne en parallèle du joystick analogique.&lt;br /&gt;
&lt;br /&gt;
Avancement du rapport.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 (du 14/12/2015 au 20/12/2015)===&lt;br /&gt;
&lt;br /&gt;
Finalisation du rapport et préparation de la soutenance mi-parcours.&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 (du 04/01/2016 au 10/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 06/01/2016 en présence de M. Martin Nicolas, Maxime (jeune en situation de handicap suivi par le SAVS Liévin) et M. Benoît Barbet:&lt;br /&gt;
* Maxime nous a fait part de son vécu et de ses attentes concernant son utilisation des jeux-vidéo. Nous avons ainsi pu lui présenter le fonctionnement de notre projet.&lt;br /&gt;
* Pour l'utilisation de son ordinateur, Maxime utilise un trackball qu'il commande au pied. Nous allons donc réfléchir à la possibilité d'intégrer un trackball à notre système par USB. Notre prototype va intégrer un port USB qui permettra d'utiliser tout types de périphériques de commandes tels qu'un trackball, une souris, un joystick USB, une clé Bluetooth.&lt;br /&gt;
* Nous avons aussi discuté de l'interface graphique qui permettrait de gérer les différentes combinaisons de commandes possibles. Nous travaillerons sur ce point dans les jours à venir et nous analyserons si une interface fonctionnelle est envisageable.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 20/01/2016 à 14h30. Pour cette date, nous poursuivrons les recherches sur les points évoqués ci-dessus, et nous rendrons notre prototype utilisable afin qu'il puisse être testé par quelques résidents et par Maxime.&lt;br /&gt;
&lt;br /&gt;
Finalisation des fonctionnalités du prototype et de son boitier. Le prototype sera mis à disposition de La Gerlotte le 20/01/2016.&lt;br /&gt;
&lt;br /&gt;
===Semaine 14 (du 11/01/2016 au 17/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Dans le but d'intégrer un port USB à notre prototype, nous utilisons un Raspbery Pi 2. Elle comprend 4 port USB, la distribution Linux que l'on utilise est Raspbian et nous connectons la Raspberry à l'Arduino Leonardo au travers du port série. L'on branche une souris sur l'un des ports USB et un script C va récupérer les événements de la souris (les coordonnées x et y) dans le dossier /dev/input/mice. Les données sont alors envoyés via le port série vers le Leonardo qui va les traduire en coordonnées du joystick. À l'aide de ce système il est alors possible de contrôler les déplacements de son personnage dans un jeux vidéos avec une souris ou un trackball.&lt;br /&gt;
&lt;br /&gt;
===Semaine 15 (du 18/01/2016 au 24/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Sixième réunion à La Gerlotte le mercredi 20/01/2016 en présence de MM. Martin Nicolas, Thierry Danigo.&lt;br /&gt;
&lt;br /&gt;
Nous avons présenté notre prototype prêt à être testé. Il a notamment été essayé par deux résidents de la Gerlotte, et par Maxime du SAVS Liévin, que nous avions rencontré lors de la réunion précédente.&lt;br /&gt;
&lt;br /&gt;
Nous avons connecté 4 contacteurs sur le prototype (2 touches de direction droite/gauche et 2 touches d'action), et les testeurs ont essayé le prototype sur un jeu simple : Tetris. Le test a été plutôt concluant, les utilisateurs arrivaient à utiliser les différents contacteurs avec plus ou moins de facilité. Aussi, nous avons essayé d'intégrer le trackball de Maxime dans notre système, et en retouchant la sensibilité du trackball, nous nous sommes aperçu que le trackball était parfaitement intégrable dans la manette.&lt;br /&gt;
&lt;br /&gt;
Nous avons laissé le prototype à La Gerlotte, afin qu'il puisse être testé &amp;quot;dans le quotidien&amp;quot; des résidents, et avoir un retour sur une telle utilisation.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au 03/02/2016 à 14h30. Pour cette date, nous poursuivrons notre travail sur l'interface graphique de gestion de commandes, et nous réfléchirons sur le design final du système (style du coffret), et sur la conception de plaques électroniques pour le système final.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:protoManetteTupe.jpg|thumb|center|300px|Prototype de manette de jeux prêt à l'emploi]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 16 (du 25/01/2016 au 31/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous avons continué l'interface graphique de gestion de commandes. Nous utilisons Processing qui est un environnement de développement libre, multi-plateforme, il permet de programmer en Java et de faire du prototypage rapide. &lt;br /&gt;
&lt;br /&gt;
L'interface graphique réalisé à l'aide de la librairie G4P, est un interface basique qui va permettre d'automatiser chaque bouton du joystick à l'aide de potentiomètres virtuels, mais également de pouvoir effectuer des combinaisons de touches. Des voyants indiquent l'appuie des boutons du joystick sur l'interface. &lt;br /&gt;
&lt;br /&gt;
Concernant la communication de Processing à Arduino nous restons sur le classique envoie-réception série de mots-clés qui vont permettent de modifier le comportement de l'Arduino et ainsi pouvoir remapper les commandes ou les automatiser.&lt;br /&gt;
&lt;br /&gt;
===Semaine 17 (du 01/02/2016 au 07/02/2016)===&lt;br /&gt;
&lt;br /&gt;
Compte-rendu de la réunion du mercredi 03/02/2016 à La Gerlotte :&lt;br /&gt;
&lt;br /&gt;
*Retours sur l'utilisation du proto de manette de jeux que nous avons mis à disposition de La Gerlotte durant 2 semaines. Retours positifs et encourageant, utilisation sur des jeux simples tels que Tetris. Utilisation de 3 contacteurs pour les commandes Gauche, Droite et Rotation du bloc. Manipulation autonome des résidents ou aide d'un ergo pour jouer au jeu (au cas par cas des résidents).&lt;br /&gt;
*Partage des commandes entre 2 utilisateurs, permet d'apporter au système une dimension sociale et conviviale. Vincent notamment maitrise parfaitement les commandes de Tetris et a pu jouer pendant plus de 1h sur le jeu de façon autonome. &lt;br /&gt;
*Les jeux nécessitent d'être basiques et d'avoir un arrière plan fixe (tetris, pac-man, casse-brique, jeux de combats en 2D par exemple) car la plupart des résidents sont épileptiques. Si l'on prend un jeu de course simple (par ex mario kart) le 1er plan (voiture et perso, route) et l'arrière plan (décor, paysage) changent en permanence, ce qui peut engendrer une sensation de vertige à un épileptique et causer une crise. Notre système offre beaucoup de possibilités d'adaptation pour les résidents. &lt;br /&gt;
*Une salle multimédia musique et vidéo va être aménagée à La Gerlotte, la manette de jeux sera mise à disposition dans cette salle et des activités de jeux vidéos seront prévues telles que des tournois entre résidents, jeux en coopération, et permettra aux résidents de s'épanouir tout en améliorant autant leurs capacités motrices, leurs réflexes et ainsi les soigner.&lt;br /&gt;
&lt;br /&gt;
Nous avons décrit également l'avancement sur l'interface graphique pour paramétrer l'automatisation des touches et des combinaisons de touches. Cette interface apporterait plus de possibilités d'adaptation au système. Quelques soucis avec la communication de l'interface avec l'Arduino et quelques soucis à intégrer les fonctions de communication sans modifier toute l'architecture et le code en place sur l'Arduino.&lt;br /&gt;
Nous nous sommes mis d'accord sur le fait que 2 boitiers seront réalisés à l'aide de l'imprimante 3D : un boitier pour le système central (Arduino et RaspberryPi) et un boitier pour le joystick et les commandes de direction. Les PCB seront mis en place, le tout pour avoir un produit fini et stable. Ce dernier sera mis à disposition de La Gerlotte.&lt;br /&gt;
&lt;br /&gt;
2 autres manettes supplémentaires seront réalisé, pour Maxime de Liévin et peut-être Le Hameau ?&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée le mercredi 17/02/2016 14h30 où il sera prévu de tester le produit final, et égalemment de prendre une vidéo d'utilisation de la manette par un/des résident(s).&lt;br /&gt;
&lt;br /&gt;
===Semaine 18 (du 08/02/2016 au 14/02/2016)===&lt;br /&gt;
&lt;br /&gt;
=====PCB shield arduino=====&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de réaliser un circuit imprimé afin de créer un shield (bouclier) pour la carte Arduino. Là-dessus, on pourra souder directement 8 prises jack, les 2 potentiomètres, les données transmises en série par la Raspberry Pi, les 4 directions données par le joystick, ainsi que les broches qui seront connectées à l'Arduino. Les pistes sont imprimées sur la face inférieure, et un plan de masse est aussi créé pour relier tous les points de masse, et ainsi éviter de devoir créer des pistes sur une deuxième face. Les prises jack sont reliées aux entrées digitales, les potentiomètres et les données du joystick sont liés aux entrées analogiques, et la Raspberry Pi est reliée au port Rx de l'Arduino.&lt;br /&gt;
&lt;br /&gt;
=====Boîtiers de la manette=====&lt;br /&gt;
Nous abandonnons l'idée d'utiliser l'imprimante 3D pour réaliser les boîtiers. En effet l'impression aurait été trop longue (&amp;gt;15h) pour un résultat qui n'aurait pas forcément été solide et optimale.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors tourné pour la découpe laser disponible au Fabricarium et de réaliser des boîtiers en bois. Le processus est rapide (moins de 10 min) et le rendu est assez esthétique. On crée la boite à partir d'un site de [http://carrefour-numerique.cite-sciences.fr/fablab/wiki/doku.php?id=projets:generateur_de_boites génération de boîtes]. Cela va générer un fichier SVG et à l'aide du logiciel Inkscape on ajoute les différents éléments à intégrer: trous, gravures. Plus d'information concernant concernant la découpe laser au Fabricarium disponible [http://www.fabricarium.fr/mediawiki-1.23.5/index.php?title=Speedy_400 ici].&lt;br /&gt;
&lt;br /&gt;
[[Fichier:decoupeJoystick.png|left|thumb|200px|SVG du boîtier du joystick]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:decoupeArduinoRasp.png|center|thumb|200px|SVG du boîtier du système central (Arduino &amp;amp; Raspberry Pi 2)]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Interface graphique de la manette=====&lt;br /&gt;
Nous avons finalisé l'interface graphique de la manette qui permet de remapper les commandes et de réaliser des combinaisons de touches.&lt;br /&gt;
&lt;br /&gt;
En cliquant sur le bouton &amp;quot;Config&amp;quot; cela ouvre une fenêtre qui va permettre de remapper les boutons de la manette.&lt;br /&gt;
Il est possible d'affecter 2 boutons par jack, avec un intervalle de temps les séparant et également configurable.&lt;br /&gt;
B1 correspond au 1er bouton du jack, et B2 le 2ème si affecté.&lt;br /&gt;
Le bouton &amp;quot;Défaut&amp;quot; dans la fenêtre de configuration remet le jack a l'état initial.&lt;br /&gt;
&lt;br /&gt;
L'interface communique avec l'Arduino via le port série pour envoyer des données. Lors de l'appuie sur le bouton &amp;quot;Config&amp;quot; d'un jack, une fenêtre s'ouvre et la manette est désactivée tant que la configuration n'est pas terminée (afin d'éviter d'éventuels bugs). Les données envoyés à l'Arduino sous forme de chaîne de caractère sont : &lt;br /&gt;
* ID du jack à configurer&lt;br /&gt;
* Numéro du 1er bouton à affecter&lt;br /&gt;
et si combinaison de touches, seront envoyés en plus :&lt;br /&gt;
* Numéro du 2ème bouton&lt;br /&gt;
* Intervalle de temps (en ms) séparant le 1er et 2ème bouton&lt;br /&gt;
En cliquant sur &amp;quot;Ok&amp;quot; la nouvelle configuration du jack est envoyée et la manette est re-activée.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mappingBoutonsGUI.png|left|thumb|200px|Interface graphique de la manette]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:configWindowGUI.png|center|thumb|200px|Fenêtre de configuration des jacks]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Partie Arduino=====&lt;br /&gt;
Du côté de l'Arduino, nous avons adapté le code pour pouvoir gérer des combinaisons de touches. On définit une matrice 8x2 de boutons (8 jacks et 2 boutons potentiels affectés par jack). Lors d'un appuie sur un contacteur, si le 2ème bouton n'est pas affecté (initialement à la valeur 13) la manette enverra que la 1ère commande. Si la valeur est différente, la manette enverra le 1er et le 2eme bouton avec un intervalle de temps configurable sur l'interface graphique. &lt;br /&gt;
&lt;br /&gt;
Une fonction va scruter le port série USB de l'Arduino pour voir si des données sont disponibles. Sur ce port l'on ne reçoit que des données de configuration. On adapte alors la matrice de boutons en fonction des données reçues et on ré-active la manette à la fin de chaque configuration.&lt;br /&gt;
&lt;br /&gt;
===Semaine 19 (du 15/02/2016 au 21/02/2016)===&lt;br /&gt;
&lt;br /&gt;
*Montage du système sur le boitier.&lt;br /&gt;
&lt;br /&gt;
*Soudage des composants sur le PCB (broches pour Arduino, prises jack, potentiomètres, données directionnelles)&lt;br /&gt;
&lt;br /&gt;
*Avancement du rapport&lt;br /&gt;
&lt;br /&gt;
*Réunion à La Gerlotte du 17/02/2016 :&lt;br /&gt;
&lt;br /&gt;
Nous avons présenté la version quasi finalisée de la manette, qui est maintenant constituée de deux boîtiers : un boitier directionnel (joystick et contacteurs directionnel), et un boitier central (Raspberry Pi, Arduino et contacteurs d'action). Deux résidents ont testé la manette, et les tests on été plutôt positifs : l'utilisation de la manette a été plutôt bien assimilée. Nous avons pu les filmer pendant qu'ils jouaient.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi présenté une interface graphique fonctionnelle. Celle-ci permet la combinaison de 2 touches d'action sur un contacteur (exemple : tirer + sauter).&lt;br /&gt;
&lt;br /&gt;
Notre prochain objectif est de finaliser complètement le système, et si possible produire une deuxième manette...&lt;br /&gt;
&lt;br /&gt;
== Fichiers Rendus ==&lt;br /&gt;
Dépôt Github du projet&lt;br /&gt;
&lt;br /&gt;
Rapport intermédiaire du projet : [[Fichier:PFE_IMA5_Rapport_intermediaire_Bailet_Zeggai.pdf]]&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=27579</id>
		<title>P33 Réalisations en faveur de l'accessibilité de jeux vidéos</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=27579"/>
				<updated>2016-02-22T22:51:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Semaine 19 (du 15/02/2016 au 21/02/2016) */&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;
==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:logo_la_gerlotte.jpg|thumb|left|La Gerlotte de l'association La vie,autrement ...]]&lt;br /&gt;
&lt;br /&gt;
Les jeux vidéos se sont largement répandus dans le monde aujourd'hui et sont présents sur toutes les plates-formes : téléphones portables, consoles, ordinateur, tablettes. Ils offrent une expérience ludique et divertissante aux utilisateurs au nombre grandissant. Cependant jouer à un jeux vidéos demande de la pratique : il faut manipuler la souris ou le joystick avec brio tandis que la seconde main parcourt le clavier, les manettes de jeux de plus en plus complexes où nos doigts virevoltent en même temps sur les milliers de boutons. Tout cela requiert une grande concentration et des heures  d'apprentissage non négligeables. &lt;br /&gt;
&lt;br /&gt;
le sujet est d'autant plus difficile pour les personnes handicapées qui souhaitent s’amuser sur un jeu vidéo actuel. Quels sont les moyens qu’un accidenté lourd ou un individu handicapé depuis sa naissance, pourrait utiliser pour se détendre sur un jeu ? &lt;br /&gt;
En fonction de la nature du handicap, des solutions diverses et variées existent.&lt;br /&gt;
&lt;br /&gt;
La Gerlotte, est une maison d’accueil spécialisée de l'association La vie, autrement ..., qui accueille des adultes polyhandicapés dépendants dans tous les actes de la vie quotidienne, à l’exclusion des personnes présentant un gros trouble du comportement ou de la personne.&lt;br /&gt;
&lt;br /&gt;
Nous avons pour projet de permettre l'accessibilité de jeux vidéos aux personnes handicapées de l'établissement et de leur apporter ainsi ce moyen de divertissement.&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
Permettre à des personnes handicapées l'accès aux jeux vidéos.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Afin de rendre accessible des activités ludiques deux approches sont possibles, une adaptation ou une création des périphériques de jeux (manettes, ...) ou une modification de système existants en les rendant plus interactifs. Les enfants et adultes en situation de polyhandicap sont dans l'incapacité physique de manipuler les télécommandes et joysticks prévus avec les consoles de jeux vidéos classiques (wii, nintendo,..). Le projet est de pouvoir leur rendre accessibles ces moyens de se divertir en trouvant des adaptations (type contacteur) correspondant à leurs capacités. Quelques pistes envisagées (non exclusives) : une commande simple BCI (Brain Computer Interface) compatible avec les logiciels existants fonctionnant en mode défilement, ou encore un contacteur au clignement intentionnel de paupière enregistré par webcam...&lt;br /&gt;
Ce projet sera effectué à destination des habitants de la maison d'accueil spécialisée de La Gerlotte de Marcq-en-Barœul. Cette résidence accueille des personnes adultes polyhandicapées dépendantes.&lt;br /&gt;
&lt;br /&gt;
===Étapes du projet===&lt;br /&gt;
* Rencontre avec le personnel de la Gerlotte et établissement du cahier des charges et des attentes&lt;br /&gt;
* &amp;quot;Clôture&amp;quot; du cahier des charges et début de l'élaboration des adaptations convenues&lt;br /&gt;
* Tests des adaptations établies avec les résidents de la Gerlotte, et prise en compte des retours&lt;br /&gt;
&lt;br /&gt;
===Choix techniques : matériel et logiciel===&lt;br /&gt;
* Arduino Leonardo [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 13/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Sparkfun Analog Joystick [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 2 boutons poussoirs [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 1 (du 28/09/2015 au 04/10/2015)===&lt;br /&gt;
Rendez-vous à la Gerlotte du mercredi 30/09/2015 :&lt;br /&gt;
* Rencontre avec l'animateur Xavier Hantson et visite de l'établissement la Gerlotte&lt;br /&gt;
* Rencontre avec les résidents, présentation des infrastructures en place (adaptations, appareillages), et aperçu des différents handicaps pris en charge&lt;br /&gt;
* Réunion avec le directeur David Desmulier, l'ergothérapeute Thierry Danigo et M. Hantson. Brainstorming sur les différents moyens pour l'accessibilité aux jeux vidéos : adaptation, modification de manettes, OneSwitch, support handsfree, reconnaissance oculaire (Eye Tracking Tobii avec le SDK, tools et hardware pour 99 euros), le choix de l'eye track inclurait la création d'un jeux vidéo adapté.&lt;br /&gt;
* Accord pour le prochain rendez-vous au 14/10/2015, où un premier choix d'adaptation devra être fait afin de commencer les premiers travaux&lt;br /&gt;
&lt;br /&gt;
Après discussions avec M. Vantroys et M. Grisoni, la reconnaissance oculaire n'est pas un choix que nous conseillent nos professeurs et la création de jeux vidéos serait un travail beaucoup trop laborieux. À ce jour, nous restons dans l'idée de modification de manettes, périphériques  pour pouvoir jouer à des jeux déjà existant. Nous poursuivons nos recherches pour approfondir le sujet ou pour trouver d'autres possibilités.&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 (du 05/10/2015 au 11/10/2015)===&lt;br /&gt;
Recherche bibliographique sur les solutions et logiciels existants permettant l’accessibilité aux jeux vidéos pour les personnes handicapées (cf [http://www.capgame.fr CapGame]) :&lt;br /&gt;
* GlovePie : commande des jeux par la voix&lt;br /&gt;
* AltController : des boites virtuels simulent des touches du clavier lors du passage ou clic de la souris&lt;br /&gt;
* Kinesic Mouse : contrôle des jeux par mouvements de la tête, sourcils, lèvres, etc&lt;br /&gt;
* UnoJoy : librairie Arduino permettant à partir d'une manette existante ou crée, de la rendre compatible sur Windows/Mac/PS3&lt;br /&gt;
* Emulation d'un clavier/souris sur Windows à l'aide d'une plate-forme de développement SMT32F4 ou d'un Arduino Leonardo. Création d'une manette de jeux avec des boutons/joysticks de bornes d'arcades.&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 (du 12/10/2015 au 18/10/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 14/10/2015 en présence de M. Xavier Hantson, Thierry Danigo, Martin Nicolas, Laurent Grisoni.&lt;br /&gt;
&lt;br /&gt;
Proposition et Brainstorming sur les différentes solutions envisagés :&lt;br /&gt;
* adaptation d'une manette Wii à partir d'un projet déjà commencé l'an dernier ([https://projets-ima.polytech-lille.net:40079/mediawiki/index.php?title=P35_Hack-a-Wii_:_Emulation_de_wiimote_pour_rendre_la_Wii_accessibles_aux_personnes_handicap%C3%A9es lien]), solution orientée pour la console Nintendo Wii&lt;br /&gt;
* création d'une manette adaptable à partir d'un microcontrôleur de type Arduino par exemple, orientée plutôt pour les jeux PC.&lt;br /&gt;
* intégration de jeux vidéos devenus libres, jeux rétros de l'époque Atari, sur les systèmes Rapsberry Pi ou Banana Pi&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée au mercredi 4/11/2015 à 14h30 à La Gerlotte. Pour cette date, il a été convenu de créer un Google Docs ouvert à tous les encadrants du projet permettant de répertorier tous les liens des pistes de recherches abordées et des solutions déjà existantes en France ou à l'étranger. Lors de ce rendez-vous il est prévu d'observer l'utilisation d'un PC par certains résidents.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 (du 19/10/2015 au 25/10/2015)===&lt;br /&gt;
Durant cette semaine, nous avons discuté avec M. Vantroys sur la manière dont nous pourrions présenter un prototype du système imaginé. Il se présenterait sous la forme d'une simple manette constituée d'un joystick et de quelques boutons poussoirs, le tout contrôlé par un Arduino Leonardo. Ainsi, on pourrait présenter au personnel de la Gerlotte une simple manette permettant de jouer à des jeux émulés simples, manette qui serait algorithmiquement facile à paramétrer, et donc faire une démonstration de son fonctionnement.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les prochains jours sera de mettre en place et de tester cette manette.&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 Vacances de la Toussaint (du 26/10/2015 au 01/11/2015)===&lt;br /&gt;
Création d'une manette de jeux simple à l'aide d'un Arduino Leonardo.&lt;br /&gt;
&lt;br /&gt;
Le Leonardo a l'avantage d'être reconnu directement sur l'ordinateur comme un clavier/souris. Les classes Keyboard et Mouse permettent d'émuler ces périphériques d'entrées.&lt;br /&gt;
&lt;br /&gt;
Cependant pour pouvoir être reconnu en tant que manette de jeux il faut modifier la librairie standard USB et le descripteur HID.&lt;br /&gt;
&lt;br /&gt;
Ce prototype dispose d'un joystick analogique 2 axes et de 6 boutons poussoirs (1 bouton est inclus avec le joystick). Il est optimisé pour jouer à des jeux de GameBoy Advance ou rétros (SuperNES, Master System, Gameboy ...) dont les manettes ne disposent pas énormément de touches.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:kirby-nightmare-in-dream-land-gba-1.jpg|left|thumb|250px|Test de Kirby Nightmare in Dreamland sur GBA fonctionnel]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickLeonardo.jpg|thumb|center|300px|Arduino Leonardo comme manette de jeux]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 (du 02/11/2015 au 08/11/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 04/11/2015 en présence de M. Martin Nicolas:&lt;br /&gt;
* découverte de divers logiciels et matériels à disposition des résidents de La Gerlotte : émulateur de souris avec contacteurs (Mouse Mover), système joystick/clic gauche, logiciel de gestion de la souris à partir des mouvements du visage par webcam.&lt;br /&gt;
* observation de l'utilisation d'un ordinateur par un résident (Bertrand), notamment sur un jeu de fléchettes à partir d'un joystick et d'un bouton-clic. Bertrand comprend et agit normalement sur le jeu cependant il lui est difficile de coordonner plusieurs paramètres en même temps tels que la gestion de force et la précision du tir.&lt;br /&gt;
* présentation du premier prototype développé : la manette de jeux Arduino Leonardo. Démonstration sur un jeux de Game Boy Advance (Super Mario World) à partir du système d'émulation RomStation.&lt;br /&gt;
* discussion sur les diverses améliorations que l'on pourrait apporter sur le prototype : création d'une interface graphique permettant la gestion des fonctions implémentées dans la carte Arduino (gestion des touches et des options), automatisation des touches de manière physique ou algorithmique, éclatement des directions du joystick sur plusieurs contacteurs, adaptation jack-pin arduino afin d'utiliser les boutons switch de type Orby.&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée pour le mercredi 25/11/2015 à 14h30 à La Gerlotte. Pour cette date, nous poursuivrons nos recherches afin d'apporter des améliorations du prototype.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 (du 09/11/2015 au 15/11/2015)===&lt;br /&gt;
Rendez-vous au centre au centre CRNT de l'association APF (Association des Paralysés de France) avec M. Danigo. Nous avons récupéré quelques contacteurs, le standard de la connectique dans le domaine du handicap est le jack (principalement 3.5mm mono). Pour pouvoir les utiliser sur notre dispositif il faut utiliser des jacks femelles 3.5mm mono. Après présentation du prototype nous avons discuté de l'ergonomie du système. Il serait judicieux de construire un boitier où l'on brancherait les contacteurs dans les jacks femelles. Réaliser un PCB et ajouter des mousses à l'intérieur pour que le système soit plus solide.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:button.png|center|thumb|180px|Contacteur Jelly Bean Twist]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 (du 16/11/2015 au 22/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype par les jacks femelles 3.5mm mono pour pouvoir utiliser les contacteurs, et ajout d'interrupteurs à levier pour automatiser une touche.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 (du 22/11/2015 au 29/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 25/11/2015 en présence de M. Martin Nicolas, M.Xavier Hantson et M.Thierry Danigo:&lt;br /&gt;
* Présentation du prototype et des améliorations qui ont été apportées&lt;br /&gt;
* Discussion sur les prochaines modifications:&lt;br /&gt;
** Éclater le joystick sur plusieurs contacteurs tout en conservant le joystick (dans le but de rendre le système le plus accessible possible). Si le joystick est éclaté sous la forme de 4 boutons directionnels, il faudra penser à annuler la commande lorsque 2 directions contraires sont pressées (haut-bas et droite-gauche). &lt;br /&gt;
** Gérer l'automatisation d'une touche de façon périodique et non tout-ou-rien, fréquence qui devra être ajustable par potentiomètre par exemple.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 06/01/2016 à 14h30. Pour cette date, nous travaillerons et progresserons sur les axes d'amélioration qui nous ont été proposés, et nous ferons le point sur la soutenance de mi-parcours.&lt;br /&gt;
&lt;br /&gt;
Réunion à l'IRCICA du jeudi 26/11/2015 en présence de M. Laurent Grisoni, M.Samuel Desgrande et Mme.Patricia Plenacoste:&lt;br /&gt;
* Présentation du projet à l'Institut Médico-Éducatif Les Papillons Blancs. Nous avons observé une séquence vidéo dans laquelle un enfant handicapé mental et moteur joue à un jeu vidéo de tir sur une cible à partir d'une Kinect. La Kinect va détecter une accélération dans une zone globale et la difficulté consiste à séparer les mouvements parasites involontaires de l'enfant au geste décisif et intentionnel du lancer.&lt;br /&gt;
* Présentation de notre projet à La Gerlotte et du prototype de manette de jeux. L'idée d'une interface graphique permettant un mapping des commandes de la manette Arduino est envisageable. L'on pourrait configurer les touches afin qu'elles émulent l'appui de 2 touches successives (ex: saut + avancé). &lt;br /&gt;
* Le but de cette réunion serait d'envisager la fusion des 2 projets (Papillons Blancs et Gerlotte) ou l'échange des systèmes afin que dans chaque établissement puisse profiter des réalisations.&lt;br /&gt;
* Proposer à La Gerlotte de tester et s'approprier le prototype pendant 2-3 semaines afin d'avoir un feedback utilisateur.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 (du 30/11/2015 au 06/12/2015)===&lt;br /&gt;
Test du joystick HKD-FW22 pour fauteuil roulant switch 4 axes à connectique serre-fils (screw terminal). Un des interrupteurs est usé et réagit d'une mauvaise façon.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickScrew.jpg|center|thumb|180px|Joystick 4 Axis Screw Terminal]]&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype: automatisation de touches et réglage de la fréquence par des potentiomètres. Chaque potentiomètre est relié à un port analogique et va délivrer une tension. En fonction de la valeur de cette dernière, la période entre 2 appuis successifs sera défini. Par simplicité la fonction de calcul de la période est f(x) = 2 * x. La période maximale est de 2s, et la période minimale de 0s ce qui correspond à un appui constant.&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 (du 07/12/2015 au 13/12/2015)===&lt;br /&gt;
Étude des logiciels JoyMouse et JoyToKey avec une manette de jeux. &lt;br /&gt;
JoyMouse se concentre sur l'émulation d'une souris avec une manette. L'accélération, la sensibilité, la vitesse ainsi que les clics sont interfaçables facilement.&lt;br /&gt;
JoyToKey permet égalemment d'émuler les fonctions de la souris à partir d'une manette mais également simuler des touches claviers. L'interface est beaucoup plus complexes, avec des profils utilisateurs et il est possible d'automatiser une action.&lt;br /&gt;
&lt;br /&gt;
Implémentation Joystick-pad avec boutons. Fonctionne en parallèle du joystick analogique.&lt;br /&gt;
&lt;br /&gt;
Avancement du rapport.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 (du 14/12/2015 au 20/12/2015)===&lt;br /&gt;
&lt;br /&gt;
Finalisation du rapport et préparation de la soutenance mi-parcours.&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 (du 04/01/2016 au 10/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 06/01/2016 en présence de M. Martin Nicolas, Maxime (jeune en situation de handicap suivi par le SAVS Liévin) et M. Benoît Barbet:&lt;br /&gt;
* Maxime nous a fait part de son vécu et de ses attentes concernant son utilisation des jeux-vidéo. Nous avons ainsi pu lui présenter le fonctionnement de notre projet.&lt;br /&gt;
* Pour l'utilisation de son ordinateur, Maxime utilise un trackball qu'il commande au pied. Nous allons donc réfléchir à la possibilité d'intégrer un trackball à notre système par USB. Notre prototype va intégrer un port USB qui permettra d'utiliser tout types de périphériques de commandes tels qu'un trackball, une souris, un joystick USB, une clé Bluetooth.&lt;br /&gt;
* Nous avons aussi discuté de l'interface graphique qui permettrait de gérer les différentes combinaisons de commandes possibles. Nous travaillerons sur ce point dans les jours à venir et nous analyserons si une interface fonctionnelle est envisageable.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 20/01/2016 à 14h30. Pour cette date, nous poursuivrons les recherches sur les points évoqués ci-dessus, et nous rendrons notre prototype utilisable afin qu'il puisse être testé par quelques résidents et par Maxime.&lt;br /&gt;
&lt;br /&gt;
Finalisation des fonctionnalités du prototype et de son boitier. Le prototype sera mis à disposition de La Gerlotte le 20/01/2016.&lt;br /&gt;
&lt;br /&gt;
===Semaine 14 (du 11/01/2016 au 17/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Dans le but d'intégrer un port USB à notre prototype, nous utilisons un Raspbery Pi 2. Elle comprend 4 port USB, la distribution Linux que l'on utilise est Raspbian et nous connectons la Raspberry à l'Arduino Leonardo au travers du port série. L'on branche une souris sur l'un des ports USB et un script C va récupérer les événements de la souris (les coordonnées x et y) dans le dossier /dev/input/mice. Les données sont alors envoyés via le port série vers le Leonardo qui va les traduire en coordonnées du joystick. À l'aide de ce système il est alors possible de contrôler les déplacements de son personnage dans un jeux vidéos avec une souris ou un trackball.&lt;br /&gt;
&lt;br /&gt;
===Semaine 15 (du 18/01/2016 au 24/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Sixième réunion à La Gerlotte le mercredi 20/01/2016 en présence de MM. Martin Nicolas, Thierry Danigo.&lt;br /&gt;
&lt;br /&gt;
Nous avons présenté notre prototype prêt à être testé. Il a notamment été essayé par deux résidents de la Gerlotte, et par Maxime du SAVS Liévin, que nous avions rencontré lors de la réunion précédente.&lt;br /&gt;
&lt;br /&gt;
Nous avons connecté 4 contacteurs sur le prototype (2 touches de direction droite/gauche et 2 touches d'action), et les testeurs ont essayé le prototype sur un jeu simple : Tetris. Le test a été plutôt concluant, les utilisateurs arrivaient à utiliser les différents contacteurs avec plus ou moins de facilité. Aussi, nous avons essayé d'intégrer le trackball de Maxime dans notre système, et en retouchant la sensibilité du trackball, nous nous sommes aperçu que le trackball était parfaitement intégrable dans la manette.&lt;br /&gt;
&lt;br /&gt;
Nous avons laissé le prototype à La Gerlotte, afin qu'il puisse être testé &amp;quot;dans le quotidien&amp;quot; des résidents, et avoir un retour sur une telle utilisation.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au 03/02/2016 à 14h30. Pour cette date, nous poursuivrons notre travail sur l'interface graphique de gestion de commandes, et nous réfléchirons sur le design final du système (style du coffret), et sur la conception de plaques électroniques pour le système final.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:protoManetteTupe.jpg|thumb|center|300px|Prototype de manette de jeux prêt à l'emploi]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 16 (du 25/01/2016 au 31/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous avons continué l'interface graphique de gestion de commandes. Nous utilisons Processing qui est un environnement de développement libre, multi-plateforme, il permet de programmer en Java et de faire du prototypage rapide. &lt;br /&gt;
&lt;br /&gt;
L'interface graphique réalisé à l'aide de la librairie G4P, est un interface basique qui va permettre d'automatiser chaque bouton du joystick à l'aide de potentiomètres virtuels, mais également de pouvoir effectuer des combinaisons de touches. Des voyants indiquent l'appuie des boutons du joystick sur l'interface. &lt;br /&gt;
&lt;br /&gt;
Concernant la communication de Processing à Arduino nous restons sur le classique envoie-réception série de mots-clés qui vont permettent de modifier le comportement de l'Arduino et ainsi pouvoir remapper les commandes ou les automatiser.&lt;br /&gt;
&lt;br /&gt;
===Semaine 17 (du 01/02/2016 au 07/02/2016)===&lt;br /&gt;
&lt;br /&gt;
Compte-rendu de la réunion du mercredi 03/02/2016 à La Gerlotte :&lt;br /&gt;
&lt;br /&gt;
*Retours sur l'utilisation du proto de manette de jeux que nous avons mis à disposition de La Gerlotte durant 2 semaines. Retours positifs et encourageant, utilisation sur des jeux simples tels que Tetris. Utilisation de 3 contacteurs pour les commandes Gauche, Droite et Rotation du bloc. Manipulation autonome des résidents ou aide d'un ergo pour jouer au jeu (au cas par cas des résidents).&lt;br /&gt;
*Partage des commandes entre 2 utilisateurs, permet d'apporter au système une dimension sociale et conviviale. Vincent notamment maitrise parfaitement les commandes de Tetris et a pu jouer pendant plus de 1h sur le jeu de façon autonome. &lt;br /&gt;
*Les jeux nécessitent d'être basiques et d'avoir un arrière plan fixe (tetris, pac-man, casse-brique, jeux de combats en 2D par exemple) car la plupart des résidents sont épileptiques. Si l'on prend un jeu de course simple (par ex mario kart) le 1er plan (voiture et perso, route) et l'arrière plan (décor, paysage) changent en permanence, ce qui peut engendrer une sensation de vertige à un épileptique et causer une crise. Notre système offre beaucoup de possibilités d'adaptation pour les résidents. &lt;br /&gt;
*Une salle multimédia musique et vidéo va être aménagée à La Gerlotte, la manette de jeux sera mise à disposition dans cette salle et des activités de jeux vidéos seront prévues telles que des tournois entre résidents, jeux en coopération, et permettra aux résidents de s'épanouir tout en améliorant autant leurs capacités motrices, leurs réflexes et ainsi les soigner.&lt;br /&gt;
&lt;br /&gt;
Nous avons décrit également l'avancement sur l'interface graphique pour paramétrer l'automatisation des touches et des combinaisons de touches. Cette interface apporterait plus de possibilités d'adaptation au système. Quelques soucis avec la communication de l'interface avec l'Arduino et quelques soucis à intégrer les fonctions de communication sans modifier toute l'architecture et le code en place sur l'Arduino.&lt;br /&gt;
Nous nous sommes mis d'accord sur le fait que 2 boitiers seront réalisés à l'aide de l'imprimante 3D : un boitier pour le système central (Arduino et RaspberryPi) et un boitier pour le joystick et les commandes de direction. Les PCB seront mis en place, le tout pour avoir un produit fini et stable. Ce dernier sera mis à disposition de La Gerlotte.&lt;br /&gt;
&lt;br /&gt;
2 autres manettes supplémentaires seront réalisé, pour Maxime de Liévin et peut-être Le Hameau ?&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée le mercredi 17/02/2016 14h30 où il sera prévu de tester le produit final, et égalemment de prendre une vidéo d'utilisation de la manette par un/des résident(s).&lt;br /&gt;
&lt;br /&gt;
===Semaine 18 (du 08/02/2016 au 14/02/2016)===&lt;br /&gt;
&lt;br /&gt;
=====PCB shield arduino=====&lt;br /&gt;
&lt;br /&gt;
=====Boîtiers de la manette=====&lt;br /&gt;
Nous abandonnons l'idée d'utiliser l'imprimante 3D pour réaliser les boîtiers. En effet l'impression aurait été trop longue (&amp;gt;15h) pour un résultat qui n'aurait pas forcément été solide et optimale.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors tourné pour la découpe laser disponible au Fabricarium et de réaliser des boîtiers en bois. Le processus est rapide (moins de 10 min) et le rendu est assez esthétique. On crée la boite à partir d'un site de [http://carrefour-numerique.cite-sciences.fr/fablab/wiki/doku.php?id=projets:generateur_de_boites génération de boîtes]. Cela va générer un fichier SVG et à l'aide du logiciel Inkscape on ajoute les différents éléments à intégrer: trous, gravures. Plus d'information concernant concernant la découpe laser au Fabricarium disponible [http://www.fabricarium.fr/mediawiki-1.23.5/index.php?title=Speedy_400 ici].&lt;br /&gt;
&lt;br /&gt;
[[Fichier:decoupeJoystick.png|left|thumb|200px|SVG du boîtier du joystick]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:decoupeArduinoRasp.png|center|thumb|200px|SVG du boîtier du système central (Arduino &amp;amp; Raspberry Pi 2)]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Interface graphique de la manette=====&lt;br /&gt;
Nous avons finalisé l'interface graphique de la manette qui permet de remapper les commandes et de réaliser des combinaisons de touches.&lt;br /&gt;
&lt;br /&gt;
En cliquant sur le bouton &amp;quot;Config&amp;quot; cela ouvre une fenêtre qui va permettre de remapper les boutons de la manette.&lt;br /&gt;
Il est possible d'affecter 2 boutons par jack, avec un intervalle de temps les séparant et également configurable.&lt;br /&gt;
B1 correspond au 1er bouton du jack, et B2 le 2ème si affecté.&lt;br /&gt;
Le bouton &amp;quot;Défaut&amp;quot; dans la fenêtre de configuration remet le jack a l'état initial.&lt;br /&gt;
&lt;br /&gt;
L'interface communique avec l'Arduino via le port série pour envoyer des données. Lors de l'appuie sur le bouton &amp;quot;Config&amp;quot; d'un jack, une fenêtre s'ouvre et la manette est désactivée tant que la configuration n'est pas terminée (afin d'éviter d'éventuels bugs). Les données envoyés à l'Arduino sous forme de chaîne de caractère sont : &lt;br /&gt;
* ID du jack à configurer&lt;br /&gt;
* Numéro du 1er bouton à affecter&lt;br /&gt;
et si combinaison de touches, seront envoyés en plus :&lt;br /&gt;
* Numéro du 2ème bouton&lt;br /&gt;
* Intervalle de temps (en ms) séparant le 1er et 2ème bouton&lt;br /&gt;
En cliquant sur &amp;quot;Ok&amp;quot; la nouvelle configuration du jack est envoyée et la manette est re-activée.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mappingBoutonsGUI.png|left|thumb|200px|Interface graphique de la manette]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:configWindowGUI.png|center|thumb|200px|Fenêtre de configuration des jacks]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Partie Arduino=====&lt;br /&gt;
Du côté de l'Arduino, nous avons adapté le code pour pouvoir gérer des combinaisons de touches. On définit une matrice 8x2 de boutons (8 jacks et 2 boutons potentiels affectés par jack). Lors d'un appuie sur un contacteur, si le 2ème bouton n'est pas affecté (initialement à la valeur 13) la manette enverra que la 1ère commande. Si la valeur est différente, la manette enverra le 1er et le 2eme bouton avec un intervalle de temps configurable sur l'interface graphique. &lt;br /&gt;
&lt;br /&gt;
Une fonction va scruter le port série USB de l'Arduino pour voir si des données sont disponibles. Sur ce port l'on ne reçoit que des données de configuration. On adapte alors la matrice de boutons en fonction des données reçues et on ré-active la manette à la fin de chaque configuration.&lt;br /&gt;
&lt;br /&gt;
===Semaine 19 (du 15/02/2016 au 21/02/2016)===&lt;br /&gt;
&lt;br /&gt;
*Montage du système sur le boitier.&lt;br /&gt;
&lt;br /&gt;
*Soudage des composants sur le PCB (broches pour Arduino, prises jack, potentiomètres, données directionnelles)&lt;br /&gt;
&lt;br /&gt;
*Avancement du rapport&lt;br /&gt;
&lt;br /&gt;
*Réunion à La Gerlotte du 17/02/2016 :&lt;br /&gt;
&lt;br /&gt;
Nous avons présenté la version quasi finalisée de la manette, qui est maintenant constituée de deux boîtiers : un boitier directionnel (joystick et contacteurs directionnel), et un boitier central (Raspberry Pi, Arduino et contacteurs d'action). Deux résidents ont testé la manette, et les tests on été plutôt positifs : l'utilisation de la manette a été plutôt bien assimilée. Nous avons pu les filmer pendant qu'ils jouaient.&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi présenté une interface graphique fonctionnelle. Celle-ci permet la combinaison de 2 touches d'action sur un contacteur (exemple : tirer + sauter).&lt;br /&gt;
&lt;br /&gt;
Notre prochain objectif est de finaliser complètement le système, et si possible produire une deuxième manette...&lt;br /&gt;
&lt;br /&gt;
== Fichiers Rendus ==&lt;br /&gt;
Dépôt Github du projet&lt;br /&gt;
&lt;br /&gt;
Rapport intermédiaire du projet : [[Fichier:PFE_IMA5_Rapport_intermediaire_Bailet_Zeggai.pdf]]&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=27037</id>
		<title>P33 Réalisations en faveur de l'accessibilité de jeux vidéos</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=27037"/>
				<updated>2016-02-11T15:56:14Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Semaine 17 */&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;
==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:logo_la_gerlotte.jpg|thumb|left|La Gerlotte de l'association La vie,autrement ...]]&lt;br /&gt;
&lt;br /&gt;
Les jeux vidéos se sont largement répandus dans le monde aujourd'hui et sont présents sur toutes les plates-formes : téléphones portables, consoles, ordinateur, tablettes. Ils offrent une expérience ludique et divertissante aux utilisateurs au nombre grandissant. Cependant jouer à un jeux vidéos demande de la pratique : il faut manipuler la souris ou le joystick avec brio tandis que la seconde main parcourt le clavier, les manettes de jeux de plus en plus complexes où nos doigts virevoltent en même temps sur les milliers de boutons. Tout cela requiert une grande concentration et des heures  d'apprentissage non négligeables. &lt;br /&gt;
&lt;br /&gt;
le sujet est d'autant plus difficile pour les personnes handicapées qui souhaitent s’amuser sur un jeu vidéo actuel. Quels sont les moyens qu’un accidenté lourd ou un individu handicapé depuis sa naissance, pourrait utiliser pour se détendre sur un jeu ? &lt;br /&gt;
En fonction de la nature du handicap, des solutions diverses et variées existent.&lt;br /&gt;
&lt;br /&gt;
La Gerlotte, est une maison d’accueil spécialisée de l'association La vie, autrement ..., qui accueille des adultes polyhandicapés dépendants dans tous les actes de la vie quotidienne, à l’exclusion des personnes présentant un gros trouble du comportement ou de la personne.&lt;br /&gt;
&lt;br /&gt;
Nous avons pour projet de permettre l'accessibilité de jeux vidéos aux personnes handicapées de l'établissement et de leur apporter ainsi ce moyen de divertissement.&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
Permettre à des personnes handicapées l'accès aux jeux vidéos.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Afin de rendre accessible des activités ludiques deux approches sont possibles, une adaptation ou une création des périphériques de jeux (manettes, ...) ou une modification de système existants en les rendant plus interactifs. Les enfants et adultes en situation de polyhandicap sont dans l'incapacité physique de manipuler les télécommandes et joysticks prévus avec les consoles de jeux vidéos classiques (wii, nintendo,..). Le projet est de pouvoir leur rendre accessibles ces moyens de se divertir en trouvant des adaptations (type contacteur) correspondant à leurs capacités. Quelques pistes envisagées (non exclusives) : une commande simple BCI (Brain Computer Interface) compatible avec les logiciels existants fonctionnant en mode défilement, ou encore un contacteur au clignement intentionnel de paupière enregistré par webcam...&lt;br /&gt;
Ce projet sera effectué à destination des habitants de la maison d'accueil spécialisée de La Gerlotte de Marcq-en-Barœul. Cette résidence accueille des personnes adultes polyhandicapées dépendantes.&lt;br /&gt;
&lt;br /&gt;
===Étapes du projet===&lt;br /&gt;
* Rencontre avec le personnel de la Gerlotte et établissement du cahier des charges et des attentes&lt;br /&gt;
* &amp;quot;Clôture&amp;quot; du cahier des charges et début de l'élaboration des adaptations convenues&lt;br /&gt;
* Tests des adaptations établies avec les résidents de la Gerlotte, et prise en compte des retours&lt;br /&gt;
&lt;br /&gt;
===Choix techniques : matériel et logiciel===&lt;br /&gt;
* Arduino Leonardo [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 13/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Sparkfun Analog Joystick [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 2 boutons poussoirs [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 1 (du 28/09/2015 au 04/10/2015)===&lt;br /&gt;
Rendez-vous à la Gerlotte du mercredi 30/09/2015 :&lt;br /&gt;
* Rencontre avec l'animateur Xavier Hantson et visite de l'établissement la Gerlotte&lt;br /&gt;
* Rencontre avec les résidents, présentation des infrastructures en place (adaptations, appareillages), et aperçu des différents handicaps pris en charge&lt;br /&gt;
* Réunion avec le directeur David Desmulier, l'ergothérapeute Thierry Danigo et M. Hantson. Brainstorming sur les différents moyens pour l'accessibilité aux jeux vidéos : adaptation, modification de manettes, OneSwitch, support handsfree, reconnaissance oculaire (Eye Tracking Tobii avec le SDK, tools et hardware pour 99 euros), le choix de l'eye track inclurait la création d'un jeux vidéo adapté.&lt;br /&gt;
* Accord pour le prochain rendez-vous au 14/10/2015, où un premier choix d'adaptation devra être fait afin de commencer les premiers travaux&lt;br /&gt;
&lt;br /&gt;
Après discussions avec M. Vantroys et M. Grisoni, la reconnaissance oculaire n'est pas un choix que nous conseillent nos professeurs et la création de jeux vidéos serait un travail beaucoup trop laborieux. À ce jour, nous restons dans l'idée de modification de manettes, périphériques  pour pouvoir jouer à des jeux déjà existant. Nous poursuivons nos recherches pour approfondir le sujet ou pour trouver d'autres possibilités.&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 (du 05/10/2015 au 11/10/2015)===&lt;br /&gt;
Recherche bibliographique sur les solutions et logiciels existants permettant l’accessibilité aux jeux vidéos pour les personnes handicapées (cf [http://www.capgame.fr CapGame]) :&lt;br /&gt;
* GlovePie : commande des jeux par la voix&lt;br /&gt;
* AltController : des boites virtuels simulent des touches du clavier lors du passage ou clic de la souris&lt;br /&gt;
* Kinesic Mouse : contrôle des jeux par mouvements de la tête, sourcils, lèvres, etc&lt;br /&gt;
* UnoJoy : librairie Arduino permettant à partir d'une manette existante ou crée, de la rendre compatible sur Windows/Mac/PS3&lt;br /&gt;
* Emulation d'un clavier/souris sur Windows à l'aide d'une plate-forme de développement SMT32F4 ou d'un Arduino Leonardo. Création d'une manette de jeux avec des boutons/joysticks de bornes d'arcades.&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 (du 12/10/2015 au 18/10/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 14/10/2015 en présence de M. Xavier Hantson, Thierry Danigo, Martin Nicolas, Laurent Grisoni.&lt;br /&gt;
&lt;br /&gt;
Proposition et Brainstorming sur les différentes solutions envisagés :&lt;br /&gt;
* adaptation d'une manette Wii à partir d'un projet déjà commencé l'an dernier ([https://projets-ima.polytech-lille.net:40079/mediawiki/index.php?title=P35_Hack-a-Wii_:_Emulation_de_wiimote_pour_rendre_la_Wii_accessibles_aux_personnes_handicap%C3%A9es lien]), solution orientée pour la console Nintendo Wii&lt;br /&gt;
* création d'une manette adaptable à partir d'un microcontrôleur de type Arduino par exemple, orientée plutôt pour les jeux PC.&lt;br /&gt;
* intégration de jeux vidéos devenus libres, jeux rétros de l'époque Atari, sur les systèmes Rapsberry Pi ou Banana Pi&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée au mercredi 4/11/2015 à 14h30 à La Gerlotte. Pour cette date, il a été convenu de créer un Google Docs ouvert à tous les encadrants du projet permettant de répertorier tous les liens des pistes de recherches abordées et des solutions déjà existantes en France ou à l'étranger. Lors de ce rendez-vous il est prévu d'observer l'utilisation d'un PC par certains résidents.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 (du 19/10/2015 au 25/10/2015)===&lt;br /&gt;
Durant cette semaine, nous avons discuté avec M. Vantroys sur la manière dont nous pourrions présenter un prototype du système imaginé. Il se présenterait sous la forme d'une simple manette constituée d'un joystick et de quelques boutons poussoirs, le tout contrôlé par un Arduino Leonardo. Ainsi, on pourrait présenter au personnel de la Gerlotte une simple manette permettant de jouer à des jeux émulés simples, manette qui serait algorithmiquement facile à paramétrer, et donc faire une démonstration de son fonctionnement.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les prochains jours sera de mettre en place et de tester cette manette.&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 Vacances de la Toussaint (du 26/10/2015 au 01/11/2015)===&lt;br /&gt;
Création d'une manette de jeux simple à l'aide d'un Arduino Leonardo.&lt;br /&gt;
&lt;br /&gt;
Le Leonardo a l'avantage d'être reconnu directement sur l'ordinateur comme un clavier/souris. Les classes Keyboard et Mouse permettent d'émuler ces périphériques d'entrées.&lt;br /&gt;
&lt;br /&gt;
Cependant pour pouvoir être reconnu en tant que manette de jeux il faut modifier la librairie standard USB et le descripteur HID.&lt;br /&gt;
&lt;br /&gt;
Plus d'informations sur notre dépôt Github pour l'Arduino Leonardo reconnu en tant que manette de jeux : [https://github.com/LuomuJie/JoystickLeonardo JoystickLeonardo]&lt;br /&gt;
&lt;br /&gt;
Ce prototype dispose d'un joystick analogique 2 axes et de 6 boutons poussoirs (1 bouton est inclus avec le joystick). Il est optimisé pour jouer à des jeux de GameBoy Advance ou rétros (SuperNES, Master System, Gameboy ...) dont les manettes ne disposent pas énormément de touches.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:kirby-nightmare-in-dream-land-gba-1.jpg|left|thumb|250px|Test de Kirby Nightmare in Dreamland sur GBA fonctionnel]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickLeonardo.jpg|thumb|center|300px|Arduino Leonardo comme manette de jeux]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 (du 02/11/2015 au 08/11/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 04/11/2015 en présence de M. Martin Nicolas:&lt;br /&gt;
* découverte de divers logiciels et matériels à disposition des résidents de La Gerlotte : émulateur de souris avec contacteurs (Mouse Mover), système joystick/clic gauche, logiciel de gestion de la souris à partir des mouvements du visage par webcam.&lt;br /&gt;
* observation de l'utilisation d'un ordinateur par un résident (Bertrand), notamment sur un jeu de fléchettes à partir d'un joystick et d'un bouton-clic. Bertrand comprend et agit normalement sur le jeu cependant il lui est difficile de coordonner plusieurs paramètres en même temps tels que la gestion de force et la précision du tir.&lt;br /&gt;
* présentation du premier prototype développé : la manette de jeux Arduino Leonardo. Démonstration sur un jeux de Game Boy Advance (Super Mario World) à partir du système d'émulation RomStation.&lt;br /&gt;
* discussion sur les diverses améliorations que l'on pourrait apporter sur le prototype : création d'une interface graphique permettant la gestion des fonctions implémentées dans la carte Arduino (gestion des touches et des options), automatisation des touches de manière physique ou algorithmique, éclatement des directions du joystick sur plusieurs contacteurs, adaptation jack-pin arduino afin d'utiliser les boutons switch de type Orby.&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée pour le mercredi 25/11/2015 à 14h30 à La Gerlotte. Pour cette date, nous poursuivrons nos recherches afin d'apporter des améliorations du prototype.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 (du 09/11/2015 au 15/11/2015)===&lt;br /&gt;
Rendez-vous au centre au centre CRNT de l'association APF (Association des Paralysés de France) avec M. Danigo. Nous avons récupéré quelques contacteurs, le standard de la connectique dans le domaine du handicap est le jack (principalement 3.5mm mono). Pour pouvoir les utiliser sur notre dispositif il faut utiliser des jacks femelles 3.5mm mono. Après présentation du prototype nous avons discuté de l'ergonomie du système. Il serait judicieux de construire un boitier où l'on brancherait les contacteurs dans les jacks femelles. Réaliser un PCB et ajouter des mousses à l'intérieur pour que le système soit plus solide.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:button.png|center|thumb|180px|Contacteur Jelly Bean Twist]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 (du 16/11/2015 au 22/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype par les jacks femelles 3.5mm mono pour pouvoir utiliser les contacteurs, et ajout d'interrupteurs à levier pour automatiser une touche.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 (du 22/11/2015 au 29/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 25/11/2015 en présence de M. Martin Nicolas, M.Xavier Hantson et M.Thierry Danigo:&lt;br /&gt;
* Présentation du prototype et des améliorations qui ont été apportées&lt;br /&gt;
* Discussion sur les prochaines modifications:&lt;br /&gt;
** Éclater le joystick sur plusieurs contacteurs tout en conservant le joystick (dans le but de rendre le système le plus accessible possible). Si le joystick est éclaté sous la forme de 4 boutons directionnels, il faudra penser à annuler la commande lorsque 2 directions contraires sont pressées (haut-bas et droite-gauche). &lt;br /&gt;
** Gérer l'automatisation d'une touche de façon périodique et non tout-ou-rien, fréquence qui devra être ajustable par potentiomètre par exemple.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 06/01/2016 à 14h30. Pour cette date, nous travaillerons et progresserons sur les axes d'amélioration qui nous ont été proposés, et nous ferons le point sur la soutenance de mi-parcours.&lt;br /&gt;
&lt;br /&gt;
Réunion à l'IRCICA du jeudi 26/11/2015 en présence de M. Laurent Grisoni, M.Samuel Desgrande et Mme.Patricia Plenacoste:&lt;br /&gt;
* Présentation du projet à l'Institut Médico-Éducatif Les Papillons Blancs. Nous avons observé une séquence vidéo dans laquelle un enfant handicapé mental et moteur joue à un jeu vidéo de tir sur une cible à partir d'une Kinect. La Kinect va détecter une accélération dans une zone globale et la difficulté consiste à séparer les mouvements parasites involontaires de l'enfant au geste décisif et intentionnel du lancer.&lt;br /&gt;
* Présentation de notre projet à La Gerlotte et du prototype de manette de jeux. L'idée d'une interface graphique permettant un mapping des commandes de la manette Arduino est envisageable. L'on pourrait configurer les touches afin qu'elles émulent l'appui de 2 touches successives (ex: saut + avancé). &lt;br /&gt;
* Le but de cette réunion serait d'envisager la fusion des 2 projets (Papillons Blancs et Gerlotte) ou l'échange des systèmes afin que dans chaque établissement puisse profiter des réalisations.&lt;br /&gt;
* Proposer à La Gerlotte de tester et s'approprier le prototype pendant 2-3 semaines afin d'avoir un feedback utilisateur.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 (du 30/11/2015 au 06/12/2015)===&lt;br /&gt;
Test du joystick HKD-FW22 pour fauteuil roulant switch 4 axes à connectique serre-fils (screw terminal). Un des interrupteurs est usé et réagit d'une mauvaise façon.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickScrew.jpg|center|thumb|180px|Joystick 4 Axis Screw Terminal]]&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype: automatisation de touches et réglage de la fréquence par des potentiomètres. Chaque potentiomètre est relié à un port analogique et va délivrer une tension. En fonction de la valeur de cette dernière, la période entre 2 appuis successifs sera défini. Par simplicité la fonction de calcul de la période est f(x) = 2 * x. La période maximale est de 2s, et la période minimale de 0s ce qui correspond à un appui constant.&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 (du 07/12/2015 au 13/12/2015)===&lt;br /&gt;
Étude des logiciels JoyMouse et JoyToKey avec une manette de jeux. &lt;br /&gt;
JoyMouse se concentre sur l'émulation d'une souris avec une manette. L'accélération, la sensibilité, la vitesse ainsi que les clics sont interfaçables facilement.&lt;br /&gt;
JoyToKey permet égalemment d'émuler les fonctions de la souris à partir d'une manette mais également simuler des touches claviers. L'interface est beaucoup plus complexes, avec des profils utilisateurs et il est possible d'automatiser une action.&lt;br /&gt;
&lt;br /&gt;
Implémentation Joystick-pad avec boutons. Fonctionne en parallèle du joystick analogique.&lt;br /&gt;
&lt;br /&gt;
Avancement du rapport.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 (du 14/12/2015 au 20/12/2015)===&lt;br /&gt;
&lt;br /&gt;
Finalisation du rapport et préparation de la soutenance mi-parcours.&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 (du 04/01/2016 au 10/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 06/01/2016 en présence de M. Martin Nicolas, Maxime (jeune en situation de handicap suivi par le SAVS Liévin) et M. Benoît Barbet:&lt;br /&gt;
* Maxime nous a fait part de son vécu et de ses attentes concernant son utilisation des jeux-vidéo. Nous avons ainsi pu lui présenter le fonctionnement de notre projet.&lt;br /&gt;
* Pour l'utilisation de son ordinateur, Maxime utilise un trackball qu'il commande au pied. Nous allons donc réfléchir à la possibilité d'intégrer un trackball à notre système par USB. Notre prototype va intégrer un port USB qui permettra d'utiliser tout types de périphériques de commandes tels qu'un trackball, une souris, un joystick USB, une clé Bluetooth.&lt;br /&gt;
* Nous avons aussi discuté de l'interface graphique qui permettrait de gérer les différentes combinaisons de commandes possibles. Nous travaillerons sur ce point dans les jours à venir et nous analyserons si une interface fonctionnelle est envisageable.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 20/01/2016 à 14h30. Pour cette date, nous poursuivrons les recherches sur les points évoqués ci-dessus, et nous rendrons notre prototype utilisable afin qu'il puisse être testé par quelques résidents et par Maxime.&lt;br /&gt;
&lt;br /&gt;
Finalisation des fonctionnalités du prototype et de son boitier. Le prototype sera mis à disposition de La Gerlotte le 20/01/2016.&lt;br /&gt;
&lt;br /&gt;
===Semaine 14 (du 11/01/2016 au 17/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Dans le but d'intégrer un port USB à notre prototype, nous utilisons un Raspbery Pi 2. Elle comprend 4 port USB, la distribution Linux que l'on utilise est Raspbian et nous connectons la Raspberry à l'Arduino Leonardo au travers du port série. L'on branche une souris sur l'un des ports USB et un script C va récupérer les événements de la souris (les coordonnées x et y) dans le dossier /dev/input/mice. Les données sont alors envoyés via le port série vers le Leonardo qui va les traduire en coordonnées du joystick. À l'aide de ce système il est alors possible de contrôler les déplacements de son personnage dans un jeux vidéos avec une souris ou un trackball.&lt;br /&gt;
&lt;br /&gt;
===Semaine 15 (du 18/01/2016 au 24/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Sixième réunion à La Gerlotte le mercredi 20/01/2016 en présence de MM. Martin Nicolas, Thierry Danigo.&lt;br /&gt;
&lt;br /&gt;
Nous avons présenté notre prototype prêt à être testé. Il a notamment été essayé par deux résidents de la Gerlotte, et par Maxime du SAVS Liévin, que nous avions rencontré lors de la réunion précédente.&lt;br /&gt;
&lt;br /&gt;
Nous avons connecté 4 contacteurs sur le prototype (2 touches de direction droite/gauche et 2 touches d'action), et les testeurs ont essayé le prototype sur un jeu simple : Tetris. Le test a été plutôt concluant, les utilisateurs arrivaient à utiliser les différents contacteurs avec plus ou moins de facilité. Aussi, nous avons essayé d'intégrer le trackball de Maxime dans notre système, et en retouchant la sensibilité du trackball, nous nous sommes aperçu que le trackball était parfaitement intégrable dans la manette.&lt;br /&gt;
&lt;br /&gt;
Nous avons laissé le prototype à La Gerlotte, afin qu'il puisse être testé &amp;quot;dans le quotidien&amp;quot; des résidents, et avoir un retour sur une telle utilisation.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au 03/02/2016 à 14h30. Pour cette date, nous poursuivrons notre travail sur l'interface graphique de gestion de commandes, et nous réfléchirons sur le design final du système (style du coffret), et sur la conception de plaques électroniques pour le système final.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:protoManetteTupe.jpg|thumb|center|300px|Prototype de manette de jeux prêt à l'emploi]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 16 (du 25/01/2016 au 31/01/2016)===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous avons continué l'interface graphique de gestion de commandes. Nous utilisons Processing qui est un environnement de développement libre, multi-plateforme, il permet de programmer en Java et de faire du prototypage rapide. &lt;br /&gt;
&lt;br /&gt;
L'interface graphique réalisé à l'aide de la librairie G4P, est un interface basique qui va permettre d'automatiser chaque bouton du joystick à l'aide de potentiomètres virtuels, mais également de pouvoir effectuer des combinaisons de touches. Des voyants indiquent l'appuie des boutons du joystick sur l'interface. &lt;br /&gt;
&lt;br /&gt;
Concernant la communication de Processing à Arduino nous restons sur le classique envoie-réception série de mots-clés qui vont permettent de modifier le comportement de l'Arduino et ainsi pouvoir remapper les commandes ou les automatiser.&lt;br /&gt;
&lt;br /&gt;
===Semaine 17 (du 01/02/2016 au 07/02/2016)===&lt;br /&gt;
&lt;br /&gt;
Compte-rendu de la réunion du mercredi 03/02/2016 à La Gerlotte :&lt;br /&gt;
&lt;br /&gt;
*Retours sur l'utilisation du proto de manette de jeux que nous avons mis à disposition de La Gerlotte durant 2 semaines. Retours positifs et encourageant, utilisation sur des jeux simples tels que Tetris. Utilisation de 3 contacteurs pour les commandes Gauche, Droite et Rotation du bloc. Manipulation autonome des résidents ou aide d'un ergo pour jouer au jeu (au cas par cas des résidents).&lt;br /&gt;
*Partage des commandes entre 2 utilisateurs, permet d'apporter au système une dimension sociale et conviviale. Vincent notamment maitrise parfaitement les commandes de Tetris et a pu jouer pendant plus de 1h sur le jeu de façon autonome. &lt;br /&gt;
*Les jeux nécessitent d'être basiques et d'avoir un arrière plan fixe (tetris, pac-man, casse-brique, jeux de combats en 2D par exemple) car la plupart des résidents sont épileptiques. Si l'on prend un jeu de course simple (par ex mario kart) le 1er plan (voiture et perso, route) et l'arrière plan (décor, paysage) changent en permanence, ce qui peut engendrer une sensation de vertige à un épileptique et causer une crise. Notre système offre beaucoup de possibilités d'adaptation pour les résidents. &lt;br /&gt;
*Une salle multimédia musique et vidéo va être aménagée à La Gerlotte, la manette de jeux sera mise à disposition dans cette salle et des activités de jeux vidéos seront prévues telles que des tournois entre résidents, jeux en coopération, et permettra aux résidents de s'épanouir tout en améliorant autant leurs capacités motrices, leurs réflexes et ainsi les soigner.&lt;br /&gt;
&lt;br /&gt;
Nous avons décrit également l'avancement sur l'interface graphique pour paramétrer l'automatisation des touches et des combinaisons de touches. Cette interface apporterait plus de possibilités d'adaptation au système. Quelques soucis avec la communication de l'interface avec l'Arduino et quelques soucis à intégrer les fonctions de communication sans modifier toute l'architecture et le code en place sur l'Arduino.&lt;br /&gt;
Nous nous sommes mis d'accord sur le fait que 2 boitiers seront réalisés à l'aide de l'imprimante 3D : un boitier pour le système central (Arduino et RaspberryPi) et un boitier pour le joystick et les commandes de direction. Les PCB seront mis en place, le tout pour avoir un produit fini et stable. Ce dernier sera mis à disposition de La Gerlotte.&lt;br /&gt;
&lt;br /&gt;
2 autres manettes supplémentaires seront réalisé, pour Maxime de Liévin et peut-être Le Hameau ?&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée le mercredi 17/02/2016 14h30 où il sera prévu de tester le produit final, et égalemment de prendre une vidéo d'utilisation de la manette par un/des résident(s).&lt;br /&gt;
&lt;br /&gt;
== Fichiers Rendus ==&lt;br /&gt;
Dépôt Github du projet : [https://github.com/LuomuJie/JoystickLeonardo JoystickLeonardo]&lt;br /&gt;
&lt;br /&gt;
Rapport intermédiaire du projet : [[Fichier:PFE_IMA5_Rapport_intermediaire_Bailet_Zeggai.pdf]]&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Station_m%C3%A9t%C3%A9o_connect%C3%A9e&amp;diff=25164</id>
		<title>Station météo connectée</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Station_m%C3%A9t%C3%A9o_connect%C3%A9e&amp;diff=25164"/>
				<updated>2016-01-20T22:32:53Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Envoie de données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
====Présentation générale du projet====&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste en la création d'une station météo nous donnant la température, éventuellement l'humidité et la luminosité.&amp;lt;br&amp;gt;&lt;br /&gt;
Nous devons avoir un système basse consommation, c'est pourquoi nous devons utiliser un système de mise en veille.&lt;br /&gt;
&lt;br /&gt;
=====Objectif du projet=====&lt;br /&gt;
&lt;br /&gt;
L'objectif sera de pouvoir offrir la possibilité à un utilisateur d'obtenir un certain nombre de données météorologiques en temps réel via une page web.&lt;br /&gt;
&lt;br /&gt;
=====Description du projet=====&lt;br /&gt;
&lt;br /&gt;
Nous devons avoir un système embarqué qui récupérera des informations météorologiques telles que la température, la pression, l'humidité, la luminosité.&amp;lt;br&amp;gt;&lt;br /&gt;
Ces données seront envoyées en wifi à un serveur web qui affichera les informations météorologiques en temps réel.&amp;lt;br&amp;gt;&lt;br /&gt;
Nous nous intéresserons donc au côté Gestion d'énergie avec un mode veille/éveil de notre système embarqué,  également au stockage des données, sûrement dans une base de données et leur affichage sur une page web. &lt;br /&gt;
&amp;lt;br&amp;gt;(Nous pourrons utiliser le serveur web créé en Projet de PRA).&lt;br /&gt;
&lt;br /&gt;
=====Choix techniques : matériel et logiciel=====&lt;br /&gt;
&lt;br /&gt;
*Nous utiliserons une carte équipée d'un microcontrôleur et d'un module Wifi à savoir : HUZZAH ESP8266 proposé par Adafruit Industries :&amp;lt;br&amp;gt;&lt;br /&gt;
 https://www.adafruit.com/products/2471&lt;br /&gt;
*Nous coderons le tout via l'IDE Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
*Nous utiliserons notre machine virtuelle pour stocker les données et les publier sur le site créé en Projet PRA.&amp;lt;br&amp;gt;&lt;br /&gt;
*Nous n'avons pas encore réfléchi au sujet de l'alimentation (batterie, pile...)&lt;br /&gt;
&lt;br /&gt;
==Étapes du projet==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 1 : &amp;lt;/b&amp;gt;Récupérer une donnée (température dans un premier temps) et la stocker sur notre machine virtuelle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 2 : &amp;lt;/b&amp;gt;Interface web et affichage des données&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 3 : &amp;lt;/b&amp;gt;Mode veille et activation du réveil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 4 : &amp;lt;/b&amp;gt;Essais en extérieur&lt;br /&gt;
&lt;br /&gt;
==Suivi de l'avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
=====Mise en jambe=====&lt;br /&gt;
Nous nous sommes intéressés au choix du matériel et à la prise en main de celui-ci.&amp;lt;br&amp;gt;&lt;br /&gt;
Nous avons donc travaillé avec l'ESP8266 d'Adafruit Industries via l'IDE Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Accès à une page web avec l'ESP8266=====&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps cherché à savoir comment utiliser le module wifi et récupérer par exemple une page web.&lt;br /&gt;
Nous avons utilisé un exemple contenu dans la bibliothèque Adafruit, permettant de réaliser une requête HTTP en se connectant à un réseau Wifi.&lt;br /&gt;
Le module se connecte donc à notre smartphone en Wifi et effectue une requête HTTP basique vers un site quelconque, puis nous renvoie le code html de la page.&lt;br /&gt;
&lt;br /&gt;
=====Envoi de données=====&lt;br /&gt;
&lt;br /&gt;
Avant de s'intéresser aux capteurs que nous intégrerons par la suite, nous avons regardé comment envoyer une donnée (rentrée en statique dans le code Arduino) et l'afficher sur une page web. Pour ce, nous avons simplement fait une requête http sur une page php comportant un script. Nous avons mis un script basique qui crée un fichier et écrit dedans la valeur de la donnée. Nous affichons le contenu du fichier sur notre page web d'application.&lt;br /&gt;
Cette page php sera donc uniquement appelée par notre ESP8266 et les valeurs seront affichées sur une page web. Les données sont contenues dans l'url et récupérées par le script php.&lt;br /&gt;
&lt;br /&gt;
=====Stockage des données=====&lt;br /&gt;
&lt;br /&gt;
Pour le stockage des données, nous avions dans un premier temps pensé à une base de données mais nous nous sommes plutôt tourné vers un stockage dans un fichier json pour l'affichage de celui-ci dynamiquement en javascript. &lt;br /&gt;
&lt;br /&gt;
=====Interface Web=====&lt;br /&gt;
&lt;br /&gt;
Nous avons pensé à une interface user-friendly dynamique grâce à AngularJS. Nous allons d'ailleurs y afficher, en plus des données météorologiques envoyées par notre station météo, les détails de notre système : Les technologies, le code, un lien vers le wiki...&lt;br /&gt;
Les données sont injectées dans la page web dynamiquement à partir du fichier json contenant les valeurs grâce à angular.&lt;br /&gt;
Le tableau de données pourra être trié par date, heure, température, humidité.&lt;br /&gt;
 http://iot.thibautscholaert.com/&lt;br /&gt;
&lt;br /&gt;
=====Application Android=====&lt;br /&gt;
&lt;br /&gt;
L'application Android affichera les données dans une ListView, du relevé le plus récent au plus ancien.  Une requête vers le fichier JSON correspondant est exécutée, et chaque relevé (date-heure-température-humidité) est enregistré dans une base de données SQLite dans le téléphone. La liste est constituée à partir de cette base de données. Pour un relevé, la date, l'heure, la température et l'humidité sont affichés dans un même item. La liste sera actualisable via un bouton spécialement affecté. L'idée de l'application nous étant venue assez tard, l'affichage de cette liste reste (pour l'instant ?) basique, sans mise en forme particulière.&lt;br /&gt;
&lt;br /&gt;
=====Mode Veille=====&lt;br /&gt;
&lt;br /&gt;
Nous avons également pensé comme prévu à un mode veille question d'économie d'énergie. L'objet connecté sera en mode veille presque tout le temps et se réveillera toutes les 30 minutes pour envoyer les données instantanées : température, humidité, date et heure. Cette tâche prend très peu de temps, de l'ordre de quelques secondes, ce temps dépend beaucoup du temps de connection à la borne Wifi (notre téléphone). Nous avons donc un système basse consommation grâce à ce mode veille/réveil.&lt;br /&gt;
Aussi, le système embarquera une batterie d'une tension de 3V qui est capable d'alimenter le module ESP8266.&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Station_m%C3%A9t%C3%A9o_connect%C3%A9e&amp;diff=25162</id>
		<title>Station météo connectée</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Station_m%C3%A9t%C3%A9o_connect%C3%A9e&amp;diff=25162"/>
				<updated>2016-01-20T22:28:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
====Présentation générale du projet====&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste en la création d'une station météo nous donnant la température, éventuellement l'humidité et la luminosité.&amp;lt;br&amp;gt;&lt;br /&gt;
Nous devons avoir un système basse consommation, c'est pourquoi nous devons utiliser un système de mise en veille.&lt;br /&gt;
&lt;br /&gt;
=====Objectif du projet=====&lt;br /&gt;
&lt;br /&gt;
L'objectif sera de pouvoir offrir la possibilité à un utilisateur d'obtenir un certain nombre de données météorologiques en temps réel via une page web.&lt;br /&gt;
&lt;br /&gt;
=====Description du projet=====&lt;br /&gt;
&lt;br /&gt;
Nous devons avoir un système embarqué qui récupérera des informations météorologiques telles que la température, la pression, l'humidité, la luminosité.&amp;lt;br&amp;gt;&lt;br /&gt;
Ces données seront envoyées en wifi à un serveur web qui affichera les informations météorologiques en temps réel.&amp;lt;br&amp;gt;&lt;br /&gt;
Nous nous intéresserons donc au côté Gestion d'énergie avec un mode veille/éveil de notre système embarqué,  également au stockage des données, sûrement dans une base de données et leur affichage sur une page web. &lt;br /&gt;
&amp;lt;br&amp;gt;(Nous pourrons utiliser le serveur web créé en Projet de PRA).&lt;br /&gt;
&lt;br /&gt;
=====Choix techniques : matériel et logiciel=====&lt;br /&gt;
&lt;br /&gt;
*Nous utiliserons une carte équipée d'un microcontrôleur et d'un module Wifi à savoir : HUZZAH ESP8266 proposé par Adafruit Industries :&amp;lt;br&amp;gt;&lt;br /&gt;
 https://www.adafruit.com/products/2471&lt;br /&gt;
*Nous coderons le tout via l'IDE Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
*Nous utiliserons notre machine virtuelle pour stocker les données et les publier sur le site créé en Projet PRA.&amp;lt;br&amp;gt;&lt;br /&gt;
*Nous n'avons pas encore réfléchi au sujet de l'alimentation (batterie, pile...)&lt;br /&gt;
&lt;br /&gt;
==Étapes du projet==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 1 : &amp;lt;/b&amp;gt;Récupérer une donnée (température dans un premier temps) et la stocker sur notre machine virtuelle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 2 : &amp;lt;/b&amp;gt;Interface web et affichage des données&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 3 : &amp;lt;/b&amp;gt;Mode veille et activation du réveil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 4 : &amp;lt;/b&amp;gt;Essais en extérieur&lt;br /&gt;
&lt;br /&gt;
==Suivi de l'avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
=====Mise en jambe=====&lt;br /&gt;
Nous nous sommes intéressés au choix du matériel et à la prise en main de celui-ci.&amp;lt;br&amp;gt;&lt;br /&gt;
Nous avons donc travaillé avec l'ESP8266 d'Adafruit Industries via l'IDE Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Accès à une page web avec l'ESP8266=====&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps cherché à savoir comment utiliser le module wifi et récupérer par exemple une page web.&lt;br /&gt;
Nous avons utilisé un exemple contenu dans la bibliothèque Adafruit, permettant de réaliser une requête HTTP en se connectant à un réseau Wifi.&lt;br /&gt;
Le module se connecte donc à notre smartphone en Wifi et effectue une requête HTTP basique vers un site quelconque, puis nous renvoie le code html de la page.&lt;br /&gt;
&lt;br /&gt;
=====Envoie de données=====&lt;br /&gt;
&lt;br /&gt;
Avant de s'intéresser aux capteurs que nous intégrerons par la suite, nous avons regardé comment envoyer une donnée (rentrée en statique dans le code Arduino) et l'afficher sur une page web. Pour ce, nous avons simplement fait une requête http sur une page php comportant un script. Nous avons mis un script basique qui crée un fichier et écrit dedans la valeur de la donnée. Nous affichons le contenu du fichier sur notre page web d'application.&lt;br /&gt;
Cette page php sera donc uniquement appelée par notre ESP8266 et les valeurs seront affichées sur une page web. Les données sont contenues dans l'url et récupérées par le script php.&lt;br /&gt;
&lt;br /&gt;
=====Stockage des données=====&lt;br /&gt;
&lt;br /&gt;
Pour le stockage des données, nous avions dans un premier temps pensé à une base de données mais nous nous sommes plutôt tourné vers un stockage dans un fichier json pour l'affichage de celui-ci dynamiquement en javascript. &lt;br /&gt;
&lt;br /&gt;
=====Interface Web=====&lt;br /&gt;
&lt;br /&gt;
Nous avons pensé à une interface user-friendly dynamique grâce à AngularJS. Nous allons d'ailleurs y afficher, en plus des données météorologiques envoyées par notre station météo, les détails de notre système : Les technologies, le code, un lien vers le wiki...&lt;br /&gt;
Les données sont injectées dans la page web dynamiquement à partir du fichier json contenant les valeurs grâce à angular.&lt;br /&gt;
Le tableau de données pourra être trié par date, heure, température, humidité.&lt;br /&gt;
 http://iot.thibautscholaert.com/&lt;br /&gt;
&lt;br /&gt;
=====Application Android=====&lt;br /&gt;
&lt;br /&gt;
L'application Android affichera les données dans une ListView, du relevé le plus récent au plus ancien.  Une requête vers le fichier JSON correspondant est exécutée, et chaque relevé (date-heure-température-humidité) est enregistré dans une base de données SQLite dans le téléphone. La liste est constituée à partir de cette base de données. Pour un relevé, la date, l'heure, la température et l'humidité sont affichés dans un même item. La liste sera actualisable via un bouton spécialement affecté. L'idée de l'application nous étant venue assez tard, l'affichage de cette liste reste (pour l'instant ?) basique, sans mise en forme particulière.&lt;br /&gt;
&lt;br /&gt;
=====Mode Veille=====&lt;br /&gt;
&lt;br /&gt;
Nous avons également pensé comme prévu à un mode veille question d'économie d'énergie. L'objet connecté sera en mode veille presque tout le temps et se réveillera toutes les 30 minutes pour envoyer les données instantanées : température, humidité, date et heure. Cette tâche prend très peu de temps, de l'ordre de quelques secondes, ce temps dépend beaucoup du temps de connection à la borne Wifi (notre téléphone). Nous avons donc un système basse consommation grâce à ce mode veille/réveil.&lt;br /&gt;
Aussi, le système embarquera une batterie d'une tension de 3V qui est capable d'alimenter le module ESP8266.&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=24902</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=24902"/>
				<updated>2016-01-14T13:37:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* PCBX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
===Partie commutateur===&lt;br /&gt;
===== Semaine 1 (01/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
===== Semaine 2 (08/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
===== Semaine 3 (15/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration réseau du commutateur se déroule en 3 étapes.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on configure les liaisons trunk. Il s'agit ici de la liaison qui relie le commutateur au routeur en E304, sur l'interface 4/1, et la liaison câble qui relie le commutateur au routeur en E306 sur l'interface 2/2. On entre donc les commandes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
 conf t &lt;br /&gt;
 int Gi4/1&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 1,11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 int Gi2/2&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 interface GigabitEthernet4/10&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé les VLAN 11-20, 110 et 130 de cette façon :&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 vlan 11&lt;br /&gt;
 name vlan11&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On leur attribue ensuite un port physique du commutateur :&lt;br /&gt;
&lt;br /&gt;
 int Gi4/11&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport access vlan 11&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On obtient donc le schéma physique suivant :&lt;br /&gt;
&lt;br /&gt;
*VLAN11 : Gigabit 4/11&lt;br /&gt;
*VLAN12 : Gigabit 4/12&lt;br /&gt;
*VLAN13 : Gigabit 4/13&lt;br /&gt;
*VLAN14 : Gigabit 4/14&lt;br /&gt;
*VLAN15 : Gigabit 4/15&lt;br /&gt;
*VLAN16 : Gigabit 4/16&lt;br /&gt;
*VLAN17 : Gigabit 4/17&lt;br /&gt;
*VLAN18 : Gigabit 4/18&lt;br /&gt;
*VLAN19 : Gigabit 4/19&lt;br /&gt;
*VLAN20 : Gigabit 4/20&lt;br /&gt;
*VLAN 110 : Gigabit 5/1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Semaine 9 (26/11/2015) =====&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter la borne wifi au commutateur, on rajoute le vlan 1 dans l'interface 4/10 :&lt;br /&gt;
&lt;br /&gt;
 interface GigabitEthernet4/10&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 1, 11-20,110,130&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En mode trunk pour que la borne ait accès à tous les vlan.&lt;br /&gt;
Le vlan est configuré de cette facon :&lt;br /&gt;
  Internet address is 10.10.10.1/24&lt;br /&gt;
  Broadcast address is 255.255.255.255&lt;br /&gt;
&lt;br /&gt;
=== VM xen ===&lt;br /&gt;
====Création de la machine====&lt;br /&gt;
&lt;br /&gt;
===== Semaine 3 (15/10/2015) =====&lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
===== Semaine 4 (22/10/2015) =====&lt;br /&gt;
*On lance la VM xen:&lt;br /&gt;
 xl create /etc/xen/KARMELIET.cfg&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur DNS et SSH:&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
==== Configuration du serveur apache et installation du certificat SSL ====&lt;br /&gt;
Pour activer le certificat SSL, nous devons à la fois manipuler sur notre machine Xen et sur le site gandi. Nous nous sommes d'ailleurs aidés des tutoriels gandi pour réaliser cette tâche. Nous certifions les domaines ''www.zegbicho.lol'' et ''zegbicho.lol''. Nous avons tout d'abord besoin de clés, on génère donc le premier fichier .csr à fournir à gandi avec la commande :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout zegbicho.lol.key -out zegbicho.lol.csr&lt;br /&gt;
&lt;br /&gt;
Cette commande nous a donc généré deux fichier : un fichier .key qui correspond à notre clé privée et un .csr ( clé publique) que nous devons fournir à gandi. Ce dernier nous retourne alors un .crt, nous supprimons aors la .crs dont nous n'avons plus besoin. Nous décidons de les ranger dans des dossier situés dans le dossier /etc/ssl/ de notre machine xen :&lt;br /&gt;
*Le fichier .crt dans /etc/ssl/certs/&lt;br /&gt;
*le fichier .key dans /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Nous allons à présent suivre le tutoriel gandi : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/ssl&lt;br /&gt;
&lt;br /&gt;
On active le module ssl d'apache :&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Puis on fait en sorte qu'apache écoute sur le port 443, on édite donc le fichier de configuration /etc/apache2/ports.conf et on ajoute:&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    Listen 443&lt;br /&gt;
    NameVirtualHost 193.48.57.164:443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous pouvons obtenir le certificat intermédiare de gandi.&lt;br /&gt;
Nous récupérons le fichier GandiStandardSSLCA2.pem qui nous plaçons dans le répertoire /etc/ssl/certs/&lt;br /&gt;
On effectue le rehash de la structure ssl:&lt;br /&gt;
 c_rehash /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un domaine sur notre apache sécurisé, on crée le site dédié www.zegbicho.lol.&lt;br /&gt;
Enfin, on ajoute un VirtualHost servant le contenu du dossier /var/www/www.zegbicho.lol/ sur le port 443, dans /etc/apache2/sites-available/000-zegbicho.lol-ssl.conf : &lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *:443&lt;br /&gt;
  &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ServerName www.zegbicho.lol&lt;br /&gt;
        ServerAlias zegbicho.lol&lt;br /&gt;
        DocumentRoot /var/www/www.zegbicho.lol/&lt;br /&gt;
        CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/ssl/certs/zegbicho.lol.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/zegbicho.lol.key&lt;br /&gt;
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la chaine SSl crée avec la commande : &lt;br /&gt;
 openssl s_client -connect 193.48.57.164:443&lt;br /&gt;
Notre chaine est validée, on passe donc à la configuration du serveur DNS&lt;br /&gt;
&lt;br /&gt;
==== Serveur DNS et DNSSEC avec Bind ====&lt;br /&gt;
&lt;br /&gt;
Nous nous aidons ici aussi des tutos gandi&lt;br /&gt;
&lt;br /&gt;
Il s'agira tout d'abord de s'occuper du changement de DNS sur le site gandi.&lt;br /&gt;
Nous devons au prélable gérer les glue records : https://wiki.gandi.net/fr/domains/management/change-glue&lt;br /&gt;
On va alors créer un enregistrement Glue :&lt;br /&gt;
*Nom du serveur : ns.zegbicho.lol&lt;br /&gt;
*Adresse IP : 193.48.57.164&lt;br /&gt;
&lt;br /&gt;
On peut alors modifier les serveurs de nom sur gandi.net : https://wiki.gandi.net/fr/dns/change&lt;br /&gt;
*DNS1 : ns.zegbicho.lol&lt;br /&gt;
*DNS2 : ns6.gandi.net&lt;br /&gt;
On utilise un serveur DNS secondaire appartenant à gandi.&lt;br /&gt;
&lt;br /&gt;
On attends la propagation DNS et on s'attaque à la configuration de BIND : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/bind&lt;br /&gt;
&lt;br /&gt;
Toute cette configuration s'effectue dans le dossier /etc/bind/&lt;br /&gt;
&lt;br /&gt;
On commence par créer un dossier zones dans lequel on créer un fichier de zone /etc/bind/zones/db.zegbicho.lol :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
  &lt;br /&gt;
 @       IN      SOA     ns.zegbicho.lol. root.zegbicho.lol. (&lt;br /&gt;
                     2015102001         ; Serial&lt;br /&gt;
                          86400         ; Refresh&lt;br /&gt;
                           3600         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                          86400 )       ; Negative Cache TTL&lt;br /&gt;
  &lt;br /&gt;
 $include /etc/bind/zegbicho.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/zegbicho.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
  &lt;br /&gt;
 @       IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns      IN      A       193.48.57.164&lt;br /&gt;
 www     IN      A       193.48.57.164&lt;br /&gt;
 michel  IN      A       193.48.57.164&lt;br /&gt;
 ns      IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 michel  IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 @       IN      A       193.48.57.164&lt;br /&gt;
 @       IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis on créer le fichier définissant la zone inverse pour la résolution des adresses IP, 57.48.193.in-addr.arpa :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
  &lt;br /&gt;
 @       IN       SOA     ns.zegbicho.lol. root.zegbicho.lol.     (&lt;br /&gt;
        2015102001       ;serial&lt;br /&gt;
        14400            ;refresh&lt;br /&gt;
        3600             ;retry&lt;br /&gt;
        604800           ;expire&lt;br /&gt;
        10800            ;minimum&lt;br /&gt;
 )&lt;br /&gt;
  &lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.&lt;br /&gt;
  &lt;br /&gt;
 164               IN      PTR     zegbicho.lol. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On modifie ensuite le fichier de configuration /etc/bind/named.conf.local, dans lequel on ajoute les zones :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;zegbicho.lol&amp;quot; {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/db.zegbicho.lol.signed&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
       notify yes;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;57.48.193.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/57.48.193.in-addr.arpa&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On finit avec la sécurisation DNS avec DNSSEC: On remarque que le fichier référencé dans /etc/bind/named.conf.local est&lt;br /&gt;
 /etc/bind/zones/db.zegbicho.lol.signed&lt;br /&gt;
Ce fichier est créé après la signature de la zone, mais nous devons tout d'abord réaliser quelques manipulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNSSEC est un protocole de sécurisation du protocole DNS. Celui-ci a pour but de signer les informations publiées grâce à un jeu de clés chiffrées.&lt;br /&gt;
On crée donc 2 clés : une Key Signing Key (KSK) et une Zone Signing Key (ZSK). Pour accélérer la génération nous utilisons l'option -r /dev/urandom qui permet d'utiliser une génération pseudo-aléatoire au lieu d'une génération /dev/random par défaut.&lt;br /&gt;
&lt;br /&gt;
Génération de la KSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE zegbicho.lol&lt;br /&gt;
Génération de la ZSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE zegbicho.lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On obtient donc 4 clés. En effet, à chaque génération de clé, on obtient une clé publique et une clé privée. Pour s'y retrouver, on renomme ces clés et on les place dans un dossier qu'on créer : /etc/bind/zegbicho.lol.dnssec&lt;br /&gt;
Ces clés (les deux clés publiques) sont référées dans le fichier de zone db.zegbicho.lol :&lt;br /&gt;
 $include /etc/bind/zegbicho.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/zegbicho.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va ensuite sur gandi.net dans la rubrique &amp;quot;gérer DNSSEC&amp;quot; et on leur fourni les deux clés publiques KSK et ZSK. Il peut alors les propager.&lt;br /&gt;
&lt;br /&gt;
Finalement, on signe la zone avec la commande suivante :&lt;br /&gt;
 dnssec-signzone -o zegbicho.lol -k zegbicho.lol.dnssec/zegbicho.lol-ksk zones/db.zegbicho.lol zegbicho.lol.dnssec/zegbicho.lol-zsk&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer le fichier /etc/bind/zones/db.zegbicho.lol.signed qu'on réfère dans le fichier de configuration /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
On finit alors par créer et éditer le fichier de cofiguration des options : /etc/bind/named.conf.options :&lt;br /&gt;
 options {&lt;br /&gt;
          dnssec enable yes;&lt;br /&gt;
          dnssec-validation yes;&lt;br /&gt;
          dnssec-lookaside auto;&lt;br /&gt;
          listen-on-v6 {any;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
==== Vérification de la fonctionnalité de notre site ====&lt;br /&gt;
&lt;br /&gt;
On entre l'URL zegbicho.lol, qui est automatiquement redirigée vers https://zegbicho.lol&lt;br /&gt;
On remarque que le certificat est valide. &amp;lt;br&amp;gt;&lt;br /&gt;
La page est uniquement accessible en https car nous avons modifié le fichier de confguration etc/apache2/sites-available/000-default.conf:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
 .....&lt;br /&gt;
 Redirect permanent / https://zegbicho.lol&lt;br /&gt;
 ....&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On test également notre configuration avec l'outil DNSSEC de l'outil https://www.zonemaster.fr/ et on remarque que le DNSSEC est validé/actif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site web réalisé est donc sécurisé !&lt;br /&gt;
&lt;br /&gt;
===Wifi===&lt;br /&gt;
====Tests d'intrusion par cassage de clé WEP====&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, on passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 7 --write out mon0&lt;br /&gt;
&lt;br /&gt;
En parallèle de ce processus, on peut lancer le cassage de la clé WEP avec la commande :&lt;br /&gt;
 aircrack-ng out-01.cap&lt;br /&gt;
&lt;br /&gt;
Après quelques minutes d'attente (soit env. 66249 IVs), on obtient enfin notre clé :&lt;br /&gt;
 KEY FOUND! [ 55:55:55:55:55:55:55:55:55:55:55:11:11 ]&lt;br /&gt;
&lt;br /&gt;
====Wifi : Cassage de clé WPA-PSK par force brute====&lt;br /&gt;
&lt;br /&gt;
Pour craquer ce type de clé, il faut trouver un moyen un peu plus complexe car aircrack n'est pas capable de trouver la clé par ses propres moyens. Il est nécessaire de lui fournir un dictionnaire contenant la clé de réseau pour espérer pouvoir s'y connecter. Nous avons donc commencé par générer un dictionnaire comprenant cent millions de clés (tous les nombres à 8 chiffres : 00000000 à 99999999). Nous avons pour cela créé un petit code C :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 int main(){&lt;br /&gt;
             int i=0;&lt;br /&gt;
             FILE* dico = fopen(&amp;quot;dictionnaire.txt&amp;quot;,&amp;quot;w+&amp;quot;);&lt;br /&gt;
             for(i=0;i&amp;lt;=99999999;i++){&lt;br /&gt;
             fprintf(dico, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
           }&lt;br /&gt;
           fclose(dico);&lt;br /&gt;
           return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 12 --write crackage_wpa-psk.txt mon0&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le cassage de la clé WPA-PSK en référant notre dictionnaire créé précédemment avec la commande :&lt;br /&gt;
 aircrack-ng -w dictionnaire.txt crackage_wpa-psk.txt-02.cap&lt;br /&gt;
&lt;br /&gt;
Le test des clés se fait à une vitesse moyenne de 3700 clés par seconde.&amp;lt;br&amp;gt;&lt;br /&gt;
Après quelques minutes d'attente , on obtient enfin notre clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Craquage_WPA_PSK.png |thumb|center| 600px|&amp;lt;center&amp;gt;Craquage WPA-PSK&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
===Sécurisation des données===&lt;br /&gt;
&lt;br /&gt;
*On crée les trois partitions LVM de 1Go : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid1 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid2 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid3 -v&lt;br /&gt;
&lt;br /&gt;
*On ajoute les partitions dans le fichier de configuration : &lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/disk.img,xvda2,w',&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/swap.img,xvda1,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-home,xvdc,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-var,xvdb,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid1,xvdd,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid2,xvde,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid3,xvdf,w',&lt;br /&gt;
          ]&lt;br /&gt;
&lt;br /&gt;
*Puis, on crée le RAID5 logiciel à l'aide de la commande: &lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd /dev/xvde /dev/xvdf&lt;br /&gt;
&lt;br /&gt;
*Pour vérifier que notre md0 a été correctement créé, on exécute la commande:&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
 Personalities : [raid6] [raid5] [raid4] &lt;br /&gt;
 md0 : active raid5 xvdf[2] xvde[1] xvdd[0]&lt;br /&gt;
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Et pour vérifier notre RAID5 logiciel avec les trois partitions :&lt;br /&gt;
   mdadm --detail /dev/md/KARMELIET\:0 &lt;br /&gt;
Ce qui donne :&lt;br /&gt;
         Version : 1.2&lt;br /&gt;
   Creation Time : Thu Nov 26 13:40:21 2015&lt;br /&gt;
      Raid Level : raid5&lt;br /&gt;
      Array Size : 2095104 (2046.34 MiB 2145.39 MB)&lt;br /&gt;
   Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)&lt;br /&gt;
    Raid Devices : 3&lt;br /&gt;
   Total Devices : 3&lt;br /&gt;
     Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
     Update Time : Thu Nov 26 13:49:20 2015&lt;br /&gt;
           State : clean &lt;br /&gt;
  Active Devices : 3&lt;br /&gt;
 Working Devices : 3&lt;br /&gt;
  Failed Devices : 0&lt;br /&gt;
   Spare Devices : 0&lt;br /&gt;
 &lt;br /&gt;
          Layout : left-symmetric&lt;br /&gt;
      Chunk Size : 512K&lt;br /&gt;
 &lt;br /&gt;
            Name : KARMELIET:0  (local to host KARMELIET)&lt;br /&gt;
            UUID : 4bb46fbe:6292cc6b:5fdccfcc:a4a94ae3&lt;br /&gt;
          Events : 2&lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice State&lt;br /&gt;
       0     202       48        0      active sync   /dev/xvdd&lt;br /&gt;
       1     202       64        1      active sync   /dev/xvde&lt;br /&gt;
       2     202       80        2      active sync   /dev/xvdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir redémarré la VM, on remarque que le volume nouvellement créé nommé md0 a été remplacé par md127.&lt;br /&gt;
&lt;br /&gt;
Après avoir supprimé une partition, on refait la commande :&lt;br /&gt;
  mdadm --detail /dev/md127&lt;br /&gt;
&lt;br /&gt;
Et on obtient :&lt;br /&gt;
  Version : 1.2&lt;br /&gt;
  Raid Level : raid0&lt;br /&gt;
  Total Devices : 2&lt;br /&gt;
  Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
          State : inactive&lt;br /&gt;
 &lt;br /&gt;
           Name : KARMELIET:0  (local to host KARMELIET)&lt;br /&gt;
           UUID : 4bb46fbe:6292cc6b:5fdccfcc:a4a94ae3&lt;br /&gt;
         Events : 2&lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice&lt;br /&gt;
 &lt;br /&gt;
       -     202       48        -        /dev/xvdd&lt;br /&gt;
       -     202       64        -        /dev/xvde&lt;br /&gt;
On vérifie le volume md127 :&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
On a :&lt;br /&gt;
 Personalities : &lt;br /&gt;
 md127 : inactive xvde[1](S) xvdd[0](S)&lt;br /&gt;
      2095104 blocks super 1.2&lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cryptage des données===&lt;br /&gt;
&lt;br /&gt;
A l'aide de la commande suivante, on formate la carte SD de telle sorte qu'elle n'ait plus qu'une seule partition :&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
&lt;br /&gt;
On crée maintenant la partition cryptée protégée par un mot de passe avec la commande :&lt;br /&gt;
 cryptsetup luksFormat -c aes -h sha256 /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
Avec la commande suivante, on affiche l'état du disque crypté :&lt;br /&gt;
 cryptsetup luksDump /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
On y ajoute ensuite un système de fichiers (ici au format ext3) :&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 karmeliet&lt;br /&gt;
 mkfs.ext3 /dev/mapper/karmeliet&lt;br /&gt;
&lt;br /&gt;
Pour monter la partition :&lt;br /&gt;
 mount -t ext3 /dev/mapper/&amp;lt;nom_du_disque&amp;gt; /mnt/&lt;br /&gt;
&lt;br /&gt;
On peut ainsi lire et écrire des fichiers sur la carte SD en travaillant dans le dossier /mnt/. Après avoir fini, on démonte la carte SD avec les commandes :&lt;br /&gt;
 umount /mnt/&lt;br /&gt;
 cryptsetup luksClose karmeliet&lt;br /&gt;
&lt;br /&gt;
Lors de l'échange de cartes SD, en exécutant la commande d'ouverture du système de cryptage ('luksOpen'), un mot de passe est nécessaire pour le montage et l'utilisation de la carte. Le cryptage fonctionne !&lt;br /&gt;
&lt;br /&gt;
===Authentification et serveur RADIUS===&lt;br /&gt;
&lt;br /&gt;
====FreeRadius====&lt;br /&gt;
&lt;br /&gt;
Nous commençons par la configuration d'un serveur FreeRadius sur notre VM pour sécuriser le WiFi par WPA2-EAP. On travaille dans le dossier :&lt;br /&gt;
 apt-get install freeradius&lt;br /&gt;
 cd /etc/freeradius&lt;br /&gt;
Il nous faut rajouter un nouvel utilisateur qui nous servira pour authentification sur le réseau WiFi. Pour cela, on rajoute une ligne dans le fichier users :&lt;br /&gt;
 zegbicho Cleartext-password := &amp;quot;ima15&amp;quot;&lt;br /&gt;
On édite ensuite le fichier client.conf et on y ajoute :&lt;br /&gt;
 client E304 {&lt;br /&gt;
         ipaddr = 10.10.10.1&lt;br /&gt;
         netmask = 32&lt;br /&gt;
         secret = password&lt;br /&gt;
 }&lt;br /&gt;
 client E306 {&lt;br /&gt;
         ipaddr = 10.10.10.2&lt;br /&gt;
         netmask = 32&lt;br /&gt;
         secret = password&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client VLAN14 {&lt;br /&gt;
         ipaddr = 172.20.14.0&lt;br /&gt;
         netmask = 24&lt;br /&gt;
         secret = password&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On configure aussi le fichier eap.conf pour utiliser le PEAP-MSCHAPv2. On édite donc ce fichier et on change le type de méthode : &lt;br /&gt;
*default_eap_type = peap&lt;br /&gt;
*Dans peap : default_eap_type = mschapv2&lt;br /&gt;
&lt;br /&gt;
  eap {&lt;br /&gt;
    default_eap_type = peap&lt;br /&gt;
    peap {&lt;br /&gt;
      default_eap_type = mschapv2&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
====Sécurisation WiFi WPA2-EAP====&lt;br /&gt;
=====Configuration de la borne=====&lt;br /&gt;
&lt;br /&gt;
Une fois notre configuration sur la machine xen réalisée, on configure la borne WiFi. Le but est de faire en sorte que l'accès à la borne soit controlé par WPA2-EAP. On ajoute à la configuration du point d'accès Wifi un SSID protégé par la méthode WPA2-EAP. &amp;lt;br&amp;gt;On se connecte en telnet à la borne WiFi en 10.10.10.1 avec les identifiants Cisco/Cisco :&lt;br /&gt;
&lt;br /&gt;
 apt-get install telnet&lt;br /&gt;
 telnet 10.10.10.1&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 &lt;br /&gt;
 aaa new-model&lt;br /&gt;
 aaa authentication login eap_karmeliet group radius_karmeliet&lt;br /&gt;
 radius-server host 193.48.57.164 auth-port 1812 acct-port 1813 key password&lt;br /&gt;
 aaa group server radius radius_karmeliet&lt;br /&gt;
   server 193.48.57.164 auth-port 1812 acct-port 1813&lt;br /&gt;
 !&lt;br /&gt;
 &lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 dot11 ssid SSID_KARMELIET&lt;br /&gt;
   vlan 14&lt;br /&gt;
   authentication open eap eap_karmeliet &lt;br /&gt;
   authentication network-eap eap_karmeliet &lt;br /&gt;
   authentication key-management wpa&lt;br /&gt;
   mbssid guest-mode&lt;br /&gt;
 !&lt;br /&gt;
 &lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 encryption vlan 14 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid SSID_KARMELIET&lt;br /&gt;
 &lt;br /&gt;
 exit &lt;br /&gt;
 &lt;br /&gt;
 interface Dot11Radio0.14&lt;br /&gt;
 encapsulation dot1Q 14&lt;br /&gt;
 no ip route-cache&lt;br /&gt;
 bridge-group 14&lt;br /&gt;
 bridge-group 14 subscriber-loop-control&lt;br /&gt;
 bridge-group 14 spanning-disabled&lt;br /&gt;
 bridge-group 14 block-unknown-source&lt;br /&gt;
 no bridge-group 14 source-learning&lt;br /&gt;
 no bridge-group 14 unicast-flooding    &lt;br /&gt;
  &lt;br /&gt;
 exit&lt;br /&gt;
  &lt;br /&gt;
 interface GigabitEthernet0.14&lt;br /&gt;
 encapsulation dot1Q 14&lt;br /&gt;
 bridge-group 14&lt;br /&gt;
  &lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On réitère l'opération sur la borne située en E306 à l'adresse 10.10.10.2&lt;br /&gt;
&lt;br /&gt;
=====Test sur l'eepc=====&lt;br /&gt;
Configuration de l'eepc /etc/network/interfaces :&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface wlan0 inet static&lt;br /&gt;
  address 172.20.14.12&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 172.20.14.254&lt;br /&gt;
  wpa-ssid SSID_KARMELIET&lt;br /&gt;
  wpa-key-mgmt WPA-EAP&lt;br /&gt;
  wpa-identity zegbicho&lt;br /&gt;
  wpa-password ima15&lt;br /&gt;
&lt;br /&gt;
On regarde sur notre VM si cela fonctionne : en mode debug sur le RADIUS :&lt;br /&gt;
 service freeradius stop&lt;br /&gt;
 /usr/sbin/freeradius -X&lt;br /&gt;
&lt;br /&gt;
Validé !&lt;br /&gt;
===PCBX===&lt;br /&gt;
Après avoir installé 'asterisk' à l'aide de ''apt-get'', on configure le fichier ''/etc/asterisk/sip.conf'' en y ajoutant cela :&lt;br /&gt;
    [general]&lt;br /&gt;
    hasvoicemail = yes&lt;br /&gt;
    hassip = yes&lt;br /&gt;
    hasiax = yes&lt;br /&gt;
    callwaiting = yes&lt;br /&gt;
    threewaycalling = yes&lt;br /&gt;
    callwaitingcallerid = yes&lt;br /&gt;
    transfer = yes&lt;br /&gt;
    canpark = yes&lt;br /&gt;
    cancallforward = yes&lt;br /&gt;
    callreturn = yes&lt;br /&gt;
    callgroup = 1&lt;br /&gt;
    pickupgroup = 1&lt;br /&gt;
    nat = yes&lt;br /&gt;
 &lt;br /&gt;
    [1001]&lt;br /&gt;
    type=peer&lt;br /&gt;
    host=dynamic&lt;br /&gt;
    dtmfmode=rfc2833&lt;br /&gt;
    disallow=all&lt;br /&gt;
    allow=ulaw&lt;br /&gt;
    fullname = zegboy&lt;br /&gt;
    username = zegboy&lt;br /&gt;
    secret = coucou1&lt;br /&gt;
    context = work&lt;br /&gt;
  &lt;br /&gt;
    [1002]&lt;br /&gt;
    type=peer&lt;br /&gt;
    host=dynamic&lt;br /&gt;
    dtmfmode=rfc2833&lt;br /&gt;
    disallow=all&lt;br /&gt;
    allow=ulaw&lt;br /&gt;
    fullname = tibeechaw&lt;br /&gt;
    username = tibeechaw&lt;br /&gt;
    secret = coucou2&lt;br /&gt;
    context = work&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute dans le fichier ''/etc/asterisk/extensions.conf'' :&lt;br /&gt;
    [work]&lt;br /&gt;
    exten =&amp;gt; _1XXX,1,Dial(SIP/${EXTEN},20)&lt;br /&gt;
    exten =&amp;gt; _1XXX,2,Hangup()&lt;br /&gt;
&lt;br /&gt;
Après avoir connecté nos téléphones (Android) au spot Wi-Fi SSID_KARMELIET, on utilise l'application CSipSimple et on y ajoute un compte sur chaque téléphone sur le modèle suivant (exemple pour l'utilisateur 1001) :&lt;br /&gt;
 Nom du compte : zegboy&lt;br /&gt;
 Utilisateur : 1001&lt;br /&gt;
 Serveur : 172.20.14.6 //Adresse IP de l'EeePC sur lequel est installé Asterisk&lt;br /&gt;
 Mot de passe : coucou1&lt;br /&gt;
&lt;br /&gt;
Ainsi, on obtient un résultat correct puisqu'on a bien sur nos deux téléphones une communication par voie IP.&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Station_m%C3%A9t%C3%A9o_connect%C3%A9e&amp;diff=24708</id>
		<title>Station météo connectée</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Station_m%C3%A9t%C3%A9o_connect%C3%A9e&amp;diff=24708"/>
				<updated>2016-01-06T09:58:14Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : Page créée avec « ==Cahier des charges== ===Présentation générale du projet===  ====Contexte====  ====Objectif du projet====  ====Description du projet====   ====Choix techniques : matérie... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet===&lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
 &lt;br /&gt;
====Choix techniques : matériel et logiciel====&lt;br /&gt;
&lt;br /&gt;
==Étapes du projet==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 1 : &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 2 : &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Partie 3 : &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Suivi de l'avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Séance 1 ===&lt;br /&gt;
===Séance 2 ===&lt;br /&gt;
===Séance 3 ===&lt;br /&gt;
===Séance 4 ===&lt;br /&gt;
===Séance 5 ===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Option_Internet_des_objets_2015/2016&amp;diff=24707</id>
		<title>Option Internet des objets 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Option_Internet_des_objets_2015/2016&amp;diff=24707"/>
				<updated>2016-01-06T09:56:23Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Répartition des binômes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Projets ==&lt;br /&gt;
&lt;br /&gt;
Les différents projets proposés ont pour but de réaliser un objet connecté de A à Z. Les objets seront dans la mesure du possible interopérables, soit directement, soit par l'intermédiaire d'un &amp;quot;point d'accès&amp;quot;. Différentes problématiques relatives à l'Internet des Objets sont listées ci-dessous. Chaque projet devra intégrer une réflexion sur - au minimum - deux points de cette liste ; tous les points devront être abordés au travers de l'ensemble des projets.&lt;br /&gt;
&lt;br /&gt;
Problématiques (techniques) principales rencontrées dans l'Internet des Objets et les réseaux de capteurs :&lt;br /&gt;
&lt;br /&gt;
* Gestion d'énergie (mode veille et réveil des objets),&lt;br /&gt;
* Routage orienté économie d'énergie,&lt;br /&gt;
* Lien entre les objets connectés et l'Internet,&lt;br /&gt;
* Apport de la localisation,&lt;br /&gt;
* Stockage des données et leur représentation,&lt;br /&gt;
* Sécurité,&lt;br /&gt;
* Mise à jour du code embarqué,&lt;br /&gt;
* Distribution du traitement de l'information (object, fog, cloud).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quelques idées d'objets connectés pouvant être réalisés ; d'autres projets peuvent être proposés (cf. liste matériel disponible) :&lt;br /&gt;
* Timer Connecté pour gérer les temps de paroles lors des soutenances (projets, stage, ...)&lt;br /&gt;
* Compteur de tour de piste. Lors d'un entrainement sur une piste d'athlétisme il est parfois difficile de compter le nombre de tour de piste effectué tout en réalisant les entraînements. L'idée est donc d'avoir un artefact attaché à la main, muni de boutons poussoir et d'un afficheur. A chaque bouton poussoir est attaché une fonction logiciel (ajouter un tour, remettre à zero, ...)&lt;br /&gt;
* Lampe de chevet connectée&lt;br /&gt;
* Visualisation de la qualité de l'air avec des artefacts interactifs&lt;br /&gt;
* Lampes connectées permettant de réfleter l'état du public dans un amphi lors d'un cours ou d'une soutenance&lt;br /&gt;
* Tee shirt augmenté&lt;br /&gt;
* &amp;quot;Caillou&amp;quot; connecté&lt;br /&gt;
* Boules décoratives connectées : en fonction de la distance entre les différentes boules, leur couleur change&lt;br /&gt;
* Sac à dos pour cycliste avec indicateurs de direction&lt;br /&gt;
* Réseau de capteurs pour suivi de l'environnement des salles de projets&lt;br /&gt;
* Sous-bock connecté&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
Ecrivez vos noms sous le format exact &amp;quot;Prénom Nom&amp;quot;, séparez vos noms par des virgules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves&lt;br /&gt;
|- &lt;br /&gt;
| [[Sous bock connecté]] || Benjamin LEFORT, Kevin COLAUTTI, Jean-Michel TOURNIER&lt;br /&gt;
|-&lt;br /&gt;
| [[Réseau de capteurs]] || Alexandre Jouy, Romain Libaert&lt;br /&gt;
|-&lt;br /&gt;
| [[Thermomètre connecté]] || Flavien Royer, Maxime Morisse &lt;br /&gt;
|-&lt;br /&gt;
| [[Réseau de lampes]] || Sandra HAGE, Julien HERIN &lt;br /&gt;
|-&lt;br /&gt;
| [[Brosse à dents intelligente]] || Elise TSSOT Celine TIRABY &lt;br /&gt;
|-&lt;br /&gt;
| [[Enceintes Bluetooth connectées]] || Mehdi BAKALI, Antonin BRONNER, Jérôme SONTAG &lt;br /&gt;
|-&lt;br /&gt;
| [[Compteur de tour de piste]] || Jérôme Bailet, Mageshwaran Sekar &lt;br /&gt;
|-&lt;br /&gt;
| [[Lampe connectée]] || Mourad EL GHISSASSI, Yacine RACHIDI, Rudy ZANOTTI &lt;br /&gt;
|-&lt;br /&gt;
| [[Station météo connectée]] || Thibaut SCHOLAERT, Mehdi ZEGGAÏ&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=24397</id>
		<title>P33 Réalisations en faveur de l'accessibilité de jeux vidéos</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=24397"/>
				<updated>2015-12-14T10:05:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Fichiers Rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:logo_la_gerlotte.jpg|thumb|left|La Gerlotte de l'association La vie,autrement ...]]&lt;br /&gt;
&lt;br /&gt;
Les jeux vidéos se sont largement répandus dans le monde aujourd'hui et sont présents sur toutes les plates-formes : téléphones portables, consoles, ordinateur, tablettes. Ils offrent une expérience ludique et divertissante aux utilisateurs au nombre grandissant. Cependant jouer à un jeux vidéos demande de la pratique : il faut manipuler la souris ou le joystick avec brio tandis que la seconde main parcourt le clavier, les manettes de jeux de plus en plus complexes où nos doigts virevoltent en même temps sur les milliers de boutons. Tout cela requiert une grande concentration et des heures  d'apprentissage non négligeables. &lt;br /&gt;
&lt;br /&gt;
le sujet est d'autant plus difficile pour les personnes handicapées qui souhaitent s’amuser sur un jeu vidéo actuel. Quels sont les moyens qu’un accidenté lourd ou un individu handicapé depuis sa naissance, pourrait utiliser pour se détendre sur un jeu ? &lt;br /&gt;
En fonction de la nature du handicap, des solutions diverses et variées existent.&lt;br /&gt;
&lt;br /&gt;
La Gerlotte, est une maison d’accueil spécialisée de l'association La vie, autrement ..., qui accueille des adultes polyhandicapés dépendants dans tous les actes de la vie quotidienne, à l’exclusion des personnes présentant un gros trouble du comportement ou de la personne.&lt;br /&gt;
&lt;br /&gt;
Nous avons pour projet de permettre l'accessibilité de jeux vidéos aux personnes handicapées de l'établissement et de leur apporter ainsi ce moyen de divertissement.&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
Permettre à des personnes handicapées l'accès aux jeux vidéos.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Afin de rendre accessible des activités ludiques deux approches sont possibles, une adaptation ou une création des périphériques de jeux (manettes, ...) ou une modification de système existants en les rendant plus interactifs. Les enfants et adultes en situation de polyhandicap sont dans l'incapacité physique de manipuler les télécommandes et joysticks prévus avec les consoles de jeux vidéos classiques (wii, nintendo,..). Le projet est de pouvoir leur rendre accessibles ces moyens de se divertir en trouvant des adaptations (type contacteur) correspondant à leurs capacités. Quelques pistes envisagées (non exclusives) : une commande simple BCI (Brain Computer Interface) compatible avec les logiciels existants fonctionnant en mode défilement, ou encore un contacteur au clignement intentionnel de paupière enregistré par webcam...&lt;br /&gt;
Ce projet sera effectué à destination des habitants de la maison d'accueil spécialisée de La Gerlotte de Marcq-en-Barœul. Cette résidence accueille des personnes adultes polyhandicapées dépendantes.&lt;br /&gt;
&lt;br /&gt;
===Étapes du projet===&lt;br /&gt;
* Rencontre avec le personnel de la Gerlotte et établissement du cahier des charges et des attentes&lt;br /&gt;
* &amp;quot;Clôture&amp;quot; du cahier des charges et début de l'élaboration des adaptations convenues&lt;br /&gt;
* Tests des adaptations établies avec les résidents de la Gerlotte, et prise en compte des retours&lt;br /&gt;
&lt;br /&gt;
===Choix techniques : matériel et logiciel===&lt;br /&gt;
* Arduino Leonardo [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 13/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Sparkfun Analog Joystick [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 2 boutons poussoirs [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 1 (du 28/09/2015 au 04/10/2015)===&lt;br /&gt;
Rendez-vous à la Gerlotte du mercredi 30/09/2015 :&lt;br /&gt;
* Rencontre avec l'animateur Xavier Hantson et visite de l'établissement la Gerlotte&lt;br /&gt;
* Rencontre avec les résidents, présentation des infrastructures en place (adaptations, appareillages), et aperçu des différents handicaps pris en charge&lt;br /&gt;
* Réunion avec le directeur David Desmulier, l'ergothérapeute Thierry Danigo et M. Hantson. Brainstorming sur les différents moyens pour l'accessibilité aux jeux vidéos : adaptation, modification de manettes, OneSwitch, support handsfree, reconnaissance oculaire (Eye Tracking Tobii avec le SDK, tools et hardware pour 99 euros), le choix de l'eye track inclurait la création d'un jeux vidéo adapté.&lt;br /&gt;
* Accord pour le prochain rendez-vous au 14/10/2015, où un premier choix d'adaptation devra être fait afin de commencer les premiers travaux&lt;br /&gt;
&lt;br /&gt;
Après discussions avec M. Vantroys et M. Grisoni, la reconnaissance oculaire n'est pas un choix que nous conseillent nos professeurs et la création de jeux vidéos serait un travail beaucoup trop laborieux. À ce jour, nous restons dans l'idée de modification de manettes, périphériques  pour pouvoir jouer à des jeux déjà existant. Nous poursuivons nos recherches pour approfondir le sujet ou pour trouver d'autres possibilités.&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 (du 05/10/2015 au 11/10/2015)===&lt;br /&gt;
Recherche bibliographique sur les solutions et logiciels existants permettant l’accessibilité aux jeux vidéos pour les personnes handicapées (cf [http://www.capgame.fr CapGame]) :&lt;br /&gt;
* GlovePie : commande des jeux par la voix&lt;br /&gt;
* AltController : des boites virtuels simulent des touches du clavier lors du passage ou clic de la souris&lt;br /&gt;
* Kinesic Mouse : contrôle des jeux par mouvements de la tête, sourcils, lèvres, etc&lt;br /&gt;
* UnoJoy : librairie Arduino permettant à partir d'une manette existante ou crée, de la rendre compatible sur Windows/Mac/PS3&lt;br /&gt;
* Emulation d'un clavier/souris sur Windows à l'aide d'une plate-forme de développement SMT32F4 ou d'un Arduino Leonardo. Création d'une manette de jeux avec des boutons/joysticks de bornes d'arcades.&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 (du 12/10/2015 au 18/10/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 14/10/2015 en présence de M. Xavier Hantson, Thierry Danigo, Martin Nicolas, Laurent Grisoni.&lt;br /&gt;
&lt;br /&gt;
Proposition et Brainstorming sur les différentes solutions envisagés :&lt;br /&gt;
* adaptation d'une manette Wii à partir d'un projet déjà commencé l'an dernier ([https://projets-ima.polytech-lille.net:40079/mediawiki/index.php?title=P35_Hack-a-Wii_:_Emulation_de_wiimote_pour_rendre_la_Wii_accessibles_aux_personnes_handicap%C3%A9es lien]), solution orientée pour la console Nintendo Wii&lt;br /&gt;
* création d'une manette adaptable à partir d'un microcontrôleur de type Arduino par exemple, orientée plutôt pour les jeux PC.&lt;br /&gt;
* intégration de jeux vidéos devenus libres, jeux rétros de l'époque Atari, sur les systèmes Rapsberry Pi ou Banana Pi&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée au mercredi 4/11/2015 à 14h30 à La Gerlotte. Pour cette date, il a été convenu de créer un Google Docs ouvert à tous les encadrants du projet permettant de répertorier tous les liens des pistes de recherches abordées et des solutions déjà existantes en France ou à l'étranger. Lors de ce rendez-vous il est prévu d'observer l'utilisation d'un PC par certains résidents.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 (du 19/10/2015 au 25/10/2015)===&lt;br /&gt;
Durant cette semaine, nous avons discuté avec M. Vantroys sur la manière dont nous pourrions présenter un prototype du système imaginé. Il se présenterait sous la forme d'une simple manette constituée d'un joystick et de quelques boutons poussoirs, le tout contrôlé par un Arduino Leonardo. Ainsi, on pourrait présenter au personnel de la Gerlotte une simple manette permettant de jouer à des jeux émulés simples, manette qui serait algorithmiquement facile à paramétrer, et donc faire une démonstration de son fonctionnement.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les prochains jours sera de mettre en place et de tester cette manette.&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 Vacances de la Toussaint (du 26/10/2015 au 01/11/2015)===&lt;br /&gt;
Création d'une manette de jeux simple à l'aide d'un Arduino Leonardo.&lt;br /&gt;
&lt;br /&gt;
Le Leonardo a l'avantage d'être reconnu directement sur l'ordinateur comme un clavier/souris. Les classes Keyboard et Mouse permettent d'émuler ces périphériques d'entrées.&lt;br /&gt;
&lt;br /&gt;
Cependant pour pouvoir être reconnu en tant que manette de jeux il faut modifier la librairie standard USB et le descripteur HID.&lt;br /&gt;
&lt;br /&gt;
Plus d'informations sur notre dépôt Github pour l'Arduino Leonardo reconnu en tant que manette de jeux : [https://github.com/LuomuJie/JoystickLeonardo JoystickLeonardo]&lt;br /&gt;
&lt;br /&gt;
Ce prototype dispose d'un joystick analogique 2 axes et de 6 boutons poussoirs (1 bouton est inclus avec le joystick). Il est optimisé pour jouer à des jeux de GameBoy Advance ou rétros (SuperNES, Master System, Gameboy ...) dont les manettes ne disposent pas énormément de touches.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:kirby-nightmare-in-dream-land-gba-1.jpg|left|thumb|250px|Test de Kirby Nightmare in Dreamland sur GBA fonctionnel]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickLeonardo.jpg|thumb|center|300px|Arduino Leonardo comme manette de jeux]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 (du 02/11/2015 au 08/11/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 04/11/2015 en présence de M. Martin Nicolas:&lt;br /&gt;
* découverte de divers logiciels et matériels à disposition des résidents de La Gerlotte : émulateur de souris avec contacteurs (Mouse Mover), système joystick/clic gauche, logiciel de gestion de la souris à partir des mouvements du visage par webcam.&lt;br /&gt;
* observation de l'utilisation d'un ordinateur par un résident (Bertrand), notamment sur un jeu de fléchettes à partir d'un joystick et d'un bouton-clic. Bertrand comprend et agit normalement sur le jeu cependant il lui est difficile de coordonner plusieurs paramètres en même temps tels que la gestion de force et la précision du tir.&lt;br /&gt;
* présentation du premier prototype développé : la manette de jeux Arduino Leonardo. Démonstration sur un jeux de Game Boy Advance (Super Mario World) à partir du système d'émulation RomStation.&lt;br /&gt;
* discussion sur les diverses améliorations que l'on pourrait apporter sur le prototype : création d'une interface graphique permettant la gestion des fonctions implémentées dans la carte Arduino (gestion des touches et des options), automatisation des touches de manière physique ou algorithmique, éclatement des directions du joystick sur plusieurs contacteurs, adaptation jack-pin arduino afin d'utiliser les boutons switch de type Orby.&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée pour le mercredi 25/11/2015 à 14h30 à La Gerlotte. Pour cette date, nous poursuivrons nos recherches afin d'apporter des améliorations du prototype.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 (du 09/11/2015 au 15/11/2015)===&lt;br /&gt;
Rendez-vous au centre au centre CRNT de l'association APF (Association des Paralysés de France) avec M. Danigo. Nous avons récupéré quelques contacteurs, le standard de la connectique dans le domaine du handicap est le jack (principalement 3.5mm mono). Pour pouvoir les utiliser sur notre dispositif il faut utiliser des jacks femelles 3.5mm mono. Après présentation du prototype nous avons discuté de l'ergonomie du système. Il serait judicieux de construire un boitier où l'on brancherait les contacteurs dans les jacks femelles. Réaliser un PCB et ajouter des mousses à l'intérieur pour que le système soit plus solide.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:button.png|center|thumb|180px|Contacteur Jelly Bean Twist]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 (du 16/11/2015 au 22/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype par les jacks femelles 3.5mm mono pour pouvoir utiliser les contacteurs, et ajout d'interrupteurs à levier pour automatiser une touche.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 (du 22/11/2015 au 29/11/2015)===&lt;br /&gt;
&lt;br /&gt;
Réunion à la Gerlotte du mercredi 25/11/2015 en présence de M. Martin Nicolas, M.Xavier Hantson et M.Thierry Danigo:&lt;br /&gt;
* Présentation du prototype et des améliorations qui ont été apportées&lt;br /&gt;
* Discussion sur les prochaines modifications:&lt;br /&gt;
** Éclater le joystick sur plusieurs contacteurs tout en conservant le joystick (dans le but de rendre le système le plus accessible possible). Si le joystick est éclaté sous la forme de 4 boutons directionnels, il faudra penser à annuler la commande lorsque 2 directions contraires sont pressées (haut-bas et droite-gauche). &lt;br /&gt;
** Gérer l'automatisation d'une touche de façon périodique et non tout-ou-rien, fréquence qui devra être ajustable par potentiomètre par exemple.&lt;br /&gt;
&lt;br /&gt;
La prochaine réunion est fixée au mercredi 06/01/2016 à 14h30. Pour cette date, nous travaillerons et progresserons sur les axes d'amélioration qui nous ont été proposés, et nous ferons le point sur la soutenance de mi-parcours.&lt;br /&gt;
&lt;br /&gt;
Réunion à l'IRCICA du jeudi 26/11/2015 en présence de M. Laurent Grisoni, M.Samuel Desgrande et Mme.Patricia Plenacoste:&lt;br /&gt;
* Présentation du projet à l'Institut Médico-Éducatif Les Papillons Blancs. Nous avons observé une séquence vidéo dans laquelle un enfant handicapé mental et moteur joue à un jeu vidéo de tir sur une cible à partir d'une Kinect. La Kinect va détecter une accélération dans une zone globale et la difficulté consiste à séparer les mouvements parasites involontaires de l'enfant au geste décisif et intentionnel du lancer.&lt;br /&gt;
* Présentation de notre projet à La Gerlotte et du prototype de manette de jeux. L'idée d'une interface graphique permettant un mapping des commandes de la manette Arduino est envisageable. L'on pourrait configurer les touches afin qu'elles émulent l'appui de 2 touches successives (ex: saut + avancé). &lt;br /&gt;
* Le but de cette réunion serait d'envisager la fusion des 2 projets (Papillons Blancs et Gerlotte) ou l'échange des systèmes afin que dans chaque établissement puisse profiter des réalisations.&lt;br /&gt;
* Proposer à La Gerlotte de tester et s'approprier le prototype pendant 2-3 semaines afin d'avoir un feedback utilisateur.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 (du 30/11/2015 au 06/12/2015)===&lt;br /&gt;
Test du joystick HKD-FW22 pour fauteuil roulant switch 4 axes à connectique serre-fils (screw terminal). Un des interrupteurs est usé et réagit d'une mauvaise façon.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickScrew.jpg|center|thumb|180px|Joystick 4 Axis Screw Terminal]]&lt;br /&gt;
&lt;br /&gt;
Amélioration du prototype: automatisation de touches et réglage de la fréquence par des potentiomètres. Chaque potentiomètre est relié à un port analogique et va délivrer une tension. En fonction de la valeur de cette dernière, la période entre 2 appuis successifs sera défini. Par simplicité la fonction de calcul de la période est f(x) = 2 * x. La période maximale est de 2s, et la période minimale de 0s ce qui correspond à un appui constant.&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 (du 07/12/2015 au 13/12/2015)===&lt;br /&gt;
Étude des logiciels JoyMouse et JoyToKey avec une manette de jeux. &lt;br /&gt;
JoyMouse se concentre sur l'émulation d'une souris avec une manette. L'accélération, la sensibilité, la vitesse ainsi que les clics sont interfaçables facilement.&lt;br /&gt;
JoyToKey permet égalemment d'émuler les fonctions de la souris à partir d'une manette mais également simuler des touches claviers. L'interface est beaucoup plus complexes, avec des profils utilisateurs et il est possible d'automatiser une action.&lt;br /&gt;
&lt;br /&gt;
Implémentation Joystick-pad avec boutons. Fonctionne en parallèle du joystick analogique.&lt;br /&gt;
&lt;br /&gt;
Avancement du rapport.&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 14 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 15 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 16 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 17 ===&lt;br /&gt;
&lt;br /&gt;
== Fichiers Rendus ==&lt;br /&gt;
Rapport intermédiaire du projet : [[Fichier:PFE_IMA5_Rapport_intermediaire_Bailet_Zeggai.pdf]]&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:PFE_IMA5_Rapport_intermediaire_Bailet_Zeggai.pdf&amp;diff=24396</id>
		<title>Fichier:PFE IMA5 Rapport intermediaire Bailet Zeggai.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:PFE_IMA5_Rapport_intermediaire_Bailet_Zeggai.pdf&amp;diff=24396"/>
				<updated>2015-12-14T10:02:29Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : Rapport intermédiaire du PFE n°33 Bailet/Zeggaï IMA5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rapport intermédiaire du PFE n°33 Bailet/Zeggaï IMA5&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=24322</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=24322"/>
				<updated>2015-12-10T16:40:25Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* PCBX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
===Partie commutateur===&lt;br /&gt;
===== Semaine 1 (01/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
===== Semaine 2 (08/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
===== Semaine 3 (15/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration réseau du commutateur se déroule en 3 étapes.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on configure les liaisons trunk. Il s'agit ici de la liaison qui relie le commutateur au routeur en E304, sur l'interface 4/1, et la liaison câble qui relie le commutateur au routeur en E306 sur l'interface 2/2. On entre donc les commandes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
 conf t &lt;br /&gt;
 int Gi4/1&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 1,11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 int Gi2/2&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 interface GigabitEthernet4/10&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé les VLAN 11-20, 110 et 130 de cette façon :&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 vlan 11&lt;br /&gt;
 name vlan11&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On leur attribue ensuite un port physique du commutateur :&lt;br /&gt;
&lt;br /&gt;
 int Gi4/11&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport access vlan 11&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On obtient donc le schéma physique suivant :&lt;br /&gt;
&lt;br /&gt;
*VLAN11 : Gigabit 4/11&lt;br /&gt;
*VLAN12 : Gigabit 4/12&lt;br /&gt;
*VLAN13 : Gigabit 4/13&lt;br /&gt;
*VLAN14 : Gigabit 4/14&lt;br /&gt;
*VLAN15 : Gigabit 4/15&lt;br /&gt;
*VLAN16 : Gigabit 4/16&lt;br /&gt;
*VLAN17 : Gigabit 4/17&lt;br /&gt;
*VLAN18 : Gigabit 4/18&lt;br /&gt;
*VLAN19 : Gigabit 4/19&lt;br /&gt;
*VLAN20 : Gigabit 4/20&lt;br /&gt;
*VLAN 110 : Gigabit 5/1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Semaine 9 (26/11/2015) =====&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter la borne wifi au commutateur, on rajoute le vlan 1 dans l'interface 4/10 :&lt;br /&gt;
&lt;br /&gt;
 interface GigabitEthernet4/10&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 1, 11-20,110,130&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En mode trunk pour que la borne ait accès à tous les vlan.&lt;br /&gt;
Le vlan est configuré de cette facon :&lt;br /&gt;
  Internet address is 10.10.10.1/24&lt;br /&gt;
  Broadcast address is 255.255.255.255&lt;br /&gt;
&lt;br /&gt;
=== VM xen ===&lt;br /&gt;
====Création de la machine====&lt;br /&gt;
&lt;br /&gt;
===== Semaine 3 (15/10/2015) =====&lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
===== Semaine 4 (22/10/2015) =====&lt;br /&gt;
*On lance la VM xen:&lt;br /&gt;
 xl create /etc/xen/KARMELIET.cfg&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur DNS et SSH:&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
==== Configuration du serveur apache et installation du certificat SSL ====&lt;br /&gt;
Pour activer le certificat SSL, nous devons à la fois manipuler sur notre machine Xen et sur le site gandi. Nous nous sommes d'ailleurs aidés des tutoriels gandi pour réaliser cette tâche. Nous certifions les domaines ''www.zegbicho.lol'' et ''zegbicho.lol''. Nous avons tout d'abord besoin de clés, on génère donc le premier fichier .csr à fournir à gandi avec la commande :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout zegbicho.lol.key -out zegbicho.lol.csr&lt;br /&gt;
&lt;br /&gt;
Cette commande nous a donc généré deux fichier : un fichier .key qui correspond à notre clé privée et un .csr ( clé publique) que nous devons fournir à gandi. Ce dernier nous retourne alors un .crt, nous supprimons aors la .crs dont nous n'avons plus besoin. Nous décidons de les ranger dans des dossier situés dans le dossier /etc/ssl/ de notre machine xen :&lt;br /&gt;
*Le fichier .crt dans /etc/ssl/certs/&lt;br /&gt;
*le fichier .key dans /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Nous allons à présent suivre le tutoriel gandi : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/ssl&lt;br /&gt;
&lt;br /&gt;
On active le module ssl d'apache :&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Puis on fait en sorte qu'apache écoute sur le port 443, on édite donc le fichier de configuration /etc/apache2/ports.conf et on ajoute:&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    Listen 443&lt;br /&gt;
    NameVirtualHost 193.48.57.164:443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous pouvons obtenir le certificat intermédiare de gandi.&lt;br /&gt;
Nous récupérons le fichier GandiStandardSSLCA2.pem qui nous plaçons dans le répertoire /etc/ssl/certs/&lt;br /&gt;
On effectue le rehash de la structure ssl:&lt;br /&gt;
 c_rehash /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un domaine sur notre apache sécurisé, on crée le site dédié www.zegbicho.lol.&lt;br /&gt;
Enfin, on ajoute un VirtualHost servant le contenu du dossier /var/www/www.zegbicho.lol/ sur le port 443, dans /etc/apache2/sites-available/000-zegbicho.lol-ssl.conf : &lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *:443&lt;br /&gt;
  &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ServerName www.zegbicho.lol&lt;br /&gt;
        ServerAlias zegbicho.lol&lt;br /&gt;
        DocumentRoot /var/www/www.zegbicho.lol/&lt;br /&gt;
        CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/ssl/certs/zegbicho.lol.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/zegbicho.lol.key&lt;br /&gt;
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la chaine SSl crée avec la commande : &lt;br /&gt;
 openssl s_client -connect 193.48.57.164:443&lt;br /&gt;
Notre chaine est validée, on passe donc à la configuration du serveur DNS&lt;br /&gt;
&lt;br /&gt;
==== Serveur DNS et DNSSEC avec Bind ====&lt;br /&gt;
&lt;br /&gt;
Nous nous aidons ici aussi des tutos gandi&lt;br /&gt;
&lt;br /&gt;
Il s'agira tout d'abord de s'occuper du changement de DNS sur le site gandi.&lt;br /&gt;
Nous devons au prélable gérer les glue records : https://wiki.gandi.net/fr/domains/management/change-glue&lt;br /&gt;
On va alors créer un enregistrement Glue :&lt;br /&gt;
*Nom du serveur : ns.zegbicho.lol&lt;br /&gt;
*Adresse IP : 193.48.57.164&lt;br /&gt;
&lt;br /&gt;
On peut alors modifier les serveurs de nom sur gandi.net : https://wiki.gandi.net/fr/dns/change&lt;br /&gt;
*DNS1 : ns.zegbicho.lol&lt;br /&gt;
*DNS2 : ns6.gandi.net&lt;br /&gt;
On utilise un serveur DNS secondaire appartenant à gandi.&lt;br /&gt;
&lt;br /&gt;
On attends la propagation DNS et on s'attaque à la configuration de BIND : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/bind&lt;br /&gt;
&lt;br /&gt;
Toute cette configuration s'effectue dans le dossier /etc/bind/&lt;br /&gt;
&lt;br /&gt;
On commence par créer un dossier zones dans lequel on créer un fichier de zone /etc/bind/zones/db.zegbicho.lol :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN      SOA     ns.zegbicho.lol. root.zegbicho.lol. (&lt;br /&gt;
                    2015102001         ; Serial&lt;br /&gt;
                         86400         ; Refresh&lt;br /&gt;
                          3600         ; Retry&lt;br /&gt;
                       2419200         ; Expire&lt;br /&gt;
                         86400 )       ; Negative Cache TTL&lt;br /&gt;
 &lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
 &lt;br /&gt;
 @       IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns      IN      A       193.48.57.164&lt;br /&gt;
 www     IN      A       193.48.57.164&lt;br /&gt;
 god     IN      A       193.48.57.164&lt;br /&gt;
 ns      IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 god     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 @       IN      A       193.48.57.164&lt;br /&gt;
 @       IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis on créer le fichier définissant la zone inverse pour la résolution des adresses IP, 57.48.193.in-addr.arpa :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN       SOA     ns.zegbicho.lol. root.zegbicho.lol.     (&lt;br /&gt;
       2015102001       ;serial&lt;br /&gt;
       14400            ;refresh&lt;br /&gt;
       3600             ;retry&lt;br /&gt;
       604800           ;expire&lt;br /&gt;
       10800            ;minimum&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.&lt;br /&gt;
 &lt;br /&gt;
 163               IN      PTR     zegbicho.lol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On modifie ensuite le fichier de configuration /etc/bind/named.conf.local, dans lequel on ajoute les zones :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;zegbicho.lol&amp;quot; {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/db.zegbicho.lol.signed&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
       notify yes;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;57.48.193.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/57.48.193.in-addr.arpa&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On finit avec la sécurisation DNS avec DNSSEC: On remarque que le fichier référencé dans /etc/bind/named.conf.local est&lt;br /&gt;
 /etc/bind/zones/db.zegbicho.lol.signed&lt;br /&gt;
Ce fichier est créé après la signature de la zone, mais nous devons tout d'abord réaliser quelques manipulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNSSEC est un protocole de sécurisation du protocole DNS. Celui-ci a pour but de signer les informations publiées grâce à un jeu de clés chiffrées.&lt;br /&gt;
On crée donc 2 clés : une Key Signing Key (KSK) et une Zone Signing Key (ZSK). Pour accélérer la génération nous utilisons l'option -r /dev/urandom qui permet d'utiliser une génération pseudo-aléatoire au lieu d'une génération /dev/random par défaut.&lt;br /&gt;
&lt;br /&gt;
Génération de la KSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE zegbicho.lol&lt;br /&gt;
Génération de la ZSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE zegbicho.lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On obtient donc 4 clés. En effet, à chaque génération de clé, on obtient une clé publique et une clé privée. Pour s'y retrouver, on renomme ces clés et on les place dans un dossier qu'on créer : /etc/bind/zegbicho.lol.dnssec&lt;br /&gt;
Ces clés (les deux clés publiques) sont référées dans le fichier de zone db.zegbicho.lol :&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va ensuite sur gandi.net dans la rubrique &amp;quot;gérer DNSSEC&amp;quot; et on leur fourni les deux clés publiques KSK et ZSK. Il peut alors les propager.&lt;br /&gt;
&lt;br /&gt;
Finalement, on signe la zone avec la commande suivante :&lt;br /&gt;
 dnssec-signzone -o zegbicho.lol -k zegbicho.lol.dnssec/zegbicho.lol-ksk zones/db.zegbicho.lol zegbicho.lol.dnssec/zegbicho.lol-zsk&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer le fichier /etc/bind/zones/db.zegbicho.lol.signed qu'on réfère dans le fichier de configuration /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
On finit alors par créer et éditer le fichier de cofiguration des options : /etc/bind/named.conf.options :&lt;br /&gt;
 options {&lt;br /&gt;
          dnssec enable yes;&lt;br /&gt;
          dnssec-validation yes;&lt;br /&gt;
          dnssec-lookaside auto;&lt;br /&gt;
          listen-on-v6 {any;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
==== Vérification de la fonctionnalité de notre site ====&lt;br /&gt;
&lt;br /&gt;
On entre l'URL zegbicho.lol, qui est automatiquement redirigée vers https://zegbicho.lol&lt;br /&gt;
On remarque que le certificat est valide. &amp;lt;br&amp;gt;&lt;br /&gt;
La page est uniquement accessible en https car nous avons modifié le fichier de confguration etc/apache2/sites-available/000-default.conf:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
 .....&lt;br /&gt;
 Redirect permanent / https://zegbicho.lol&lt;br /&gt;
 ....&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On test également notre configuration avec l'outil DNSSEC de l'outil https://www.zonemaster.fr/ et on remarque que le DNSSEC est validé/actif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site web réalisé est donc sécurisé !&lt;br /&gt;
&lt;br /&gt;
===Wifi===&lt;br /&gt;
====Tests d'intrusion par cassage de clé WEP====&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, on passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 7 --write out mon0&lt;br /&gt;
&lt;br /&gt;
En parallèle de ce processus, on peut lancer le cassage de la clé WEP avec la commande :&lt;br /&gt;
 aircrack-ng out-01.cap&lt;br /&gt;
&lt;br /&gt;
Après quelques minutes d'attente (soit env. 66249 IVs), on obtient enfin notre clé :&lt;br /&gt;
 KEY FOUND! [ 55:55:55:55:55:55:55:55:55:55:55:11:11 ]&lt;br /&gt;
&lt;br /&gt;
====Wifi : Cassage de clé WPA-PSK par force brute====&lt;br /&gt;
&lt;br /&gt;
Pour craquer ce type de clé, il faut trouver un moyen un peu plus complexe car aircrack n'est pas capable de trouver la clé par ses propres moyens. Il est nécessaire de lui fournir un dictionnaire contenant la clé de réseau pour espérer pouvoir s'y connecter. Nous avons donc commencé par générer un dictionnaire comprenant cent millions de clés (tous les nombres à 8 chiffres : 00000000 à 99999999). Nous avons pour cela créé un petit code C :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 int main(){&lt;br /&gt;
             int i=0;&lt;br /&gt;
             FILE* dico = fopen(&amp;quot;dictionnaire.txt&amp;quot;,&amp;quot;w+&amp;quot;);&lt;br /&gt;
             for(i=0;i&amp;lt;=99999999;i++){&lt;br /&gt;
             fprintf(dico, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
           }&lt;br /&gt;
           fclose(dico);&lt;br /&gt;
           return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 12 --write crackage_wpa-psk.txt mon0&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le cassage de la clé WPA-PSK en référant notre dictionnaire créé précédemment avec la commande :&lt;br /&gt;
 aircrack-ng -w dictionnaire.txt crackage_wpa-psk.txt-02.cap&lt;br /&gt;
&lt;br /&gt;
Le test des clés se fait à une vitesse moyenne de 3700 clés par seconde.&amp;lt;br&amp;gt;&lt;br /&gt;
Après quelques minutes d'attente , on obtient enfin notre clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Craquage_WPA_PSK.png |thumb|center| 600px|&amp;lt;center&amp;gt;Craquage WPA-PSK&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
===Sécurisation des données===&lt;br /&gt;
&lt;br /&gt;
*On crée les trois partitions LVM de 1Go : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid1 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid2 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid3 -v&lt;br /&gt;
&lt;br /&gt;
*On ajoute les partitions dans le fichier de configuration : &lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/disk.img,xvda2,w',&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/swap.img,xvda1,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-home,xvdc,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-var,xvdb,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid1,xvdd,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid2,xvde,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid3,xvdf,w',&lt;br /&gt;
          ]&lt;br /&gt;
&lt;br /&gt;
*Puis, on crée le RAID5 logiciel à l'aide de la commande: &lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd /dev/xvde /dev/xvdf&lt;br /&gt;
&lt;br /&gt;
*Pour vérifier que notre md0 a été correctement créé, on exécute la commande:&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
 Personalities : [raid6] [raid5] [raid4] &lt;br /&gt;
 md0 : active raid5 xvdf[2] xvde[1] xvdd[0]&lt;br /&gt;
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Et pour vérifier notre RAID5 logiciel avec les trois partitions :&lt;br /&gt;
  mdadm --detail /dev/md0&lt;br /&gt;
Ce qui donne :&lt;br /&gt;
         Version : 1.2&lt;br /&gt;
   Creation Time : Thu Nov 26 13:40:21 2015&lt;br /&gt;
      Raid Level : raid5&lt;br /&gt;
      Array Size : 2095104 (2046.34 MiB 2145.39 MB)&lt;br /&gt;
   Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)&lt;br /&gt;
    Raid Devices : 3&lt;br /&gt;
   Total Devices : 3&lt;br /&gt;
     Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
     Update Time : Thu Nov 26 13:49:20 2015&lt;br /&gt;
           State : clean &lt;br /&gt;
  Active Devices : 3&lt;br /&gt;
 Working Devices : 3&lt;br /&gt;
  Failed Devices : 0&lt;br /&gt;
   Spare Devices : 0&lt;br /&gt;
 &lt;br /&gt;
          Layout : left-symmetric&lt;br /&gt;
      Chunk Size : 512K&lt;br /&gt;
 &lt;br /&gt;
            Name : KARMELIET:0  (local to host KARMELIET)&lt;br /&gt;
            UUID : 4bb46fbe:6292cc6b:5fdccfcc:a4a94ae3&lt;br /&gt;
          Events : 2&lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice State&lt;br /&gt;
       0     202       48        0      active sync   /dev/xvdd&lt;br /&gt;
       1     202       64        1      active sync   /dev/xvde&lt;br /&gt;
       2     202       80        2      active sync   /dev/xvdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir redémarré la VM, on remarque que le volume nouvellement créé nommé md0 a été remplacé par md127.&lt;br /&gt;
&lt;br /&gt;
Après avoir supprimé une partition, on refait la commande :&lt;br /&gt;
  mdadm --detail /dev/md127&lt;br /&gt;
&lt;br /&gt;
Et on obtient :&lt;br /&gt;
  Version : 1.2&lt;br /&gt;
  Raid Level : raid0&lt;br /&gt;
  Total Devices : 2&lt;br /&gt;
  Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
          State : inactive&lt;br /&gt;
 &lt;br /&gt;
           Name : KARMELIET:0  (local to host KARMELIET)&lt;br /&gt;
           UUID : 4bb46fbe:6292cc6b:5fdccfcc:a4a94ae3&lt;br /&gt;
         Events : 2&lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice&lt;br /&gt;
 &lt;br /&gt;
       -     202       48        -        /dev/xvdd&lt;br /&gt;
       -     202       64        -        /dev/xvde&lt;br /&gt;
On vérifie le volume md127 :&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
On a :&lt;br /&gt;
 Personalities : &lt;br /&gt;
 md127 : inactive xvde[1](S) xvdd[0](S)&lt;br /&gt;
      2095104 blocks super 1.2&lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cryptage des données===&lt;br /&gt;
&lt;br /&gt;
A l'aide de la commande suivante, on formate la carte SD de telle sorte qu'elle n'ait plus qu'une seule partition :&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
&lt;br /&gt;
On crée maintenant la partition cryptée protégée par un mot de passe avec la commande :&lt;br /&gt;
 cryptsetup luksFormat -c aes -h sha256 /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
Avec la commande suivante, on affiche l'état du disque crypté :&lt;br /&gt;
 cryptsetup luksDump /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
On y ajoute ensuite un système de fichiers (ici au format ext3) :&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 karmeliet&lt;br /&gt;
 mkfs.ext3 /dev/mapper/karmeliet&lt;br /&gt;
&lt;br /&gt;
Pour monter la partition :&lt;br /&gt;
 mount -t ext3 /dev/mapper/&amp;lt;nom_du_disque&amp;gt; /mnt/&lt;br /&gt;
&lt;br /&gt;
On peut ainsi lire et écrire des fichiers sur la carte SD en travaillant dans le dossier /mnt/. Après avoir fini, on démonte la carte SD avec les commandes :&lt;br /&gt;
 umount /mnt/&lt;br /&gt;
 cryptsetup luksClose karmeliet&lt;br /&gt;
&lt;br /&gt;
Lors de l'échange de cartes SD, en exécutant la commande d'ouverture du système de cryptage ('luksOpen'), un mot de passe est nécessaire pour le montage et l'utilisation de la carte. Le cryptage fonctionne !&lt;br /&gt;
&lt;br /&gt;
===Authentification et serveur RADIUS===&lt;br /&gt;
&lt;br /&gt;
====FreeRadius====&lt;br /&gt;
&lt;br /&gt;
Nous commençons par la configuration d'un serveur FreeRadius sur notre VM pour sécuriser le WiFi par WPA2-EAP. On travaille dans le dossier :&lt;br /&gt;
 apt-get install freeradius&lt;br /&gt;
 cd /etc/freeradius&lt;br /&gt;
Il nous faut rajouter un nouvel utilisateur qui nous servira pour authentification sur le réseau WiFi. Pour cela, on rajoute une ligne dans le fichier users :&lt;br /&gt;
 zegbicho Cleartext-password := &amp;quot;ima15&amp;quot;&lt;br /&gt;
On édite ensuite le fichier client.conf et on y ajoute :&lt;br /&gt;
 client E304 {&lt;br /&gt;
         ipaddr = 10.10.10.1&lt;br /&gt;
         netmask = 32&lt;br /&gt;
         secret = password&lt;br /&gt;
 }&lt;br /&gt;
 client E306 {&lt;br /&gt;
         ipaddr = 10.10.10.2&lt;br /&gt;
         netmask = 32&lt;br /&gt;
         secret = password&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client VLAN14 {&lt;br /&gt;
         ipaddr = 172.20.14.0&lt;br /&gt;
         netmask = 24&lt;br /&gt;
         secret = password&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On configure aussi le fichier eap.conf pour utiliser le PEAP-MSCHAPv2. On édite donc ce fichier et on change le type de méthode : &lt;br /&gt;
*default_eap_type = peap&lt;br /&gt;
*Dans peap : default_eap_type = mschapv2&lt;br /&gt;
&lt;br /&gt;
  eap {&lt;br /&gt;
    default_eap_type = peap&lt;br /&gt;
    peap {&lt;br /&gt;
      default_eap_type = mschapv2&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
====Sécurisation WiFi WPA2-EAP====&lt;br /&gt;
=====Configuration de la borne=====&lt;br /&gt;
&lt;br /&gt;
Une fois notre configuration sur la machine xen réalisée, on configure la borne WiFi. Le but est de faire en sorte que l'accès à la borne soit controlé par WPA2-EAP. On ajoute à la configuration du point d'accès Wifi un SSID protégé par la méthode WPA2-EAP. &amp;lt;br&amp;gt;On se connecte en telnet à la borne WiFi en 10.10.10.1 avec les identifiants Cisco/Cisco :&lt;br /&gt;
&lt;br /&gt;
 apt-get install telnet&lt;br /&gt;
 telnet 10.10.10.1&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 &lt;br /&gt;
 aaa new-model&lt;br /&gt;
 aaa authentication login eap_karmeliet group radius_karmeliet&lt;br /&gt;
 radius-server host 193.48.57.164 auth-port 1812 acct-port 1813 key password&lt;br /&gt;
 aaa group server radius radius_karmeliet&lt;br /&gt;
   server 193.48.57.164 auth-port 1812 acct-port 1813&lt;br /&gt;
 !&lt;br /&gt;
 &lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 dot11 ssid SSID_KARMELIET&lt;br /&gt;
   vlan 14&lt;br /&gt;
   authentication open eap eap_karmeliet &lt;br /&gt;
   authentication network-eap eap_karmeliet &lt;br /&gt;
   authentication key-management wpa&lt;br /&gt;
   mbssid guest-mode&lt;br /&gt;
 !&lt;br /&gt;
 &lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 encryption vlan 14 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid SSID_KARMELIET&lt;br /&gt;
 &lt;br /&gt;
 exit &lt;br /&gt;
 &lt;br /&gt;
 interface Dot11Radio0.14&lt;br /&gt;
 encapsulation dot1Q 14&lt;br /&gt;
 no ip route-cache&lt;br /&gt;
 bridge-group 14&lt;br /&gt;
 bridge-group 14 subscriber-loop-control&lt;br /&gt;
 bridge-group 14 spanning-disabled&lt;br /&gt;
 bridge-group 14 block-unknown-source&lt;br /&gt;
 no bridge-group 14 source-learning&lt;br /&gt;
 no bridge-group 14 unicast-flooding    &lt;br /&gt;
  &lt;br /&gt;
 exit&lt;br /&gt;
  &lt;br /&gt;
 interface GigabitEthernet0.14&lt;br /&gt;
 encapsulation dot1Q 14&lt;br /&gt;
 bridge-group 14&lt;br /&gt;
  &lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On réitère l'opération sur la borne située en E306 à l'adresse 10.10.10.2&lt;br /&gt;
&lt;br /&gt;
=====Test sur l'eepc=====&lt;br /&gt;
Configuration de l'eepc /etc/network/interfaces :&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface wlan0 inet static&lt;br /&gt;
  address 172.20.14.12&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 172.20.14.254&lt;br /&gt;
  wpa-ssid SSID_KARMELIET&lt;br /&gt;
  wpa-key-mgmt WPA-EAP&lt;br /&gt;
  wpa-identity zegbicho&lt;br /&gt;
  wpa-password ima15&lt;br /&gt;
&lt;br /&gt;
On regarde sur notre VM si cela fonctionne : en mode debug sur le RADIUS :&lt;br /&gt;
 service freeradius stop&lt;br /&gt;
 /usr/sbin/freeradius -X&lt;br /&gt;
&lt;br /&gt;
Validé !&lt;br /&gt;
===PCBX===&lt;br /&gt;
Après avoir installé 'asterisk' à l'aide de ''apt-get'', on configure le fichier ''/etc/asterisk/sip.conf'' en y ajoutant cela :&lt;br /&gt;
    [general]&lt;br /&gt;
    hasvoicemail = yes&lt;br /&gt;
    hassip = yes&lt;br /&gt;
    hasiax = yes&lt;br /&gt;
    callwaiting = yes&lt;br /&gt;
    threewaycalling = yes&lt;br /&gt;
    callwaitingcallerid = yes&lt;br /&gt;
    transfer = yes&lt;br /&gt;
    canpark = yes&lt;br /&gt;
    cancallforward = yes&lt;br /&gt;
    callreturn = yes&lt;br /&gt;
    callgroup = 1&lt;br /&gt;
    pickupgroup = 1&lt;br /&gt;
    nat = yes&lt;br /&gt;
 &lt;br /&gt;
    [1001]&lt;br /&gt;
    type=peer&lt;br /&gt;
    host=dynamic&lt;br /&gt;
    dtmfmode=rfc2833&lt;br /&gt;
    disallow=all&lt;br /&gt;
    allow=ulaw&lt;br /&gt;
    fullname = zegboy&lt;br /&gt;
    username = zegboy&lt;br /&gt;
    secret = coucou1&lt;br /&gt;
    context = work&lt;br /&gt;
  &lt;br /&gt;
    [1002]&lt;br /&gt;
    type=peer&lt;br /&gt;
    host=dynamic&lt;br /&gt;
    dtmfmode=rfc2833&lt;br /&gt;
    disallow=all&lt;br /&gt;
    allow=ulaw&lt;br /&gt;
    fullname = tibeechaw&lt;br /&gt;
    username = tibeechaw&lt;br /&gt;
    secret = coucou2&lt;br /&gt;
    context = work&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute dans le fichier ''/etc/asterisk/extensions.conf'' :&lt;br /&gt;
    [work]&lt;br /&gt;
    exten =&amp;gt; _1XXX,1,Dial(SIP/${EXTEN},20)&lt;br /&gt;
    exten =&amp;gt; _1XXX,2,Hangup()&lt;br /&gt;
&lt;br /&gt;
Après avoir connecté nos téléphones (Android) au spot Wi-Fi SSID_KARMELIET, on utilise l'application CSipSimple et on y ajoute un compte sur chaque téléphone sur le modèle suivant (exemple pour l'utilisateur 1001) :&lt;br /&gt;
 Nom du compte : zegboy&lt;br /&gt;
 Utilisateur : 1001&lt;br /&gt;
 Serveur : 172.20.14.6 //Adresse IP de l'EeePC sur lequel est installé Asterisk&lt;br /&gt;
 Mot de passe : coucou1&lt;br /&gt;
&lt;br /&gt;
Ainsi, on obtient un résultat correct puisqu'on a bien sur nos deux téléphones une communication par voie IP.&lt;br /&gt;
&lt;br /&gt;
/*Image à venir*/&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=24189</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=24189"/>
				<updated>2015-12-09T14:50:47Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* FreeRadius */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
===Partie commutateur===&lt;br /&gt;
===== Semaine 1 (01/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
===== Semaine 2 (08/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
===== Semaine 3 (15/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration réseau du commutateur se déroule en 3 étapes.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on configure les liaisons trunk. Il s'agit ici de la liaison qui relie le commutateur au routeur en E304, sur l'interface 4/1, et la liaison câble qui relie le commutateur au routeur en E306 sur l'interface 2/2. On entre donc les commandes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
 conf t &lt;br /&gt;
 int Gi4/1&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 1,11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 int Gi2/2&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 interface GigabitEthernet4/10&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé les VLAN 11-20, 110 et 130 de cette façon :&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 vlan 11&lt;br /&gt;
 name vlan11&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On leur attribue ensuite un port physique du commutateur :&lt;br /&gt;
&lt;br /&gt;
 int Gi4/11&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport access vlan 11&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On obtient donc le schéma physique suivant :&lt;br /&gt;
&lt;br /&gt;
*VLAN11 : Gigabit 4/11&lt;br /&gt;
*VLAN12 : Gigabit 4/12&lt;br /&gt;
*VLAN13 : Gigabit 4/13&lt;br /&gt;
*VLAN14 : Gigabit 4/14&lt;br /&gt;
*VLAN15 : Gigabit 4/15&lt;br /&gt;
*VLAN16 : Gigabit 4/16&lt;br /&gt;
*VLAN17 : Gigabit 4/17&lt;br /&gt;
*VLAN18 : Gigabit 4/18&lt;br /&gt;
*VLAN19 : Gigabit 4/19&lt;br /&gt;
*VLAN20 : Gigabit 4/20&lt;br /&gt;
*VLAN 110 : Gigabit 5/1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Semaine 9 (26/11/2015) =====&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter la borne wifi au commutateur, on rajoute le vlan 1 dans l'interface 4/10 :&lt;br /&gt;
&lt;br /&gt;
 interface GigabitEthernet4/10&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 1, 11-20,110,130&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En mode trunk pour que la borne ait accès à tous les vlan.&lt;br /&gt;
Le vlan est configuré de cette facon :&lt;br /&gt;
  Internet address is 10.10.10.1/24&lt;br /&gt;
  Broadcast address is 255.255.255.255&lt;br /&gt;
&lt;br /&gt;
=== VM xen ===&lt;br /&gt;
====Création de la machine====&lt;br /&gt;
&lt;br /&gt;
===== Semaine 3 (15/10/2015) =====&lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
===== Semaine 4 (22/10/2015) =====&lt;br /&gt;
*On lance la VM xen:&lt;br /&gt;
 xl create /etc/xen/KARMELIET.cfg&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur DNS et SSH:&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
==== Configuration du serveur apache et installation du certificat SSL ====&lt;br /&gt;
Pour activer le certificat SSL, nous devons à la fois manipuler sur notre machine Xen et sur le site gandi. Nous nous sommes d'ailleurs aidés des tutoriels gandi pour réaliser cette tâche. Nous certifions les domaines ''www.zegbicho.lol'' et ''zegbicho.lol''. Nous avons tout d'abord besoin de clés, on génère donc le premier fichier .csr à fournir à gandi avec la commande :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout zegbicho.lol.key -out zegbicho.lol.csr&lt;br /&gt;
&lt;br /&gt;
Cette commande nous a donc généré deux fichier : un fichier .key qui correspond à notre clé privée et un .csr ( clé publique) que nous devons fournir à gandi. Ce dernier nous retourne alors un .crt, nous supprimons aors la .crs dont nous n'avons plus besoin. Nous décidons de les ranger dans des dossier situés dans le dossier /etc/ssl/ de notre machine xen :&lt;br /&gt;
*Le fichier .crt dans /etc/ssl/certs/&lt;br /&gt;
*le fichier .key dans /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Nous allons à présent suivre le tutoriel gandi : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/ssl&lt;br /&gt;
&lt;br /&gt;
On active le module ssl d'apache :&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Puis on fait en sorte qu'apache écoute sur le port 443, on édite donc le fichier de configuration /etc/apache2/ports.conf et on ajoute:&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    Listen 443&lt;br /&gt;
    NameVirtualHost 193.48.57.164:443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous pouvons obtenir le certificat intermédiare de gandi.&lt;br /&gt;
Nous récupérons le fichier GandiStandardSSLCA2.pem qui nous plaçons dans le répertoire /etc/ssl/certs/&lt;br /&gt;
On effectue le rehash de la structure ssl:&lt;br /&gt;
 c_rehash /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un domaine sur notre apache sécurisé, on crée le site dédié www.zegbicho.lol.&lt;br /&gt;
Enfin, on ajoute un VirtualHost servant le contenu du dossier /var/www/www.zegbicho.lol/ sur le port 443, dans /etc/apache2/sites-available/000-zegbicho.lol-ssl.conf : &lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *:443&lt;br /&gt;
  &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ServerName www.zegbicho.lol&lt;br /&gt;
        ServerAlias zegbicho.lol&lt;br /&gt;
        DocumentRoot /var/www/www.zegbicho.lol/&lt;br /&gt;
        CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/ssl/certs/zegbicho.lol.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/zegbicho.lol.key&lt;br /&gt;
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la chaine SSl crée avec la commande : &lt;br /&gt;
 openssl s_client -connect 193.48.57.164:443&lt;br /&gt;
Notre chaine est validée, on passe donc à la configuration du serveur DNS&lt;br /&gt;
&lt;br /&gt;
==== Serveur DNS et DNSSEC avec Bind ====&lt;br /&gt;
&lt;br /&gt;
Nous nous aidons ici aussi des tutos gandi&lt;br /&gt;
&lt;br /&gt;
Il s'agira tout d'abord de s'occuper du changement de DNS sur le site gandi.&lt;br /&gt;
Nous devons au prélable gérer les glue records : https://wiki.gandi.net/fr/domains/management/change-glue&lt;br /&gt;
On va alors créer un enregistrement Glue :&lt;br /&gt;
*Nom du serveur : ns.zegbicho.lol&lt;br /&gt;
*Adresse IP : 193.48.57.164&lt;br /&gt;
&lt;br /&gt;
On peut alors modifier les serveurs de nom sur gandi.net : https://wiki.gandi.net/fr/dns/change&lt;br /&gt;
*DNS1 : ns.zegbicho.lol&lt;br /&gt;
*DNS2 : ns6.gandi.net&lt;br /&gt;
On utilise un serveur DNS secondaire appartenant à gandi.&lt;br /&gt;
&lt;br /&gt;
On attends la propagation DNS et on s'attaque à la configuration de BIND : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/bind&lt;br /&gt;
&lt;br /&gt;
Toute cette configuration s'effectue dans le dossier /etc/bind/&lt;br /&gt;
&lt;br /&gt;
On commence par créer un dossier zones dans lequel on créer un fichier de zone /etc/bind/zones/db.zegbicho.lol :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN      SOA     ns.zegbicho.lol. root.zegbicho.lol. (&lt;br /&gt;
                    2015102001         ; Serial&lt;br /&gt;
                         86400         ; Refresh&lt;br /&gt;
                          3600         ; Retry&lt;br /&gt;
                       2419200         ; Expire&lt;br /&gt;
                         86400 )       ; Negative Cache TTL&lt;br /&gt;
 &lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
 &lt;br /&gt;
 @       IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns      IN      A       193.48.57.164&lt;br /&gt;
 www     IN      A       193.48.57.164&lt;br /&gt;
 god     IN      A       193.48.57.164&lt;br /&gt;
 ns      IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 god     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 @       IN      A       193.48.57.164&lt;br /&gt;
 @       IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis on créer le fichier définissant la zone inverse pour la résolution des adresses IP, 57.48.193.in-addr.arpa :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN       SOA     ns.zegbicho.lol. root.zegbicho.lol.     (&lt;br /&gt;
       2015102001       ;serial&lt;br /&gt;
       14400            ;refresh&lt;br /&gt;
       3600             ;retry&lt;br /&gt;
       604800           ;expire&lt;br /&gt;
       10800            ;minimum&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.&lt;br /&gt;
 &lt;br /&gt;
 163               IN      PTR     zegbicho.lol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On modifie ensuite le fichier de configuration /etc/bind/named.conf.local, dans lequel on ajoute les zones :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;zegbicho.lol&amp;quot; {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/db.zegbicho.lol.signed&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
       notify yes;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;57.48.193.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/57.48.193.in-addr.arpa&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On finit avec la sécurisation DNS avec DNSSEC: On remarque que le fichier référencé dans /etc/bind/named.conf.local est&lt;br /&gt;
 /etc/bind/zones/db.zegbicho.lol.signed&lt;br /&gt;
Ce fichier est créé après la signature de la zone, mais nous devons tout d'abord réaliser quelques manipulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNSSEC est un protocole de sécurisation du protocole DNS. Celui-ci a pour but de signer les informations publiées grâce à un jeu de clés chiffrées.&lt;br /&gt;
On crée donc 2 clés : une Key Signing Key (KSK) et une Zone Signing Key (ZSK). Pour accélérer la génération nous utilisons l'option -r /dev/urandom qui permet d'utiliser une génération pseudo-aléatoire au lieu d'une génération /dev/random par défaut.&lt;br /&gt;
&lt;br /&gt;
Génération de la KSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE zegbicho.lol&lt;br /&gt;
Génération de la ZSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE zegbicho.lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On obtient donc 4 clés. En effet, à chaque génération de clé, on obtient une clé publique et une clé privée. Pour s'y retrouver, on renomme ces clés et on les place dans un dossier qu'on créer : /etc/bind/zegbicho.lol.dnssec&lt;br /&gt;
Ces clés (les deux clés publiques) sont référées dans le fichier de zone db.zegbicho.lol :&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va ensuite sur gandi.net dans la rubrique &amp;quot;gérer DNSSEC&amp;quot; et on leur fourni les deux clés publiques KSK et ZSK. Il peut alors les propager.&lt;br /&gt;
&lt;br /&gt;
Finalement, on signe la zone avec la commande suivante :&lt;br /&gt;
 dnssec-signzone -o zegbicho.lol -k zegbicho.lol.dnssec/zegbicho.lol-ksk zones/db.zegbicho.lol zegbicho.lol.dnssec/zegbicho.lol-zsk&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer le fichier /etc/bind/zones/db.zegbicho.lol.signed qu'on réfère dans le fichier de configuration /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
On finit alors par créer et éditer le fichier de cofiguration des options : /etc/bind/named.conf.options :&lt;br /&gt;
 options {&lt;br /&gt;
          dnssec enable yes;&lt;br /&gt;
          dnssec-validation yes;&lt;br /&gt;
          dnssec-lookaside auto;&lt;br /&gt;
          listen-on-v6 {any;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
==== Vérification de la fonctionnalité de notre site ====&lt;br /&gt;
&lt;br /&gt;
On entre l'URL zegbicho.lol, qui est automatiquement redirigée vers https://zegbicho.lol&lt;br /&gt;
On remarque que le certificat est valide. &amp;lt;br&amp;gt;&lt;br /&gt;
La page est uniquement accessible en https car nous avons modifié le fichier de confguration etc/apache2/sites-available/000-default.conf:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
 .....&lt;br /&gt;
 Redirect permanent / https://zegbicho.lol&lt;br /&gt;
 ....&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On test également notre configuration avec l'outil DNSSEC de l'outil https://www.zonemaster.fr/ et on remarque que le DNSSEC est validé/actif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site web réalisé est donc sécurisé !&lt;br /&gt;
&lt;br /&gt;
===Wifi===&lt;br /&gt;
====Tests d'intrusion par cassage de clé WEP====&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, on passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 7 --write out mon0&lt;br /&gt;
&lt;br /&gt;
En parallèle de ce processus, on peut lancer le cassage de la clé WEP avec la commande :&lt;br /&gt;
 aircrack-ng out-01.cap&lt;br /&gt;
&lt;br /&gt;
Après quelques minutes d'attente (soit env. 66249 IVs), on obtient enfin notre clé :&lt;br /&gt;
 KEY FOUND! [ 55:55:55:55:55:55:55:55:55:55:55:11:11 ]&lt;br /&gt;
&lt;br /&gt;
====Wifi : Cassage de clé WPA-PSK par force brute====&lt;br /&gt;
&lt;br /&gt;
Pour craquer ce type de clé, il faut trouver un moyen un peu plus complexe car aircrack n'est pas capable de trouver la clé par ses propres moyens. Il est nécessaire de lui fournir un dictionnaire contenant la clé de réseau pour espérer pouvoir s'y connecter. Nous avons donc commencé par générer un dictionnaire comprenant cent millions de clés (tous les nombres à 8 chiffres : 00000000 à 99999999). Nous avons pour cela créé un petit code C :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 int main(){&lt;br /&gt;
             int i=0;&lt;br /&gt;
             FILE* dico = fopen(&amp;quot;dictionnaire.txt&amp;quot;,&amp;quot;w+&amp;quot;);&lt;br /&gt;
             for(i=0;i&amp;lt;=99999999;i++){&lt;br /&gt;
             fprintf(dico, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
           }&lt;br /&gt;
           fclose(dico);&lt;br /&gt;
           return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 12 --write crackage_wpa-psk.txt mon0&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le cassage de la clé WPA-PSK en référant notre dictionnaire créé précédemment avec la commande :&lt;br /&gt;
 aircrack-ng -w dictionnaire.txt crackage_wpa-psk.txt-02.cap&lt;br /&gt;
&lt;br /&gt;
Le test des clés se fait à une vitesse moyenne de 3700 clés par seconde.&amp;lt;br&amp;gt;&lt;br /&gt;
Après quelques minutes d'attente , on obtient enfin notre clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Craquage_WPA_PSK.png |thumb|center| 600px|&amp;lt;center&amp;gt;Craquage WPA-PSK&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
===Sécurisation des données===&lt;br /&gt;
&lt;br /&gt;
*On crée les trois partitions LVM de 1Go : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid1 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid2 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid3 -v&lt;br /&gt;
&lt;br /&gt;
*On ajoute les partitions dans le fichier de configuration : &lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/disk.img,xvda2,w',&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/swap.img,xvda1,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-home,xvdc,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-var,xvdb,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid1,xvdd,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid2,xvde,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid3,xvdf,w',&lt;br /&gt;
          ]&lt;br /&gt;
&lt;br /&gt;
*Puis, on crée le RAID5 logiciel à l'aide de la commande: &lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd /dev/xvde /dev/xvdf&lt;br /&gt;
&lt;br /&gt;
*Pour vérifier que notre md0 a été correctement créé, on exécute la commande:&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
 Personalities : [raid6] [raid5] [raid4] &lt;br /&gt;
 md0 : active raid5 xvdf[2] xvde[1] xvdd[0]&lt;br /&gt;
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Et pour vérifier notre RAID5 logiciel avec les trois partitions :&lt;br /&gt;
  mdadm --detail /dev/md0&lt;br /&gt;
Ce qui donne :&lt;br /&gt;
         Version : 1.2&lt;br /&gt;
   Creation Time : Thu Nov 26 13:40:21 2015&lt;br /&gt;
      Raid Level : raid5&lt;br /&gt;
      Array Size : 2095104 (2046.34 MiB 2145.39 MB)&lt;br /&gt;
   Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)&lt;br /&gt;
    Raid Devices : 3&lt;br /&gt;
   Total Devices : 3&lt;br /&gt;
     Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
     Update Time : Thu Nov 26 13:49:20 2015&lt;br /&gt;
           State : clean &lt;br /&gt;
  Active Devices : 3&lt;br /&gt;
 Working Devices : 3&lt;br /&gt;
  Failed Devices : 0&lt;br /&gt;
   Spare Devices : 0&lt;br /&gt;
 &lt;br /&gt;
          Layout : left-symmetric&lt;br /&gt;
      Chunk Size : 512K&lt;br /&gt;
 &lt;br /&gt;
            Name : KARMELIET:0  (local to host KARMELIET)&lt;br /&gt;
            UUID : 4bb46fbe:6292cc6b:5fdccfcc:a4a94ae3&lt;br /&gt;
          Events : 2&lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice State&lt;br /&gt;
       0     202       48        0      active sync   /dev/xvdd&lt;br /&gt;
       1     202       64        1      active sync   /dev/xvde&lt;br /&gt;
       2     202       80        2      active sync   /dev/xvdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir redémarré la VM, on remarque que le volume nouvellement créé nommé md0 a été remplacé par md127.&lt;br /&gt;
&lt;br /&gt;
Après avoir supprimé une partition, on refait la commande :&lt;br /&gt;
  mdadm --detail /dev/md127&lt;br /&gt;
&lt;br /&gt;
Et on obtient :&lt;br /&gt;
  Version : 1.2&lt;br /&gt;
  Raid Level : raid0&lt;br /&gt;
  Total Devices : 2&lt;br /&gt;
  Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
          State : inactive&lt;br /&gt;
 &lt;br /&gt;
           Name : KARMELIET:0  (local to host KARMELIET)&lt;br /&gt;
           UUID : 4bb46fbe:6292cc6b:5fdccfcc:a4a94ae3&lt;br /&gt;
         Events : 2&lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice&lt;br /&gt;
 &lt;br /&gt;
       -     202       48        -        /dev/xvdd&lt;br /&gt;
       -     202       64        -        /dev/xvde&lt;br /&gt;
On vérifie le volume md127 :&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
On a :&lt;br /&gt;
 Personalities : &lt;br /&gt;
 md127 : inactive xvde[1](S) xvdd[0](S)&lt;br /&gt;
      2095104 blocks super 1.2&lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cryptage des données===&lt;br /&gt;
&lt;br /&gt;
A l'aide de la commande suivante, on formate la carte SD de telle sorte qu'elle n'ait plus qu'une seule partition :&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
&lt;br /&gt;
On crée maintenant la partition cryptée protégée par un mot de passe avec la commande :&lt;br /&gt;
 cryptsetup luksFormat -c aes -h sha256 /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
Avec la commande suivante, on affiche l'état du disque crypté :&lt;br /&gt;
 cryptsetup luksDump /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
On y ajoute ensuite un système de fichiers (ici au format ext3) :&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 karmeliet&lt;br /&gt;
 mkfs.ext3 /dev/mapper/karmeliet&lt;br /&gt;
&lt;br /&gt;
Pour monter la partition :&lt;br /&gt;
 mount -t ext3 /dev/mapper/&amp;lt;nom_du_disque&amp;gt; /mnt/&lt;br /&gt;
&lt;br /&gt;
On peut ainsi lire et écrire des fichiers sur la carte SD en travaillant dans le dossier /mnt/. Après avoir fini, on démonte la carte SD avec les commandes :&lt;br /&gt;
 umount /mnt/&lt;br /&gt;
 cryptsetup luksClose karmeliet&lt;br /&gt;
&lt;br /&gt;
Lors de l'échange de cartes SD, en exécutant la commande d'ouverture du système de cryptage ('luksOpen'), un mot de passe est nécessaire pour le montage et l'utilisation de la carte. Le cryptage fonctionne !&lt;br /&gt;
&lt;br /&gt;
===Authentification et serveur RADIUS===&lt;br /&gt;
&lt;br /&gt;
====FreeRadius====&lt;br /&gt;
&lt;br /&gt;
Nous commençons par la configuration d'un serveur FreeRadius sur notre VM pour sécuriser le WiFi par WPA2-EAP. On travaille dans le dossier :&lt;br /&gt;
 apt-get install freeradius&lt;br /&gt;
 cd /etc/freeradius&lt;br /&gt;
Il nous faut rajouter un nouvel utilisateur qui nous servira pour authentification sur le réseau WiFi. Pour cela, on rajoute une ligne dans le fichier users :&lt;br /&gt;
 zegbicho Cleartext-password := &amp;quot;ima15&amp;quot;&lt;br /&gt;
On édite ensuite le fichier client.conf et on y ajoute :&lt;br /&gt;
 client E304 {&lt;br /&gt;
         ipaddr = 10.10.10.1&lt;br /&gt;
         netmask = 32&lt;br /&gt;
         secret = ima15&lt;br /&gt;
 }&lt;br /&gt;
 client E306 {&lt;br /&gt;
         ipaddr = 10.10.10.2&lt;br /&gt;
         netmask = 32&lt;br /&gt;
         secret = ima15&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client VLAN14 {&lt;br /&gt;
         ipaddr = 172.20.14.0&lt;br /&gt;
         netmask = 24&lt;br /&gt;
         secret = ima15&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On configure aussi le fichier eap.conf pour utiliser le PEAP-MSCHAPv2. On édite donc ce fichier et on change le type de méthode : &lt;br /&gt;
*default_eap_type = peap&lt;br /&gt;
*Dans peap : default_eap_type = mschapv2&lt;br /&gt;
&lt;br /&gt;
  eap {&lt;br /&gt;
    default_eap_type = peap&lt;br /&gt;
    peap {&lt;br /&gt;
      default_eap_type = mschapv2&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
====Borne WiFi====&lt;br /&gt;
=====Configuration=====&lt;br /&gt;
&lt;br /&gt;
Une fois notre configuration sur la machine xen réalisée, on configure la borne WiFi. Le but est de faire en sorte que l'accès à la borne soit controlé par WPA2-EAP. On ajoute à la configuration du point d'accès Wifi un SSID protégé par la méthode WPA2-EAP. &amp;lt;br&amp;gt;On se connecte en telnet à la borne WiFi en 10.10.10.1 avec les identifiants Cisco/Cisco :&lt;br /&gt;
&lt;br /&gt;
 apt-get install telnet&lt;br /&gt;
 telnet 10.10.10.1&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 &lt;br /&gt;
 aaa new-model&lt;br /&gt;
 aaa authentication login eap_karmeliet group radius_karmeliet&lt;br /&gt;
 radius-server host 193.48.57.164 auth-port 1812 acct-port 1813 key secret_karmeliet&lt;br /&gt;
 aaa group server radius radius_karmeliet&lt;br /&gt;
   server 193.48.57.164 auth-port 1812 acct-port 1813&lt;br /&gt;
 !&lt;br /&gt;
 &lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 dot11 ssid SSID_KARMELIET&lt;br /&gt;
   vlan 14&lt;br /&gt;
   authentication open eap eap_karmeliet &lt;br /&gt;
   authentication network-eap eap_karmeliet &lt;br /&gt;
   authentication key-management wpa&lt;br /&gt;
   mbssid guest-mode&lt;br /&gt;
 !&lt;br /&gt;
 &lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 encryption vlan 14 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid SSID_KARMELIET&lt;br /&gt;
 &lt;br /&gt;
 exit &lt;br /&gt;
 &lt;br /&gt;
 interface Dot11Radio0.14&lt;br /&gt;
 encapsulation dot1Q 14&lt;br /&gt;
 no ip route-cache&lt;br /&gt;
 bridge-group 14&lt;br /&gt;
 bridge-group 14 subscriber-loop-control&lt;br /&gt;
 bridge-group 14 spanning-disabled&lt;br /&gt;
 bridge-group 14 block-unknown-source&lt;br /&gt;
 no bridge-group 14 source-learning&lt;br /&gt;
 no bridge-group 14 unicast-flooding    &lt;br /&gt;
  &lt;br /&gt;
 exit&lt;br /&gt;
  &lt;br /&gt;
 interface GigabitEthernet0.14&lt;br /&gt;
 encapsulation dot1Q 14&lt;br /&gt;
 bridge-group 14&lt;br /&gt;
  &lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
=====Test=====&lt;br /&gt;
Configuration de l'eepc /etc/network/interfaces :&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface wlan0 inet static&lt;br /&gt;
  address 172.20.14.12&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 172.20.14.254&lt;br /&gt;
  wpa-ssid SSID_KARMELIET&lt;br /&gt;
  wpa-key-mgmt WPA-EAP&lt;br /&gt;
  wpa-identity myusername&lt;br /&gt;
  wpa-password mycleanpassword&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=24182</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=24182"/>
				<updated>2015-12-09T13:54:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Wifi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
===Partie commutateur===&lt;br /&gt;
===== Semaine 1 (01/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
===== Semaine 2 (08/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
===== Semaine 3 (15/10/2015) =====&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La configuration réseau du commutateur se déroule en 3 étapes.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on configure les liaisons trunk. Il s'agit ici de la liaison qui relie le commutateur au routeur en E304, sur l'interface 4/1, et la liaison câble qui relie le commutateur au routeur en E306 sur l'interface 2/2. On entre donc les commandes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
 conf t &lt;br /&gt;
 int Gi4/1&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 1,11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 int Gi2/2&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 interface GigabitEthernet4/10&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé les VLAN 11-20, 110 et 130 de cette façon :&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 vlan 11&lt;br /&gt;
 name vlan11&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On leur attribue ensuite un port physique du commutateur :&lt;br /&gt;
&lt;br /&gt;
 int Gi4/11&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport access vlan 11&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On obtient donc le schéma physique suivant :&lt;br /&gt;
&lt;br /&gt;
*VLAN11 : Gigabit 4/11&lt;br /&gt;
*VLAN12 : Gigabit 4/12&lt;br /&gt;
*VLAN13 : Gigabit 4/13&lt;br /&gt;
*VLAN14 : Gigabit 4/14&lt;br /&gt;
*VLAN15 : Gigabit 4/15&lt;br /&gt;
*VLAN16 : Gigabit 4/16&lt;br /&gt;
*VLAN17 : Gigabit 4/17&lt;br /&gt;
*VLAN18 : Gigabit 4/18&lt;br /&gt;
*VLAN19 : Gigabit 4/19&lt;br /&gt;
*VLAN20 : Gigabit 4/20&lt;br /&gt;
*VLAN 110 : Gigabit 5/1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Semaine 9 (26/11/2015) =====&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter la borne wifi au commutateur, on rajoute le vlan 1 dans l'interface 4/10 :&lt;br /&gt;
&lt;br /&gt;
 interface GigabitEthernet4/10&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 1, 11-20,110,130&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En mode trunk pour que la borne ait accès à tous les vlan.&lt;br /&gt;
Le vlan est configuré de cette facon :&lt;br /&gt;
  Internet address is 10.10.10.1/24&lt;br /&gt;
  Broadcast address is 255.255.255.255&lt;br /&gt;
&lt;br /&gt;
=== VM xen ===&lt;br /&gt;
====Création de la machine====&lt;br /&gt;
&lt;br /&gt;
===== Semaine 3 (15/10/2015) =====&lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
===== Semaine 4 (22/10/2015) =====&lt;br /&gt;
*On lance la VM xen:&lt;br /&gt;
 xl create /etc/xen/KARMELIET.cfg&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur DNS et SSH:&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
==== Configuration du serveur apache et installation du certificat SSL ====&lt;br /&gt;
Pour activer le certificat SSL, nous devons à la fois manipuler sur notre machine Xen et sur le site gandi. Nous nous sommes d'ailleurs aidés des tutoriels gandi pour réaliser cette tâche. Nous certifions les domaines ''www.zegbicho.lol'' et ''zegbicho.lol''. Nous avons tout d'abord besoin de clés, on génère donc le premier fichier .csr à fournir à gandi avec la commande :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout zegbicho.lol.key -out zegbicho.lol.csr&lt;br /&gt;
&lt;br /&gt;
Cette commande nous a donc généré deux fichier : un fichier .key qui correspond à notre clé privée et un .csr ( clé publique) que nous devons fournir à gandi. Ce dernier nous retourne alors un .crt, nous supprimons aors la .crs dont nous n'avons plus besoin. Nous décidons de les ranger dans des dossier situés dans le dossier /etc/ssl/ de notre machine xen :&lt;br /&gt;
*Le fichier .crt dans /etc/ssl/certs/&lt;br /&gt;
*le fichier .key dans /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Nous allons à présent suivre le tutoriel gandi : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/ssl&lt;br /&gt;
&lt;br /&gt;
On active le module ssl d'apache :&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Puis on fait en sorte qu'apache écoute sur le port 443, on édite donc le fichier de configuration /etc/apache2/ports.conf et on ajoute:&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    Listen 443&lt;br /&gt;
    NameVirtualHost 193.48.57.164:443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous pouvons obtenir le certificat intermédiare de gandi.&lt;br /&gt;
Nous récupérons le fichier GandiStandardSSLCA2.pem qui nous plaçons dans le répertoire /etc/ssl/certs/&lt;br /&gt;
On effectue le rehash de la structure ssl:&lt;br /&gt;
 c_rehash /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un domaine sur notre apache sécurisé, on crée le site dédié www.zegbicho.lol.&lt;br /&gt;
Enfin, on ajoute un VirtualHost servant le contenu du dossier /var/www/www.zegbicho.lol/ sur le port 443, dans /etc/apache2/sites-available/000-zegbicho.lol-ssl.conf : &lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *:443&lt;br /&gt;
  &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ServerName www.zegbicho.lol&lt;br /&gt;
        ServerAlias zegbicho.lol&lt;br /&gt;
        DocumentRoot /var/www/www.zegbicho.lol/&lt;br /&gt;
        CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/ssl/certs/zegbicho.lol.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/zegbicho.lol.key&lt;br /&gt;
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la chaine SSl crée avec la commande : &lt;br /&gt;
 openssl s_client -connect 193.48.57.164:443&lt;br /&gt;
Notre chaine est validée, on passe donc à la configuration du serveur DNS&lt;br /&gt;
&lt;br /&gt;
==== Serveur DNS et DNSSEC avec Bind ====&lt;br /&gt;
&lt;br /&gt;
Nous nous aidons ici aussi des tutos gandi&lt;br /&gt;
&lt;br /&gt;
Il s'agira tout d'abord de s'occuper du changement de DNS sur le site gandi.&lt;br /&gt;
Nous devons au prélable gérer les glue records : https://wiki.gandi.net/fr/domains/management/change-glue&lt;br /&gt;
On va alors créer un enregistrement Glue :&lt;br /&gt;
*Nom du serveur : ns.zegbicho.lol&lt;br /&gt;
*Adresse IP : 193.48.57.164&lt;br /&gt;
&lt;br /&gt;
On peut alors modifier les serveurs de nom sur gandi.net : https://wiki.gandi.net/fr/dns/change&lt;br /&gt;
*DNS1 : ns.zegbicho.lol&lt;br /&gt;
*DNS2 : ns6.gandi.net&lt;br /&gt;
On utilise un serveur DNS secondaire appartenant à gandi.&lt;br /&gt;
&lt;br /&gt;
On attends la propagation DNS et on s'attaque à la configuration de BIND : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/bind&lt;br /&gt;
&lt;br /&gt;
Toute cette configuration s'effectue dans le dossier /etc/bind/&lt;br /&gt;
&lt;br /&gt;
On commence par créer un dossier zones dans lequel on créer un fichier de zone /etc/bind/zones/db.zegbicho.lol :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN      SOA     ns.zegbicho.lol. root.zegbicho.lol. (&lt;br /&gt;
                    2015102001         ; Serial&lt;br /&gt;
                         86400         ; Refresh&lt;br /&gt;
                          3600         ; Retry&lt;br /&gt;
                       2419200         ; Expire&lt;br /&gt;
                         86400 )       ; Negative Cache TTL&lt;br /&gt;
 &lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
 &lt;br /&gt;
 @       IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns      IN      A       193.48.57.164&lt;br /&gt;
 www     IN      A       193.48.57.164&lt;br /&gt;
 god     IN      A       193.48.57.164&lt;br /&gt;
 ns      IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 god     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 @       IN      A       193.48.57.164&lt;br /&gt;
 @       IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis on créer le fichier définissant la zone inverse pour la résolution des adresses IP, 57.48.193.in-addr.arpa :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN       SOA     ns.zegbicho.lol. root.zegbicho.lol.     (&lt;br /&gt;
       2015102001       ;serial&lt;br /&gt;
       14400            ;refresh&lt;br /&gt;
       3600             ;retry&lt;br /&gt;
       604800           ;expire&lt;br /&gt;
       10800            ;minimum&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.&lt;br /&gt;
 &lt;br /&gt;
 163               IN      PTR     zegbicho.lol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On modifie ensuite le fichier de configuration /etc/bind/named.conf.local, dans lequel on ajoute les zones :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;zegbicho.lol&amp;quot; {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/db.zegbicho.lol.signed&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
       notify yes;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;57.48.193.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/57.48.193.in-addr.arpa&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On finit avec la sécurisation DNS avec DNSSEC: On remarque que le fichier référencé dans /etc/bind/named.conf.local est&lt;br /&gt;
 /etc/bind/zones/db.zegbicho.lol.signed&lt;br /&gt;
Ce fichier est créé après la signature de la zone, mais nous devons tout d'abord réaliser quelques manipulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNSSEC est un protocole de sécurisation du protocole DNS. Celui-ci a pour but de signer les informations publiées grâce à un jeu de clés chiffrées.&lt;br /&gt;
On crée donc 2 clés : une Key Signing Key (KSK) et une Zone Signing Key (ZSK). Pour accélérer la génération nous utilisons l'option -r /dev/urandom qui permet d'utiliser une génération pseudo-aléatoire au lieu d'une génération /dev/random par défaut.&lt;br /&gt;
&lt;br /&gt;
Génération de la KSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE zegbicho.lol&lt;br /&gt;
Génération de la ZSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE zegbicho.lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On obtient donc 4 clés. En effet, à chaque génération de clé, on obtient une clé publique et une clé privée. Pour s'y retrouver, on renomme ces clés et on les place dans un dossier qu'on créer : /etc/bind/zegbicho.lol.dnssec&lt;br /&gt;
Ces clés (les deux clés publiques) sont référées dans le fichier de zone db.zegbicho.lol :&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va ensuite sur gandi.net dans la rubrique &amp;quot;gérer DNSSEC&amp;quot; et on leur fourni les deux clés publiques KSK et ZSK. Il peut alors les propager.&lt;br /&gt;
&lt;br /&gt;
Finalement, on signe la zone avec la commande suivante :&lt;br /&gt;
 dnssec-signzone -o zegbicho.lol -k zegbicho.lol.dnssec/zegbicho.lol-ksk zones/db.zegbicho.lol zegbicho.lol.dnssec/zegbicho.lol-zsk&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer le fichier /etc/bind/zones/db.zegbicho.lol.signed qu'on réfère dans le fichier de configuration /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
On finit alors par créer et éditer le fichier de cofiguration des options : /etc/bind/named.conf.options :&lt;br /&gt;
 options {&lt;br /&gt;
          dnssec enable yes;&lt;br /&gt;
          dnssec-validation yes;&lt;br /&gt;
          dnssec-lookaside auto;&lt;br /&gt;
          listen-on-v6 {any;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
==== Vérification de la fonctionnalité de notre site ====&lt;br /&gt;
&lt;br /&gt;
On entre l'URL zegbicho.lol, qui est automatiquement redirigée vers https://zegbicho.lol&lt;br /&gt;
On remarque que le certificat est valide. &amp;lt;br&amp;gt;&lt;br /&gt;
La page est uniquement accessible en https car nous avons modifié le fichier de confguration etc/apache2/sites-available/000-default.conf:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
 .....&lt;br /&gt;
 Redirect permanent / https://zegbicho.lol&lt;br /&gt;
 ....&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On test également notre configuration avec l'outil DNSSEC de l'outil https://www.zonemaster.fr/ et on remarque que le DNSSEC est validé/actif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site web réalisé est donc sécurisé !&lt;br /&gt;
&lt;br /&gt;
===Wifi===&lt;br /&gt;
====Tests d'intrusion par cassage de clé WEP====&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, on passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 7 --write out mon0&lt;br /&gt;
&lt;br /&gt;
En parallèle de ce processus, on peut lancer le cassage de la clé WEP avec la commande :&lt;br /&gt;
 aircrack-ng out-01.cap&lt;br /&gt;
&lt;br /&gt;
Après quelques minutes d'attente (soit env. 66249 IVs), on obtient enfin notre clé :&lt;br /&gt;
 KEY FOUND! [ 55:55:55:55:55:55:55:55:55:55:55:11:11 ]&lt;br /&gt;
&lt;br /&gt;
====Wifi : Cassage de clé WPA-PSK par force brute====&lt;br /&gt;
&lt;br /&gt;
Pour craquer ce type de clé, il faut trouver un moyen un peu plus complexe car aircrack n'est pas capable de trouver la clé par ses propres moyens. Il est nécessaire de lui fournir un dictionnaire contenant la clé de réseau pour espérer pouvoir s'y connecter. Nous avons donc commencé par générer un dictionnaire comprenant cent millions de clés (tous les nombres à 8 chiffres : 00000000 à 99999999). Nous avons pour cela créé un petit code C :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 int main(){&lt;br /&gt;
             int i=0;&lt;br /&gt;
             FILE* dico = fopen(&amp;quot;dictionnaire.txt&amp;quot;,&amp;quot;w+&amp;quot;);&lt;br /&gt;
             for(i=0;i&amp;lt;=99999999;i++){&lt;br /&gt;
             fprintf(dico, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
           }&lt;br /&gt;
           fclose(dico);&lt;br /&gt;
           return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 12 --write crackage_wpa-psk.txt mon0&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le cassage de la clé WPA-PSK en référant notre dictionnaire créé précédemment avec la commande :&lt;br /&gt;
 aircrack-ng -w dictionnaire.txt crackage_wpa-psk.txt-02.cap&lt;br /&gt;
&lt;br /&gt;
Le test des clés se fait à une vitesse moyenne de 3700 clés par seconde.&amp;lt;br&amp;gt;&lt;br /&gt;
Après quelques minutes d'attente , on obtient enfin notre clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Craquage_WPA_PSK.png |thumb|center| 600px|&amp;lt;center&amp;gt;Craquage WPA-PSK&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
===Sécurisation des données===&lt;br /&gt;
&lt;br /&gt;
*On crée les trois partitions LVM de 1Go : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid1 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid2 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid3 -v&lt;br /&gt;
&lt;br /&gt;
*On ajoute les partitions dans le fichier de configuration : &lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/disk.img,xvda2,w',&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/swap.img,xvda1,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-home,xvdc,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-var,xvdb,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid1,xvdd,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid2,xvde,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid3,xvdf,w',&lt;br /&gt;
          ]&lt;br /&gt;
&lt;br /&gt;
*Puis, on crée le RAID5 logiciel à l'aide de la commande: &lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd /dev/xvde /dev/xvdf&lt;br /&gt;
&lt;br /&gt;
*Pour vérifier que notre md0 a été correctement créé, on exécute la commande:&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
 Personalities : [raid6] [raid5] [raid4] &lt;br /&gt;
 md0 : active raid5 xvdf[2] xvde[1] xvdd[0]&lt;br /&gt;
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Et pour vérifier notre RAID5 logiciel avec les trois partitions :&lt;br /&gt;
  mdadm --detail /dev/md0&lt;br /&gt;
Ce qui donne :&lt;br /&gt;
         Version : 1.2&lt;br /&gt;
   Creation Time : Thu Nov 26 13:40:21 2015&lt;br /&gt;
      Raid Level : raid5&lt;br /&gt;
      Array Size : 2095104 (2046.34 MiB 2145.39 MB)&lt;br /&gt;
   Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)&lt;br /&gt;
    Raid Devices : 3&lt;br /&gt;
   Total Devices : 3&lt;br /&gt;
     Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
     Update Time : Thu Nov 26 13:49:20 2015&lt;br /&gt;
           State : clean &lt;br /&gt;
  Active Devices : 3&lt;br /&gt;
 Working Devices : 3&lt;br /&gt;
  Failed Devices : 0&lt;br /&gt;
   Spare Devices : 0&lt;br /&gt;
 &lt;br /&gt;
          Layout : left-symmetric&lt;br /&gt;
      Chunk Size : 512K&lt;br /&gt;
 &lt;br /&gt;
            Name : KARMELIET:0  (local to host KARMELIET)&lt;br /&gt;
            UUID : 4bb46fbe:6292cc6b:5fdccfcc:a4a94ae3&lt;br /&gt;
          Events : 2&lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice State&lt;br /&gt;
       0     202       48        0      active sync   /dev/xvdd&lt;br /&gt;
       1     202       64        1      active sync   /dev/xvde&lt;br /&gt;
       2     202       80        2      active sync   /dev/xvdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir redémarré la VM, on remarque que le volume nouvellement créé nommé md0 a été remplacé par md127.&lt;br /&gt;
&lt;br /&gt;
Après avoir supprimé une partition, on refait la commande :&lt;br /&gt;
  mdadm --detail /dev/md127&lt;br /&gt;
&lt;br /&gt;
Et on obtient :&lt;br /&gt;
  Version : 1.2&lt;br /&gt;
  Raid Level : raid0&lt;br /&gt;
  Total Devices : 2&lt;br /&gt;
  Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
          State : inactive&lt;br /&gt;
 &lt;br /&gt;
           Name : KARMELIET:0  (local to host KARMELIET)&lt;br /&gt;
           UUID : 4bb46fbe:6292cc6b:5fdccfcc:a4a94ae3&lt;br /&gt;
         Events : 2&lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice&lt;br /&gt;
 &lt;br /&gt;
       -     202       48        -        /dev/xvdd&lt;br /&gt;
       -     202       64        -        /dev/xvde&lt;br /&gt;
On vérifie le volume md127 :&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
On a :&lt;br /&gt;
 Personalities : &lt;br /&gt;
 md127 : inactive xvde[1](S) xvdd[0](S)&lt;br /&gt;
      2095104 blocks super 1.2&lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cryptage des données===&lt;br /&gt;
&lt;br /&gt;
A l'aide de la commande suivante, on formate la carte SD de telle sorte qu'elle n'ait plus qu'une seule partition :&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
&lt;br /&gt;
On crée maintenant la partition cryptée protégée par un mot de passe avec la commande :&lt;br /&gt;
 cryptsetup luksFormat -c aes -h sha256 /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
Avec la commande suivante, on affiche l'état du disque crypté :&lt;br /&gt;
 cryptsetup luksDump /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
On y ajoute ensuite un système de fichiers (ici au format ext3) :&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 karmeliet&lt;br /&gt;
 mkfs.ext3 /dev/mapper/karmeliet&lt;br /&gt;
&lt;br /&gt;
Pour monter la partition :&lt;br /&gt;
 mount -t ext3 /dev/mapper/&amp;lt;nom_du_disque&amp;gt; /mnt/&lt;br /&gt;
&lt;br /&gt;
On peut ainsi lire et écrire des fichiers sur la carte SD en travaillant dans le dossier /mnt/. Après avoir fini, on démonte la carte SD avec les commandes :&lt;br /&gt;
 umount /mnt/&lt;br /&gt;
 cryptsetup luksClose karmeliet&lt;br /&gt;
&lt;br /&gt;
Lors de l'échange de cartes SD, en exécutant la commande d'ouverture du système de cryptage ('luksOpen'), un mot de passe est nécessaire pour le montage et l'utilisation de la carte. Le cryptage fonctionne !&lt;br /&gt;
&lt;br /&gt;
===Authentification et serveur RADIUS===&lt;br /&gt;
&lt;br /&gt;
====FreeRadius====&lt;br /&gt;
&lt;br /&gt;
Nous commençons par la configuration d'un serveur FreeRadius sur notre VM pour sécuriser le WiFi par WPA2-EAP. On travaille dans le dossier :&lt;br /&gt;
 apt-get install freeradius&lt;br /&gt;
 cd /etc/freeradius&lt;br /&gt;
Il nous fat rajouter un nouvel utilisateur qui nous servira pour authentification sur le réseau WiFi. Pour cela, on rajoute une ligne dans le fichier users :&lt;br /&gt;
 zegbicho Cleartext-password := &amp;quot;ima15&amp;quot;&lt;br /&gt;
On édite ensuite le fichier client.conf et on y ajoute :&lt;br /&gt;
 client E304 {&lt;br /&gt;
         ipaddr = 10.10.10.1&lt;br /&gt;
         netmask = 32&lt;br /&gt;
         secret = ima15&lt;br /&gt;
 }&lt;br /&gt;
 client E306 {&lt;br /&gt;
         ipaddr = 10.10.10.2&lt;br /&gt;
         netmask = 32&lt;br /&gt;
         secret = ima15&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client VLAN14 {&lt;br /&gt;
         ipaddr = 172.20.14.0&lt;br /&gt;
         netmask = 24&lt;br /&gt;
         secret = ima15&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On configure aussi le fichier eap.conf pour utiliser le PEAP-MSCHAPv2. On édite donc ce fichier et on change le type de méthode : &lt;br /&gt;
*default_eap_type = peap&lt;br /&gt;
*Dans peap : default_eap_type = mschapv2&lt;br /&gt;
&lt;br /&gt;
  eap {&lt;br /&gt;
    default_eap_type = peap&lt;br /&gt;
    peap {&lt;br /&gt;
      default_eap_type = mschapv2&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
====Borne WiFi====&lt;br /&gt;
=====Configuration=====&lt;br /&gt;
&lt;br /&gt;
Une fois notre configuration sur la machine xen réalisée, on configure la borne WiFi. Le but est de faire en sorte que l'accès à la borne soit controlé par WPA2-EAP. On ajoute à la configuration du point d'accès Wifi un SSID protégé par la méthode WPA2-EAP. &amp;lt;br&amp;gt;On se connecte en telnet à la borne WiFi en 10.10.10.1 avec les identifiants Cisco/Cisco :&lt;br /&gt;
&lt;br /&gt;
 apt-get install telnet&lt;br /&gt;
 telnet 10.10.10.1&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 &lt;br /&gt;
 aaa new-model&lt;br /&gt;
 aaa authentication login eap_karmeliet group radius_karmeliet&lt;br /&gt;
 radius-server host 193.48.57.164 auth-port 1812 acct-port 1813 key secret_karmeliet&lt;br /&gt;
 aaa group server radius radius_karmeliet&lt;br /&gt;
   server 193.48.57.164 auth-port 1812 acct-port 1813&lt;br /&gt;
 !&lt;br /&gt;
 &lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 dot11 ssid SSID_KARMELIET&lt;br /&gt;
   vlan 14&lt;br /&gt;
   authentication open eap eap_karmeliet &lt;br /&gt;
   authentication network-eap eap_karmeliet &lt;br /&gt;
   authentication key-management wpa&lt;br /&gt;
   mbssid guest-mode&lt;br /&gt;
 !&lt;br /&gt;
 &lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 encryption vlan 14 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid SSID_KARMELIET&lt;br /&gt;
 &lt;br /&gt;
 exit &lt;br /&gt;
 &lt;br /&gt;
 interface Dot11Radio0.14&lt;br /&gt;
 encapsulation dot1Q 14&lt;br /&gt;
 no ip route-cache&lt;br /&gt;
 bridge-group 14&lt;br /&gt;
 bridge-group 14 subscriber-loop-control&lt;br /&gt;
 bridge-group 14 spanning-disabled&lt;br /&gt;
 bridge-group 14 block-unknown-source&lt;br /&gt;
 no bridge-group 14 source-learning&lt;br /&gt;
 no bridge-group 14 unicast-flooding    &lt;br /&gt;
  &lt;br /&gt;
 exit&lt;br /&gt;
  &lt;br /&gt;
 interface GigabitEthernet0.14&lt;br /&gt;
 encapsulation dot1Q 14&lt;br /&gt;
 bridge-group 14&lt;br /&gt;
  &lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
=====Test=====&lt;br /&gt;
Configuration de l'eepc /etc/network/interfaces :&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface wlan0 inet static&lt;br /&gt;
  address 172.20.14.12&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 172.20.14.254&lt;br /&gt;
  wpa-ssid SSID_KARMELIET&lt;br /&gt;
  wpa-key-mgmt WPA-EAP&lt;br /&gt;
  wpa-identity myusername&lt;br /&gt;
  wpa-password mycleanpassword&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=23469</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=23469"/>
				<updated>2015-11-30T14:11:53Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Sécurisation des données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
*On lance la VM xen:&lt;br /&gt;
 xl create /etc/xen/KARMELIET.cfg&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur DNS et SSH:&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC (nom de l'EeePC : heron)====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 iwconfig wlan0 essid baguette&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (09/11/2015) ===&lt;br /&gt;
&lt;br /&gt;
==== Configuration du switch E304 ====&lt;br /&gt;
&lt;br /&gt;
La configuration réseau du commutateur se déroule en 3 étapes.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on configure les liaisons trunk. Il s'agit ici de la liaison qui relie le commutateur au routeur en E304, sur l'interface 4/1, et la liaison câble qui relie le commutateur au routeur en E306 sur l'interface 2/2. On entre donc les commandes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
 conf t &lt;br /&gt;
 int Gi4/1&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 int Gi2/2&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé les VLAN 11-20, 110 et 130 de cette façon :&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 vlan 11&lt;br /&gt;
 name vlan11&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On leur attribue ensuite un port physique du commutateur :&lt;br /&gt;
&lt;br /&gt;
 int Gi4/11&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport access vlan 11&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On obtient donc le schéma physique suivant :&lt;br /&gt;
&lt;br /&gt;
*VLAN11 : Gigabit 4/11&lt;br /&gt;
*VLAN12 : Gigabit 4/12&lt;br /&gt;
*VLAN13 : Gigabit 4/13&lt;br /&gt;
*VLAN14 : Gigabit 4/14&lt;br /&gt;
*VLAN15 : Gigabit 4/15&lt;br /&gt;
*VLAN16 : Gigabit 4/16&lt;br /&gt;
*VLAN17 : Gigabit 4/17&lt;br /&gt;
*VLAN18 : Gigabit 4/18&lt;br /&gt;
*VLAN19 : Gigabit 4/19&lt;br /&gt;
*VLAN20 : Gigabit 4/20&lt;br /&gt;
*VLAN 110 : Gigabit 5/1&lt;br /&gt;
&lt;br /&gt;
=== VM xen ===&lt;br /&gt;
==== Configuration du serveur apache et installation du certificat SSL ====&lt;br /&gt;
Pour activer le certificat SSL, nous devons à la fois manipuler sur notre machine Xen et sur le site gandi. Nous nous sommes d'ailleurs aidés des tutoriels gandi pour réaliser cette tâche. Nous certifions les domaines ''www.zegbicho.lol'' et ''zegbicho.lol''. Nous avons tout d'abord besoin de clés, on génère donc le premier fichier .csr à fournir à gandi avec la commande :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout zegbicho.lol.key -out zegbicho.lol.csr&lt;br /&gt;
&lt;br /&gt;
Cette commande nous a donc généré deux fichier : un fichier .key qui correspond à notre clé privée et un .csr ( clé publique) que nous devons fournir à gandi. Ce dernier nous retourne alors un .crt, nous supprimons aors la .crs dont nous n'avons plus besoin. Nous décidons de les ranger dans des dossier situés dans le dossier /etc/ssl/ de notre machine xen :&lt;br /&gt;
*Le fichier .crt dans /etc/ssl/certs/&lt;br /&gt;
*le fichier .key dans /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Nous allons à présent suivre le tutoriel gandi : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/ssl&lt;br /&gt;
&lt;br /&gt;
On active le module ssl d'apache :&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Puis on fait en sorte qu'apache écoute sur le port 443, on édite donc le fichier de configuration /etc/apache2/ports.conf et on ajoute:&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    Listen 443&lt;br /&gt;
    NameVirtualHost 193.48.57.164:443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous pouvons obtenir le certificat intermédiare de gandi.&lt;br /&gt;
Nous récupérons le fichier GandiStandardSSLCA2.pem qui nous plaçons dans le répertoire /etc/ssl/certs/&lt;br /&gt;
On effectue le rehash de la structure ssl:&lt;br /&gt;
 c_rehash /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un domaine sur notre apache sécurisé, on crée le site dédié www.zegbicho.lol.&lt;br /&gt;
Enfin, on ajoute un VirtualHost servant le contenu du dossier /var/www/www.zegbicho.lol/ sur le port 443, dans /etc/apache2/sites-available/000-zegbicho.lol-ssl.conf : &lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *:443&lt;br /&gt;
  &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ServerName www.zegbicho.lol&lt;br /&gt;
        ServerAlias zegbicho.lol&lt;br /&gt;
        DocumentRoot /var/www/www.zegbicho.lol/&lt;br /&gt;
        CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/ssl/certs/zegbicho.lol.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/zegbicho.lol.key&lt;br /&gt;
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la chaine SSl crée avec la commande : &lt;br /&gt;
 openssl s_client -connect 193.48.57.164:443&lt;br /&gt;
Notre chaine est validée, on passe donc à la configuration du serveur DNS&lt;br /&gt;
&lt;br /&gt;
==== Serveur DNS et DNSSEC avec Bind ====&lt;br /&gt;
&lt;br /&gt;
Nous nous aidons ici aussi des tutos gandi&lt;br /&gt;
&lt;br /&gt;
Il s'agira tout d'abord de s'occuper du changement de DNS sur le site gandi.&lt;br /&gt;
Nous devons au prélable gérer les glue records : https://wiki.gandi.net/fr/domains/management/change-glue&lt;br /&gt;
On va alors créer un enregistrement Glue :&lt;br /&gt;
*Nom du serveur : ns.zegbicho.lol&lt;br /&gt;
*Adresse IP : 193.48.57.164&lt;br /&gt;
&lt;br /&gt;
On peut alors modifier les serveurs de nom sur gandi.net : https://wiki.gandi.net/fr/dns/change&lt;br /&gt;
*DNS1 : ns.zegbicho.lol&lt;br /&gt;
*DNS2 : ns6.gandi.net&lt;br /&gt;
On utilise un serveur DNS secondaire appartenant à gandi.&lt;br /&gt;
&lt;br /&gt;
On attends la propagation DNS et on s'attaque à la configuration de BIND : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/bind&lt;br /&gt;
&lt;br /&gt;
Toute cette configuration s'effectue dans le dossier /etc/bind/&lt;br /&gt;
&lt;br /&gt;
On commence par créer un dossier zones dans lequel on créer un fichier de zone /etc/bind/zones/db.zegbicho.lol :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN      SOA     ns.zegbicho.lol. root.zegbicho.lol. (&lt;br /&gt;
                    2015102001         ; Serial&lt;br /&gt;
                         86400         ; Refresh&lt;br /&gt;
                          3600         ; Retry&lt;br /&gt;
                       2419200         ; Expire&lt;br /&gt;
                         86400 )       ; Negative Cache TTL&lt;br /&gt;
 &lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
 &lt;br /&gt;
 @       IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns      IN      A       193.48.57.164&lt;br /&gt;
 www     IN      A       193.48.57.164&lt;br /&gt;
 god     IN      A       193.48.57.164&lt;br /&gt;
 ns      IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 god     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 @       IN      A       193.48.57.164&lt;br /&gt;
 @       IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis on créer le fichier définissant la zone inverse pour la résolution des adresses IP, 57.48.193.in-addr.arpa :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN       SOA     ns.zegbicho.lol. root.zegbicho.lol.     (&lt;br /&gt;
       2015102001       ;serial&lt;br /&gt;
       14400            ;refresh&lt;br /&gt;
       3600             ;retry&lt;br /&gt;
       604800           ;expire&lt;br /&gt;
       10800            ;minimum&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.&lt;br /&gt;
 &lt;br /&gt;
 163               IN      PTR     zegbicho.lol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On modifie ensuite le fichier de configuration /etc/bind/named.conf.local, dans lequel on ajoute les zones :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;zegbicho.lol&amp;quot; {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/db.zegbicho.lol.signed&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
       notify yes;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;57.48.193.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/57.48.193.in-addr.arpa&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On finit avec la sécurisation DNS avec DNSSEC: On remarque que le fichier référencé dans /etc/bind/named.conf.local est&lt;br /&gt;
 /etc/bind/zones/db.zegbicho.lol.signed&lt;br /&gt;
Ce fichier est créé après la signature de la zone, mais nous devons tout d'abord réaliser quelques manipulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNSSEC est un protocole de sécurisation du protocole DNS. Celui-ci a pour but de signer les informations publiées grâce à un jeu de clés chiffrées.&lt;br /&gt;
On crée donc 2 clés : une Key Signing Key (KSK) et une Zone Signing Key (ZSK). Pour accélérer la génération nous utilisons l'option -r /dev/urandom qui permet d'utiliser une génération pseudo-aléatoire au lieu d'une génération /dev/random par défaut.&lt;br /&gt;
&lt;br /&gt;
Génération de la KSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE zegbicho.lol&lt;br /&gt;
Génération de la ZSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE zegbicho.lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On obtient donc 4 clés. En effet, à chaque génération de clé, on obtient une clé publique et une clé privée. Pour s'y retrouver, on renomme ces clés et on les place dans un dossier qu'on créer : /etc/bind/zegbicho.lol.dnssec&lt;br /&gt;
Ces clés (les deux clés publiques) sont référées dans le fichier de zone db.zegbicho.lol :&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va ensuite sur gandi.net dans la rubrique &amp;quot;gérer DNSSEC&amp;quot; et on leur fourni les deux clés publiques KSK et ZSK. Il peut alors les propager.&lt;br /&gt;
&lt;br /&gt;
Finalement, on signe la zone avec la commande suivante :&lt;br /&gt;
 dnssec-signzone -o zegbicho.lol -k zegbicho.lol.dnssec/zegbicho.lol-ksk zones/db.zegbicho.lol zegbicho.lol.dnssec/zegbicho.lol-zsk&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer le fichier /etc/bind/zones/db.zegbicho.lol.signed qu'on réfère dans le fichier de configuration /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
On finit alors par créer et éditer le fichier de cofiguration des options : /etc/bind/named.conf.options :&lt;br /&gt;
 options {&lt;br /&gt;
          dnssec enable yes;&lt;br /&gt;
          dnssec-validation yes;&lt;br /&gt;
          dnssec-lookaside auto;&lt;br /&gt;
          listen-on-v6 {any;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
==== Vérification de la fonctionnalité de notre site ====&lt;br /&gt;
&lt;br /&gt;
On entre l'URL zegbicho.lol, qui est automatiquement redirigée vers https://zegbicho.lol&lt;br /&gt;
On remarque que le certificat est valide. &amp;lt;br&amp;gt;&lt;br /&gt;
La page est uniquement accessible en https car nous avons modifié le fichier de confguration etc/apache2/sites-available/000-default.conf:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
 .....&lt;br /&gt;
 Redirect permanent / https://zegbicho.lol&lt;br /&gt;
 ....&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On test également notre configuration avec l'outil DNSSEC de l'outil https://www.zonemaster.fr/ et on remarque que le DNSSEC est validé/actif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site web réalisé est donc sécurisé !&lt;br /&gt;
&lt;br /&gt;
===Wifi : Tests d'intrusion par cassage de clé WEP===&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, on passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 7 --write out mon0&lt;br /&gt;
&lt;br /&gt;
En parallèle de ce processus, on peut lancer le cassage de la clé WEP avec la commande :&lt;br /&gt;
 aircrack-ng out-01.cap&lt;br /&gt;
&lt;br /&gt;
Après quelques minutes d'attente (soit env. 66249 IVs), on obtient enfin notre clé :&lt;br /&gt;
 KEY FOUND! [ 55:55:55:55:55:55:55:55:55:55:55:11:11 ]&lt;br /&gt;
&lt;br /&gt;
===Wifi : Cassage de clé WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour craquer ce type de clé, il faut trouver un moyen un peu plus complexe car aircrack n'est pas capable de trouver la clé par ses propres moyens. Il est nécessaire de lui fournir un dictionnaire contenant la clé de réseau pour espérer pouvoir s'y connecter. Nous avons donc commencé par générer un dictionnaire comprenant cent millions de clés (tous les nombres à 8 chiffres : 00000000 à 99999999). Nous avons pour cela créé un petit code C :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 int main(){&lt;br /&gt;
             int i=0;&lt;br /&gt;
             FILE* dico = fopen(&amp;quot;dictionnaire.txt&amp;quot;,&amp;quot;w+&amp;quot;);&lt;br /&gt;
             for(i=0;i&amp;lt;=99999999;i++){&lt;br /&gt;
             fprintf(dico, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
           }&lt;br /&gt;
           fclose(dico);&lt;br /&gt;
           return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 12 --write crackage_wpa-psk.txt mon0&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le cassage de la clé WPA-PSK en référant notre dictionnaire créé précédemment avec la commande :&lt;br /&gt;
 aircrack-ng -w dictionnaire.txt crackage_wpa-psk.txt-02.cap&lt;br /&gt;
&lt;br /&gt;
Le test des clés se fait à une vitesse moyenne de 3700 clés par seconde.&amp;lt;br&amp;gt;&lt;br /&gt;
Après quelques minutes d'attente , on obtient enfin notre clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Craquage_WPA_PSK.png |thumb|center| 600px|&amp;lt;center&amp;gt;Craquage WPA-PSK&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
===Sécurisation des données===&lt;br /&gt;
&lt;br /&gt;
*On crée les trois partitions LVM de 1Go : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid1 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid2 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid3 -v&lt;br /&gt;
&lt;br /&gt;
*On ajoute les partitions dans le fichier de configuration : &lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/disk.img,xvda2,w',&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/swap.img,xvda1,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-home,xvdc,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-var,xvdb,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid1,xvdd,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid2,xvde,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid3,xvdf,w',&lt;br /&gt;
          ]&lt;br /&gt;
&lt;br /&gt;
*Puis, on crée le RAID5 logiciel à l'aide de la commande: &lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd /dev/xvde /dev/xvdf&lt;br /&gt;
&lt;br /&gt;
*Pour vérifier que notre md0 a été correctement créé, on exécute la commande:&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
 Personalities : [raid6] [raid5] [raid4] &lt;br /&gt;
 md0 : active raid5 xvdf[2] xvde[1] xvdd[0]&lt;br /&gt;
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Et pour vérifier notre RAID5 logiciel avec les trois partitions :&lt;br /&gt;
  mdadm --detail /dev/md0&lt;br /&gt;
Ce qui donne :&lt;br /&gt;
         Version : 1.2&lt;br /&gt;
   Creation Time : Thu Nov 26 13:40:21 2015&lt;br /&gt;
      Raid Level : raid5&lt;br /&gt;
      Array Size : 2095104 (2046.34 MiB 2145.39 MB)&lt;br /&gt;
   Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)&lt;br /&gt;
    Raid Devices : 3&lt;br /&gt;
   Total Devices : 3&lt;br /&gt;
     Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
     Update Time : Thu Nov 26 13:49:20 2015&lt;br /&gt;
           State : clean &lt;br /&gt;
  Active Devices : 3&lt;br /&gt;
 Working Devices : 3&lt;br /&gt;
  Failed Devices : 0&lt;br /&gt;
   Spare Devices : 0&lt;br /&gt;
 &lt;br /&gt;
          Layout : left-symmetric&lt;br /&gt;
      Chunk Size : 512K&lt;br /&gt;
 &lt;br /&gt;
            Name : KARMELIET:0  (local to host KARMELIET)&lt;br /&gt;
            UUID : 4bb46fbe:6292cc6b:5fdccfcc:a4a94ae3&lt;br /&gt;
          Events : 2&lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice State&lt;br /&gt;
       0     202       48        0      active sync   /dev/xvdd&lt;br /&gt;
       1     202       64        1      active sync   /dev/xvde&lt;br /&gt;
       2     202       80        2      active sync   /dev/xvdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir redémarré la VM, on remarque que le volume nouvellement créé nommé md0 a été remplacé par md127.&lt;br /&gt;
&lt;br /&gt;
Après avoir supprimé une partition, on refait la commande :&lt;br /&gt;
  mdadm --detail /dev/md127&lt;br /&gt;
&lt;br /&gt;
Et on obtient :&lt;br /&gt;
  Version : 1.2&lt;br /&gt;
  Raid Level : raid0&lt;br /&gt;
  Total Devices : 2&lt;br /&gt;
  Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
          State : inactive&lt;br /&gt;
 &lt;br /&gt;
           Name : KARMELIET:0  (local to host KARMELIET)&lt;br /&gt;
           UUID : 4bb46fbe:6292cc6b:5fdccfcc:a4a94ae3&lt;br /&gt;
         Events : 2&lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice&lt;br /&gt;
 &lt;br /&gt;
       -     202       48        -        /dev/xvdd&lt;br /&gt;
       -     202       64        -        /dev/xvde&lt;br /&gt;
On vérifie le volume md127 :&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
On a :&lt;br /&gt;
 Personalities : &lt;br /&gt;
 md127 : inactive xvde[1](S) xvdd[0](S)&lt;br /&gt;
      2095104 blocks super 1.2&lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentification et serveur RADIUS===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=23358</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=23358"/>
				<updated>2015-11-26T11:14:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Nouveau titre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
*On lance la VM xen:&lt;br /&gt;
 xl create /etc/xen/KARMELIET.cfg&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur DNS et SSH:&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC (nom de l'EeePC : heron)====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 iwconfig wlan0 essid baguette&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (09/11/2015) ===&lt;br /&gt;
&lt;br /&gt;
==== Configuration du switch E304 ====&lt;br /&gt;
&lt;br /&gt;
La configuration réseau du commutateur se déroule en 3 étapes.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on configure les liaisons trunk. Il s'agit ici de la liaison qui relie le commutateur au routeur en E304, sur l'interface 4/1, et la liaison câble qui relie le commutateur au routeur en E306 sur l'interface 2/2. On entre donc les commandes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
 conf t &lt;br /&gt;
 int Gi4/1&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 int Gi2/2&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé les VLAN 11-20, 110 et 130 de cette façon :&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 vlan 11&lt;br /&gt;
 name vlan11&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On leur attribue ensuite un port physique du commutateur :&lt;br /&gt;
&lt;br /&gt;
 int Gi4/11&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport access vlan 11&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On obtient donc le schéma physique suivant :&lt;br /&gt;
&lt;br /&gt;
*VLAN11 : Gigabit 4/11&lt;br /&gt;
*VLAN12 : Gigabit 4/12&lt;br /&gt;
*VLAN13 : Gigabit 4/13&lt;br /&gt;
*VLAN14 : Gigabit 4/14&lt;br /&gt;
*VLAN15 : Gigabit 4/15&lt;br /&gt;
*VLAN16 : Gigabit 4/16&lt;br /&gt;
*VLAN17 : Gigabit 4/17&lt;br /&gt;
*VLAN18 : Gigabit 4/18&lt;br /&gt;
*VLAN19 : Gigabit 4/19&lt;br /&gt;
*VLAN20 : Gigabit 4/20&lt;br /&gt;
*VLAN 110 : Gigabit 5/1&lt;br /&gt;
&lt;br /&gt;
=== VM xen ===&lt;br /&gt;
==== Configuration du serveur apache et installation du certificat SSL ====&lt;br /&gt;
Pour activer le certificat SSL, nous devons à la fois manipuler sur notre machine Xen et sur le site gandi. Nous nous sommes d'ailleurs aidés des tutoriels gandi pour réaliser cette tâche. Nous certifions les domaines ''www.zegbicho.lol'' et ''zegbicho.lol''. Nous avons tout d'abord besoin de clés, on génère donc le premier fichier .csr à fournir à gandi avec la commande :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout zegbicho.lol.key -out zegbicho.lol.csr&lt;br /&gt;
&lt;br /&gt;
Cette commande nous a donc généré deux fichier : un fichier .key qui correspond à notre clé privée et un .csr ( clé publique) que nous devons fournir à gandi. Ce dernier nous retourne alors un .crt, nous supprimons aors la .crs dont nous n'avons plus besoin. Nous décidons de les ranger dans des dossier situés dans le dossier /etc/ssl/ de notre machine xen :&lt;br /&gt;
*Le fichier .crt dans /etc/ssl/certs/&lt;br /&gt;
*le fichier .key dans /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Nous allons à présent suivre le tutoriel gandi : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/ssl&lt;br /&gt;
&lt;br /&gt;
On active le module ssl d'apache :&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Puis on fait en sorte qu'apache écoute sur le port 443, on édite donc le fichier de configuration /etc/apache2/ports.conf et on ajoute:&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    Listen 443&lt;br /&gt;
    NameVirtualHost 193.48.57.164:443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous pouvons obtenir le certificat intermédiare de gandi.&lt;br /&gt;
Nous récupérons le fichier GandiStandardSSLCA2.pem qui nous plaçons dans le répertoire /etc/ssl/certs/&lt;br /&gt;
On effectue le rehash de la structure ssl:&lt;br /&gt;
 c_rehash /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un domaine sur notre apache sécurisé, on crée le site dédié www.zegbicho.lol.&lt;br /&gt;
Enfin, on ajoute un VirtualHost servant le contenu du dossier /var/www/www.zegbicho.lol/ sur le port 443, dans /etc/apache2/sites-available/000-zegbicho.lol-ssl.conf : &lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *:443&lt;br /&gt;
  &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ServerName www.zegbicho.lol&lt;br /&gt;
        ServerAlias zegbicho.lol&lt;br /&gt;
        DocumentRoot /var/www/www.zegbicho.lol/&lt;br /&gt;
        CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/ssl/certs/zegbicho.lol.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/zegbicho.lol.key&lt;br /&gt;
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la chaine SSl crée avec la commande : &lt;br /&gt;
 openssl s_client -connect 193.48.57.164:443&lt;br /&gt;
Notre chaine est validée, on passe donc à la configuration du serveur DNS&lt;br /&gt;
&lt;br /&gt;
==== Serveur DNS et DNSSEC avec Bind ====&lt;br /&gt;
&lt;br /&gt;
Nous nous aidons ici aussi des tutos gandi&lt;br /&gt;
&lt;br /&gt;
Il s'agira tout d'abord de s'occuper du changement de DNS sur le site gandi.&lt;br /&gt;
Nous devons au prélable gérer les glue records : https://wiki.gandi.net/fr/domains/management/change-glue&lt;br /&gt;
On va alors créer un enregistrement Glue :&lt;br /&gt;
*Nom du serveur : ns.zegbicho.lol&lt;br /&gt;
*Adresse IP : 193.48.57.164&lt;br /&gt;
&lt;br /&gt;
On peut alors modifier les serveurs de nom sur gandi.net : https://wiki.gandi.net/fr/dns/change&lt;br /&gt;
*DNS1 : ns.zegbicho.lol&lt;br /&gt;
*DNS2 : ns6.gandi.net&lt;br /&gt;
On utilise un serveur DNS secondaire appartenant à gandi.&lt;br /&gt;
&lt;br /&gt;
On attends la propagation DNS et on s'attaque à la configuration de BIND : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/bind&lt;br /&gt;
&lt;br /&gt;
Toute cette configuration s'effectue dans le dossier /etc/bind/&lt;br /&gt;
&lt;br /&gt;
On commence par créer un dossier zones dans lequel on créer un fichier de zone /etc/bind/zones/db.zegbicho.lol :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN      SOA     ns.zegbicho.lol. root.zegbicho.lol. (&lt;br /&gt;
                    2015102001         ; Serial&lt;br /&gt;
                         86400         ; Refresh&lt;br /&gt;
                          3600         ; Retry&lt;br /&gt;
                       2419200         ; Expire&lt;br /&gt;
                         86400 )       ; Negative Cache TTL&lt;br /&gt;
 &lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
 &lt;br /&gt;
 @       IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns      IN      A       193.48.57.164&lt;br /&gt;
 www     IN      A       193.48.57.164&lt;br /&gt;
 god     IN      A       193.48.57.164&lt;br /&gt;
 ns      IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 god     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 @       IN      A       193.48.57.164&lt;br /&gt;
 @       IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis on créer le fichier définissant la zone inverse pour la résolution des adresses IP, 57.48.193.in-addr.arpa :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN       SOA     ns.zegbicho.lol. root.zegbicho.lol.     (&lt;br /&gt;
       2015102001       ;serial&lt;br /&gt;
       14400            ;refresh&lt;br /&gt;
       3600             ;retry&lt;br /&gt;
       604800           ;expire&lt;br /&gt;
       10800            ;minimum&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.&lt;br /&gt;
 &lt;br /&gt;
 163               IN      PTR     zegbicho.lol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On modifie ensuite le fichier de configuration /etc/bind/named.conf.local, dans lequel on ajoute les zones :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;zegbicho.lol&amp;quot; {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/db.zegbicho.lol.signed&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
       notify yes;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;57.48.193.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/57.48.193.in-addr.arpa&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On finit avec la sécurisation DNS avec DNSSEC: On remarque que le fichier référencé dans /etc/bind/named.conf.local est&lt;br /&gt;
 /etc/bind/zones/db.zegbicho.lol.signed&lt;br /&gt;
Ce fichier est créé après la signature de la zone, mais nous devons tout d'abord réaliser quelques manipulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNSSEC est un protocole de sécurisation du protocole DNS. Celui-ci a pour but de signer les informations publiées grâce à un jeu de clés chiffrées.&lt;br /&gt;
On crée donc 2 clés : une Key Signing Key (KSK) et une Zone Signing Key (ZSK). Pour accélérer la génération nous utilisons l'option -r /dev/urandom qui permet d'utiliser une génération pseudo-aléatoire au lieu d'une génération /dev/random par défaut.&lt;br /&gt;
&lt;br /&gt;
Génération de la KSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE zegbicho.lol&lt;br /&gt;
Génération de la ZSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE zegbicho.lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On obtient donc 4 clés. En effet, à chaque génération de clé, on obtient une clé publique et une clé privée. Pour s'y retrouver, on renomme ces clés et on les place dans un dossier qu'on créer : /etc/bind/zegbicho.lol.dnssec&lt;br /&gt;
Ces clés (les deux clés publiques) sont référées dans le fichier de zone db.zegbicho.lol :&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va ensuite sur gandi.net dans la rubrique &amp;quot;gérer DNSSEC&amp;quot; et on leur fourni les deux clés publiques KSK et ZSK. Il peut alors les propager.&lt;br /&gt;
&lt;br /&gt;
Finalement, on signe la zone avec la commande suivante :&lt;br /&gt;
 dnssec-signzone -o zegbicho.lol -k zegbicho.lol.dnssec/zegbicho.lol-ksk zones/db.zegbicho.lol zegbicho.lol.dnssec/zegbicho.lol-zsk&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer le fichier /etc/bind/zones/db.zegbicho.lol.signed qu'on réfère dans le fichier de configuration /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
On finit alors par créer et éditer le fichier de cofiguration des options : /etc/bind/named.conf.options :&lt;br /&gt;
 options {&lt;br /&gt;
          dnssec enable yes;&lt;br /&gt;
          dnssec-validation yes;&lt;br /&gt;
          dnssec-lookaside auto;&lt;br /&gt;
          listen-on-v6 {any;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
==== Vérification de la fonctionnalité de notre site ====&lt;br /&gt;
&lt;br /&gt;
On entre l'URL zegbicho.lol, qui est automatiquement redirigée vers https://zegbicho.lol&lt;br /&gt;
On remarque que le certificat est valide. &amp;lt;br&amp;gt;&lt;br /&gt;
La page est uniquement accessible en https car nous avons modifié le fichier de confguration etc/apache2/sites-available/000-default.conf:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
 .....&lt;br /&gt;
 Redirect permanent / https://zegbicho.lol&lt;br /&gt;
 ....&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On test également notre configuration avec l'outil DNSSEC de l'outil https://www.zonemaster.fr/ et on remarque que le DNSSEC est validé/actif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site web réalisé est donc sécurisé !&lt;br /&gt;
&lt;br /&gt;
===Wifi : Tests d'intrusion par cassage de clé WEP===&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, on passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 7 --write out mon0&lt;br /&gt;
&lt;br /&gt;
En parallèle de ce processus, on peut lancer le cassage de la clé WEP avec la commande :&lt;br /&gt;
 aircrack-ng out-01.cap&lt;br /&gt;
&lt;br /&gt;
Après quelques minutes d'attente (soit env. 66249 IVs), on obtient enfin notre clé :&lt;br /&gt;
 KEY FOUND! [ 55:55:55:55:55:55:55:55:55:55:55:11:11 ]&lt;br /&gt;
&lt;br /&gt;
===Wifi : Cassage de clé WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour craquer ce type de clé, il faut trouver un moyen un peu plus complexe car aircrack n'est pas capable de trouver la clé par ses propres moyens. Il est nécessaire de lui fournir un dictionnaire contenant la clé de réseau pour espérer pouvoir s'y connecter. Nous avons donc commencé par générer un dictionnaire comprenant cent millions de clés (tous les nombres à 8 chiffres : 00000000 à 99999999). Nous avons pour cela créé un petit code C :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 int main(){&lt;br /&gt;
             int i=0;&lt;br /&gt;
             FILE* dico = fopen(&amp;quot;dictionnaire.txt&amp;quot;,&amp;quot;w+&amp;quot;);&lt;br /&gt;
             for(i=0;i&amp;lt;=99999999;i++){&lt;br /&gt;
             fprintf(dico, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
           }&lt;br /&gt;
           fclose(dico);&lt;br /&gt;
           return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 12 --write crackage_wpa-psk.txt mon0&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le cassage de la clé WPA-PSK en référant notre dictionnaire créé précédemment avec la commande :&lt;br /&gt;
 aircrack-ng -w dictionnaire.txt crackage_wpa-psk.txt-02.cap&lt;br /&gt;
&lt;br /&gt;
Le test des clés se fait à une vitesse moyenne de 3700 clés par seconde.&amp;lt;br&amp;gt;&lt;br /&gt;
Après quelques minutes d'attente , on obtient enfin notre clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Craquage_WPA_PSK.png |thumb|center| 600px|&amp;lt;center&amp;gt;Craquage WPA-PSK&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
===Sécurisation des données===&lt;br /&gt;
&lt;br /&gt;
*On crée les trois partitions LVM de 1Go : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid1 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid2 -v&lt;br /&gt;
 lvcreate -L 1G -n /dev/virtual/ima5-karmeliet-raid3 -v&lt;br /&gt;
&lt;br /&gt;
*On ajoute les partitions dans le fichier de configuration : &lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/disk.img,xvda2,w',&lt;br /&gt;
              'file:/usr/local/xen/domains/levrette/swap.img,xvda1,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-home,xvdc,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-var,xvdb,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid1,xvdd,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid2,xvde,w',&lt;br /&gt;
              'phy:/dev/virtual/ima5-karmeliet-raid3,xvdf,w',&lt;br /&gt;
          ]&lt;br /&gt;
&lt;br /&gt;
*Puis, on crée le RAID5 logiciel à l'aide de la commande: &lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd /dev/xvde /dev/xvdf&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=23352</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=23352"/>
				<updated>2015-11-26T10:58:18Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Serveur DNS et DNSSEC avec Bind */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
*On lance la VM xen:&lt;br /&gt;
 xl create /etc/xen/KARMELIET.cfg&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur DNS et SSH:&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC (nom de l'EeePC : heron)====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 iwconfig wlan0 essid baguette&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (09/11/2015) ===&lt;br /&gt;
&lt;br /&gt;
==== Configuration du switch E304 ====&lt;br /&gt;
&lt;br /&gt;
La configuration réseau du commutateur se déroule en 3 étapes.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on configure les liaisons trunk. Il s'agit ici de la liaison qui relie le commutateur au routeur en E304, sur l'interface 4/1, et la liaison câble qui relie le commutateur au routeur en E306 sur l'interface 2/2. On entre donc les commandes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
 conf t &lt;br /&gt;
 int Gi4/1&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 int Gi2/2&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé les VLAN 11-20, 110 et 130 de cette façon :&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 vlan 11&lt;br /&gt;
 name vlan11&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On leur attribue ensuite un port physique du commutateur :&lt;br /&gt;
&lt;br /&gt;
 int Gi4/11&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport access vlan 11&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On obtient donc le schéma physique suivant :&lt;br /&gt;
&lt;br /&gt;
*VLAN11 : Gigabit 4/11&lt;br /&gt;
*VLAN12 : Gigabit 4/12&lt;br /&gt;
*VLAN13 : Gigabit 4/13&lt;br /&gt;
*VLAN14 : Gigabit 4/14&lt;br /&gt;
*VLAN15 : Gigabit 4/15&lt;br /&gt;
*VLAN16 : Gigabit 4/16&lt;br /&gt;
*VLAN17 : Gigabit 4/17&lt;br /&gt;
*VLAN18 : Gigabit 4/18&lt;br /&gt;
*VLAN19 : Gigabit 4/19&lt;br /&gt;
*VLAN20 : Gigabit 4/20&lt;br /&gt;
*VLAN 110 : Gigabit 5/1&lt;br /&gt;
&lt;br /&gt;
=== VM xen ===&lt;br /&gt;
==== Configuration du serveur apache et installation du certificat SSL ====&lt;br /&gt;
Pour activer le certificat SSL, nous devons à la fois manipuler sur notre machine Xen et sur le site gandi. Nous nous sommes d'ailleurs aidés des tutoriels gandi pour réaliser cette tâche. Nous certifions les domaines ''www.zegbicho.lol'' et ''zegbicho.lol''. Nous avons tout d'abord besoin de clés, on génère donc le premier fichier .csr à fournir à gandi avec la commande :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout zegbicho.lol.key -out zegbicho.lol.csr&lt;br /&gt;
&lt;br /&gt;
Cette commande nous a donc généré deux fichier : un fichier .key qui correspond à notre clé privée et un .csr ( clé publique) que nous devons fournir à gandi. Ce dernier nous retourne alors un .crt, nous supprimons aors la .crs dont nous n'avons plus besoin. Nous décidons de les ranger dans des dossier situés dans le dossier /etc/ssl/ de notre machine xen :&lt;br /&gt;
*Le fichier .crt dans /etc/ssl/certs/&lt;br /&gt;
*le fichier .key dans /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Nous allons à présent suivre le tutoriel gandi : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/ssl&lt;br /&gt;
&lt;br /&gt;
On active le module ssl d'apache :&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Puis on fait en sorte qu'apache écoute sur le port 443, on édite donc le fichier de configuration /etc/apache2/ports.conf et on ajoute:&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    Listen 443&lt;br /&gt;
    NameVirtualHost 193.48.57.164:443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous pouvons obtenir le certificat intermédiare de gandi.&lt;br /&gt;
Nous récupérons le fichier GandiStandardSSLCA2.pem qui nous plaçons dans le répertoire /etc/ssl/certs/&lt;br /&gt;
On effectue le rehash de la structure ssl:&lt;br /&gt;
 c_rehash /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un domaine sur notre apache sécurisé, on crée le site dédié www.zegbicho.lol.&lt;br /&gt;
Enfin, on ajoute un VirtualHost servant le contenu du dossier /var/www/www.zegbicho.lol/ sur le port 443, dans /etc/apache2/sites-available/000-zegbicho.lol-ssl.conf : &lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *:443&lt;br /&gt;
  &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ServerName www.zegbicho.lol&lt;br /&gt;
        ServerAlias zegbicho.lol&lt;br /&gt;
        DocumentRoot /var/www/www.zegbicho.lol/&lt;br /&gt;
        CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/ssl/certs/zegbicho.lol.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/zegbicho.lol.key&lt;br /&gt;
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la chaine SSl crée avec la commande : &lt;br /&gt;
 openssl s_client -connect 193.48.57.164:443&lt;br /&gt;
Notre chaine est validée, on passe donc à la configuration du serveur DNS&lt;br /&gt;
&lt;br /&gt;
==== Serveur DNS et DNSSEC avec Bind ====&lt;br /&gt;
&lt;br /&gt;
Nous nous aidons ici aussi des tutos gandi&lt;br /&gt;
&lt;br /&gt;
Il s'agira tout d'abord de s'occuper du changement de DNS sur le site gandi.&lt;br /&gt;
Nous devons au prélable gérer les glue records : https://wiki.gandi.net/fr/domains/management/change-glue&lt;br /&gt;
On va alors créer un enregistrement Glue :&lt;br /&gt;
*Nom du serveur : ns.zegbicho.lol&lt;br /&gt;
*Adresse IP : 193.48.57.164&lt;br /&gt;
&lt;br /&gt;
On peut alors modifier les serveurs de nom sur gandi.net : https://wiki.gandi.net/fr/dns/change&lt;br /&gt;
*DNS1 : ns.zegbicho.lol&lt;br /&gt;
*DNS2 : ns6.gandi.net&lt;br /&gt;
On utilise un serveur DNS secondaire appartenant à gandi.&lt;br /&gt;
&lt;br /&gt;
On attends la propagation DNS et on s'attaque à la configuration de BIND : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/bind&lt;br /&gt;
&lt;br /&gt;
Toute cette configuration s'effectue dans le dossier /etc/bind/&lt;br /&gt;
&lt;br /&gt;
On commence par créer un dossier zones dans lequel on créer un fichier de zone /etc/bind/zones/db.zegbicho.lol :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN      SOA     ns.zegbicho.lol. root.zegbicho.lol. (&lt;br /&gt;
                    2015102001         ; Serial&lt;br /&gt;
                         86400         ; Refresh&lt;br /&gt;
                          3600         ; Retry&lt;br /&gt;
                       2419200         ; Expire&lt;br /&gt;
                         86400 )       ; Negative Cache TTL&lt;br /&gt;
 &lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
 &lt;br /&gt;
 @       IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns      IN      A       193.48.57.164&lt;br /&gt;
 www     IN      A       193.48.57.164&lt;br /&gt;
 god     IN      A       193.48.57.164&lt;br /&gt;
 ns      IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 god     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 @       IN      A       193.48.57.164&lt;br /&gt;
 @       IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis on créer le fichier définissant la zone inverse pour la résolution des adresses IP, 57.48.193.in-addr.arpa :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN       SOA     ns.zegbicho.lol. root.zegbicho.lol.     (&lt;br /&gt;
       2015102001       ;serial&lt;br /&gt;
       14400            ;refresh&lt;br /&gt;
       3600             ;retry&lt;br /&gt;
       604800           ;expire&lt;br /&gt;
       10800            ;minimum&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.&lt;br /&gt;
 &lt;br /&gt;
 163               IN      PTR     zegbicho.lol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On modifie ensuite le fichier de configuration /etc/bind/named.conf.local, dans lequel on ajoute les zones :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;zegbicho.lol&amp;quot; {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/db.zegbicho.lol.signed&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
       notify yes;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;57.48.193.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/57.48.193.in-addr.arpa&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On finit avec la sécurisation DNS avec DNSSEC: On remarque que le fichier référencé dans /etc/bind/named.conf.local est&lt;br /&gt;
 /etc/bind/zones/db.zegbicho.lol.signed&lt;br /&gt;
Ce fichier est créé après la signature de la zone, mais nous devons tout d'abord réaliser quelques manipulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNSSEC est un protocole de sécurisation du protocole DNS. Celui-ci a pour but de signer les informations publiées grâce à un jeu de clés chiffrées.&lt;br /&gt;
On crée donc 2 clés : une Key Signing Key (KSK) et une Zone Signing Key (ZSK). Pour accélérer la génération nous utilisons l'option -r /dev/urandom qui permet d'utiliser une génération pseudo-aléatoire au lieu d'une génération /dev/random par défaut.&lt;br /&gt;
&lt;br /&gt;
Génération de la KSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE zegbicho.lol&lt;br /&gt;
Génération de la ZSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE zegbicho.lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On obtient donc 4 clés. En effet, à chaque génération de clé, on obtient une clé publique et une clé privée. Pour s'y retrouver, on renomme ces clés et on les place dans un dossier qu'on créer : /etc/bind/zegbicho.lol.dnssec&lt;br /&gt;
Ces clés (les deux clés publiques) sont référées dans le fichier de zone db.zegbicho.lol :&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va ensuite sur gandi.net dans la rubrique &amp;quot;gérer DNSSEC&amp;quot; et on leur fourni les deux clés publiques KSK et ZSK. Il peut alors les propager.&lt;br /&gt;
&lt;br /&gt;
Finalement, on signe la zone avec la commande suivante :&lt;br /&gt;
 dnssec-signzone -o zegbicho.lol -k zegbicho.lol.dnssec/zegbicho.lol-ksk zones/db.zegbicho.lol zegbicho.lol.dnssec/zegbicho.lol-zsk&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer le fichier /etc/bind/zones/db.zegbicho.lol.signed qu'on réfère dans le fichier de configuration /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
On finit alors par créer et éditer le fichier de cofiguration des options : /etc/bind/named.conf.options :&lt;br /&gt;
 options {&lt;br /&gt;
          dnssec enable yes;&lt;br /&gt;
          dnssec-validation yes;&lt;br /&gt;
          dnssec-lookaside auto;&lt;br /&gt;
          listen-on-v6 {any;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
==== Vérification de la fonctionnalité de notre site ====&lt;br /&gt;
&lt;br /&gt;
On entre l'URL zegbicho.lol, qui est automatiquement redirigée vers https://zegbicho.lol&lt;br /&gt;
On remarque que le certificat est valide. &amp;lt;br&amp;gt;&lt;br /&gt;
La page est uniquement accessible en https car nous avons modifié le fichier de confguration etc/apache2/sites-available/000-default.conf:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
 .....&lt;br /&gt;
 Redirect permanent / https://zegbicho.lol&lt;br /&gt;
 ....&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On test également notre configuration avec l'outil DNSSEC de l'outil https://www.zonemaster.fr/ et on remarque que le DNSSEC est validé/actif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site web réalisé est donc sécurisé !&lt;br /&gt;
&lt;br /&gt;
===Wifi : Tests d'intrusion par cassage de clé WEP===&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, on passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 7 --write out mon0&lt;br /&gt;
&lt;br /&gt;
En parallèle de ce processus, on peut lancer le cassage de la clé WEP avec la commande :&lt;br /&gt;
 aircrack-ng out-01.cap&lt;br /&gt;
&lt;br /&gt;
Après quelques minutes d'attente (soit env. 66249 IVs), on obtient enfin notre clé :&lt;br /&gt;
 KEY FOUND! [ 55:55:55:55:55:55:55:55:55:55:55:11:11 ]&lt;br /&gt;
&lt;br /&gt;
===Wifi : Cassage de clé WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour craquer ce type de clé, il faut trouver un moyen un peu plus complexe car aircrack n'est pas capable de trouver la clé par ses propres moyens. Il est nécessaire de lui fournir un dictionnaire contenant la clé de réseau pour espérer pouvoir s'y connecter. Nous avons donc commencé par générer un dictionnaire comprenant cent millions de clés (tous les nombres à 8 chiffres : 00000000 à 99999999). Nous avons pour cela créé un petit code C :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 int main(){&lt;br /&gt;
             int i=0;&lt;br /&gt;
             FILE* dico = fopen(&amp;quot;dictionnaire.txt&amp;quot;,&amp;quot;w+&amp;quot;);&lt;br /&gt;
             for(i=0;i&amp;lt;=99999999;i++){&lt;br /&gt;
             fprintf(dico, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
           }&lt;br /&gt;
           fclose(dico);&lt;br /&gt;
           return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 12 --write crackage_wpa-psk.txt mon0&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le cassage de la clé WPA-PSK en référant notre dictionnaire créé précédemment avec la commande :&lt;br /&gt;
 aircrack-ng -w dictionnaire.txt crackage_wpa-psk.txt-02.cap&lt;br /&gt;
&lt;br /&gt;
Le test des clés se fait à une vitesse moyenne de 3700 clés par seconde.&amp;lt;br&amp;gt;&lt;br /&gt;
Après quelques minutes d'attente , on obtient enfin notre clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Craquage_WPA_PSK.png |thumb|center| 600px|&amp;lt;center&amp;gt;Craquage WPA-PSK&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
===Nouveau titre===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=23331</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=23331"/>
				<updated>2015-11-26T09:35:02Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Wifi : Cassage de clé WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
*On lance la VM xen:&lt;br /&gt;
 xl create /etc/xen/KARMELIET.cfg&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur DNS et SSH:&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC (nom de l'EeePC : heron)====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 iwconfig wlan0 essid baguette&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (09/11/2015) ===&lt;br /&gt;
&lt;br /&gt;
==== Configuration du switch E304 ====&lt;br /&gt;
&lt;br /&gt;
La configuration réseau du commutateur se déroule en 3 étapes.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on configure les liaisons trunk. Il s'agit ici de la liaison qui relie le commutateur au routeur en E304, sur l'interface 4/1, et la liaison câble qui relie le commutateur au routeur en E306 sur l'interface 2/2. On entre donc les commandes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
 conf t &lt;br /&gt;
 int Gi4/1&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 int Gi2/2&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé les VLAN 11-20, 110 et 130 de cette façon :&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 vlan 11&lt;br /&gt;
 name vlan11&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On leur attribue ensuite un port physique du commutateur :&lt;br /&gt;
&lt;br /&gt;
 int Gi4/11&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport access vlan 11&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On obtient donc le schéma physique suivant :&lt;br /&gt;
&lt;br /&gt;
*VLAN11 : Gigabit 4/11&lt;br /&gt;
*VLAN12 : Gigabit 4/12&lt;br /&gt;
*VLAN13 : Gigabit 4/13&lt;br /&gt;
*VLAN14 : Gigabit 4/14&lt;br /&gt;
*VLAN15 : Gigabit 4/15&lt;br /&gt;
*VLAN16 : Gigabit 4/16&lt;br /&gt;
*VLAN17 : Gigabit 4/17&lt;br /&gt;
*VLAN18 : Gigabit 4/18&lt;br /&gt;
*VLAN19 : Gigabit 4/19&lt;br /&gt;
*VLAN20 : Gigabit 4/20&lt;br /&gt;
*VLAN 110 : Gigabit 5/1&lt;br /&gt;
&lt;br /&gt;
=== VM xen ===&lt;br /&gt;
==== Configuration du serveur apache et installation du certificat SSL ====&lt;br /&gt;
Pour activer le certificat SSL, nous devons à la fois manipuler sur notre machine Xen et sur le site gandi. Nous nous sommes d'ailleurs aidés des tutoriels gandi pour réaliser cette tâche. Nous certifions les domaines ''www.zegbicho.lol'' et ''zegbicho.lol''. Nous avons tout d'abord besoin de clés, on génère donc le premier fichier .csr à fournir à gandi avec la commande :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout zegbicho.lol.key -out zegbicho.lol.csr&lt;br /&gt;
&lt;br /&gt;
Cette commande nous a donc généré deux fichier : un fichier .key qui correspond à notre clé privée et un .csr ( clé publique) que nous devons fournir à gandi. Ce dernier nous retourne alors un .crt, nous supprimons aors la .crs dont nous n'avons plus besoin. Nous décidons de les ranger dans des dossier situés dans le dossier /etc/ssl/ de notre machine xen :&lt;br /&gt;
*Le fichier .crt dans /etc/ssl/certs/&lt;br /&gt;
*le fichier .key dans /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Nous allons à présent suivre le tutoriel gandi : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/ssl&lt;br /&gt;
&lt;br /&gt;
On active le module ssl d'apache :&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Puis on fait en sorte qu'apache écoute sur le port 443, on édite donc le fichier de configuration /etc/apache2/ports.conf et on ajoute:&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    Listen 443&lt;br /&gt;
    NameVirtualHost 193.48.57.164:443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous pouvons obtenir le certificat intermédiare de gandi.&lt;br /&gt;
Nous récupérons le fichier GandiStandardSSLCA2.pem qui nous plaçons dans le répertoire /etc/ssl/certs/&lt;br /&gt;
On effectue le rehash de la structure ssl:&lt;br /&gt;
 c_rehash /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un domaine sur notre apache sécurisé, on crée le site dédié www.zegbicho.lol.&lt;br /&gt;
Enfin, on ajoute un VirtualHost servant le contenu du dossier /var/www/www.zegbicho.lol/ sur le port 443, dans /etc/apache2/sites-available/000-zegbicho.lol-ssl.conf : &lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *:443&lt;br /&gt;
  &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ServerName www.zegbicho.lol&lt;br /&gt;
        ServerAlias zegbicho.lol&lt;br /&gt;
        DocumentRoot /var/www/www.zegbicho.lol/&lt;br /&gt;
        CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/ssl/certs/zegbicho.lol.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/zegbicho.lol.key&lt;br /&gt;
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la chaine SSl crée avec la commande : &lt;br /&gt;
 openssl s_client -connect 193.48.57.164:443&lt;br /&gt;
Notre chaine est validée, on passe donc à la configuration du serveur DNS&lt;br /&gt;
&lt;br /&gt;
==== Serveur DNS et DNSSEC avec Bind ====&lt;br /&gt;
&lt;br /&gt;
Nous nous aidons ici aussi des tutos gandi&lt;br /&gt;
&lt;br /&gt;
Il s'agira tout d'abord de s'occuper du changement de DNS sur le site gandi.&lt;br /&gt;
Nous devons au prélable gérer les glue records : https://wiki.gandi.net/fr/domains/management/change-glue&lt;br /&gt;
On va alors créer un enregistrement Glue :&lt;br /&gt;
*Nom du serveur : ns.zegbicho.lol&lt;br /&gt;
*Adresse IP : 193.48.57.164&lt;br /&gt;
&lt;br /&gt;
On peut alors modifier les serveurs de nom sur gandi.net : https://wiki.gandi.net/fr/dns/change&lt;br /&gt;
*DNS1 : ns.zegbicho.lol&lt;br /&gt;
*DNS2 : ns6.gandi.net&lt;br /&gt;
On utilise un serveur DNS secondaire appartenant à gandi.&lt;br /&gt;
&lt;br /&gt;
On attends la propagation DNS et on s'attaque à la configuration de BIND : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/bind&lt;br /&gt;
&lt;br /&gt;
Toute cette configuration s'effectue dans le dossier /etc/bind/&lt;br /&gt;
&lt;br /&gt;
On commence par créer un dossier zones dans lequel on créer un fichier de zone /etc/bind/zones/db.zegbicho.lol :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN      SOA     ns.zegbicho.lol. root.zegbicho.lol. (&lt;br /&gt;
                    2015102001         ; Serial&lt;br /&gt;
                         86400         ; Refresh&lt;br /&gt;
                          3600         ; Retry&lt;br /&gt;
                       2419200         ; Expire&lt;br /&gt;
                         86400 )       ; Negative Cache TTL&lt;br /&gt;
 &lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
 &lt;br /&gt;
 @       IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns      IN      A       193.48.57.164&lt;br /&gt;
 www     IN      A       193.48.57.164&lt;br /&gt;
 god     IN      A       193.48.57.164&lt;br /&gt;
 ns      IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 god     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 @       IN      A       193.48.57.164&lt;br /&gt;
 @       IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis on créer le fichier définissant la zone inverse pour la résolution des adresses IP, 57.48.193.in-addr.arpa :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN       SOA     ns.zegbicho.lol. root.zegbicho.lol.     (&lt;br /&gt;
       2015102001       ;serial&lt;br /&gt;
       14400            ;refresh&lt;br /&gt;
       3600             ;retry&lt;br /&gt;
       604800           ;expire&lt;br /&gt;
       10800            ;minimum&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.&lt;br /&gt;
 &lt;br /&gt;
 163               IN      PTR     zegbicho.lol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On modifie ensuite le fichier de configuration /etc/bind/named.conf.local, dans lequel on ajoute les zones :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;zegbicho.lol&amp;quot; {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/db.zegbicho.lol.signed&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
       notify yes;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;57.48.193.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/57.48.193.in-addr.arpa&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On finit avec la sécurisation DNS avec DNSSEC: On remarque que le fichier référencé dans /etc/bind/named.conf.local est&lt;br /&gt;
 /etc/bind/zones/db.zegbicho.lol.signed&lt;br /&gt;
Ce fichier est créé après la signature de la zone, mais nous devons tout d'abord réaliser quelques manipulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNSSEC est un protocole de sécurisation du protocole DNS. Celui-ci a pour but de signer les informations publiées grâce à un jeu de clés chiffrées.&lt;br /&gt;
On crée donc 2 clés : une Key Signing Key (KSK) et une Zone Signing Key (ZSK). Pour accélérer la génération nous utilisons l'option -r /dev/urandom qui permet d'utiliser une génération pseudo-aléatoire au lieu d'une génération /dev/random par défaut.&lt;br /&gt;
&lt;br /&gt;
Génération de la KSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE zegbicho.lol&lt;br /&gt;
Génération de la ZSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE zegbicho.lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On obtient donc 4 clés. En effet, à chaque génération de clé, on obtient une clé publique et une clé privée. Pour s'y retrouver, on renomme ces clés et on les place dans un dossier qu'on créer : /etc/bind/zegbicho.lol.dnssec&lt;br /&gt;
Ces clés (les deux clés publiques) sont référées dans le fichier de zone db.zegbicho.lol :&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va ensuite sur gandi.net dans la rubrique &amp;quot;gérer DNSSEC&amp;quot; et on leur fourni les deux clés publiques KSK et ZSK. Il peut alors les propager.&lt;br /&gt;
&lt;br /&gt;
Finalement, on signe la zone avec la command esuivant :&lt;br /&gt;
dnssec-signzone -o zegbicho.lol -k zegbicho.lol.dnssec/zegbicho.lol-ksk zones/db.zegbicho.lol zegbicho.lol.dnssec/zegbicho.lol-zsk&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer le fichier /etc/bind/zones/db.zegbicho.lol.signed qu'on réfère dans le fichier de configuration /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
On finit alors par créer et éditer le fichier de cofiguration des options : /etc/bind/named.conf.options :&lt;br /&gt;
 options {&lt;br /&gt;
          dnssec enable yes;&lt;br /&gt;
          dnssec-validation yes;&lt;br /&gt;
          dnssec-lookaside auto;&lt;br /&gt;
          listen-on-v6 {any;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
==== Vérification de la fonctionnalité de notre site ====&lt;br /&gt;
&lt;br /&gt;
On entre l'URL zegbicho.lol, qui est automatiquement redirigée vers https://zegbicho.lol&lt;br /&gt;
On remarque que le certificat est valide. &amp;lt;br&amp;gt;&lt;br /&gt;
La page est uniquement accessible en https car nous avons modifié le fichier de confguration etc/apache2/sites-available/000-default.conf:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
 .....&lt;br /&gt;
 Redirect permanent / https://zegbicho.lol&lt;br /&gt;
 ....&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On test également notre configuration avec l'outil DNSSEC de l'outil https://www.zonemaster.fr/ et on remarque que le DNSSEC est validé/actif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site web réalisé est donc sécurisé !&lt;br /&gt;
&lt;br /&gt;
===Wifi : Tests d'intrusion par cassage de clé WEP===&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, on passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 7 --write out mon0&lt;br /&gt;
&lt;br /&gt;
En parallèle de ce processus, on peut lancer le cassage de la clé WEP avec la commande :&lt;br /&gt;
 aircrack-ng out-01.cap&lt;br /&gt;
&lt;br /&gt;
Après quelques minutes d'attente (soit env. 66249 IVs), on obtient enfin notre clé :&lt;br /&gt;
 KEY FOUND! [ 55:55:55:55:55:55:55:55:55:55:55:11:11 ]&lt;br /&gt;
&lt;br /&gt;
===Wifi : Cassage de clé WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour craquer ce type de clé, il faut trouver un moyen un peu plus complexe car aircrack n'est pas capable de trouver la clé par ses propres moyens. Il est nécessaire de lui fournir un dictionnaire contenant la clé de réseau pour espérer pouvoir s'y connecter. Nous avons donc commencé par générer un dictionnaire comprenant cent millions de clés (tous les nombres à 8 chiffres : 00000000 à 99999999). Nous avons pour cela créé un petit code C :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 int main(){&lt;br /&gt;
             int i=0;&lt;br /&gt;
             FILE* dico = fopen(&amp;quot;dictionnaire.txt&amp;quot;,&amp;quot;w+&amp;quot;);&lt;br /&gt;
             for(i=0;i&amp;lt;=99999999;i++){&lt;br /&gt;
             fprintf(dico, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
           }&lt;br /&gt;
           fclose(dico);&lt;br /&gt;
           return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 12 --write crackage_wpa-psk.txt mon0&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le cassage de la clé WPA-PSK en référant notre dictionnaire créé précédemment avec la commande :&lt;br /&gt;
 aircrack-ng -w dictionnaire.txt crackage_wpa-psk.txt-02.cap&lt;br /&gt;
&lt;br /&gt;
Le test des clés se fait à une vitesse moyenne de 3700 clés par seconde.&amp;lt;br&amp;gt;&lt;br /&gt;
Après quelques minutes d'attente , on obtient enfin notre clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Craquage_WPA_PSK.png |thumb|center| 600px|&amp;lt;center&amp;gt;Craquage WPA-PSK&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
===Nouveau titre===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=23330</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=23330"/>
				<updated>2015-11-26T09:34:05Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Wifi : Cassage de clé WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
*On lance la VM xen:&lt;br /&gt;
 xl create /etc/xen/KARMELIET.cfg&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur DNS et SSH:&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC (nom de l'EeePC : heron)====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 iwconfig wlan0 essid baguette&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (09/11/2015) ===&lt;br /&gt;
&lt;br /&gt;
==== Configuration du switch E304 ====&lt;br /&gt;
&lt;br /&gt;
La configuration réseau du commutateur se déroule en 3 étapes.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on configure les liaisons trunk. Il s'agit ici de la liaison qui relie le commutateur au routeur en E304, sur l'interface 4/1, et la liaison câble qui relie le commutateur au routeur en E306 sur l'interface 2/2. On entre donc les commandes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
 conf t &lt;br /&gt;
 int Gi4/1&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 int Gi2/2&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé les VLAN 11-20, 110 et 130 de cette façon :&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 vlan 11&lt;br /&gt;
 name vlan11&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On leur attribue ensuite un port physique du commutateur :&lt;br /&gt;
&lt;br /&gt;
 int Gi4/11&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport access vlan 11&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On obtient donc le schéma physique suivant :&lt;br /&gt;
&lt;br /&gt;
*VLAN11 : Gigabit 4/11&lt;br /&gt;
*VLAN12 : Gigabit 4/12&lt;br /&gt;
*VLAN13 : Gigabit 4/13&lt;br /&gt;
*VLAN14 : Gigabit 4/14&lt;br /&gt;
*VLAN15 : Gigabit 4/15&lt;br /&gt;
*VLAN16 : Gigabit 4/16&lt;br /&gt;
*VLAN17 : Gigabit 4/17&lt;br /&gt;
*VLAN18 : Gigabit 4/18&lt;br /&gt;
*VLAN19 : Gigabit 4/19&lt;br /&gt;
*VLAN20 : Gigabit 4/20&lt;br /&gt;
*VLAN 110 : Gigabit 5/1&lt;br /&gt;
&lt;br /&gt;
=== VM xen ===&lt;br /&gt;
==== Configuration du serveur apache et installation du certificat SSL ====&lt;br /&gt;
Pour activer le certificat SSL, nous devons à la fois manipuler sur notre machine Xen et sur le site gandi. Nous nous sommes d'ailleurs aidés des tutoriels gandi pour réaliser cette tâche. Nous certifions les domaines ''www.zegbicho.lol'' et ''zegbicho.lol''. Nous avons tout d'abord besoin de clés, on génère donc le premier fichier .csr à fournir à gandi avec la commande :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout zegbicho.lol.key -out zegbicho.lol.csr&lt;br /&gt;
&lt;br /&gt;
Cette commande nous a donc généré deux fichier : un fichier .key qui correspond à notre clé privée et un .csr ( clé publique) que nous devons fournir à gandi. Ce dernier nous retourne alors un .crt, nous supprimons aors la .crs dont nous n'avons plus besoin. Nous décidons de les ranger dans des dossier situés dans le dossier /etc/ssl/ de notre machine xen :&lt;br /&gt;
*Le fichier .crt dans /etc/ssl/certs/&lt;br /&gt;
*le fichier .key dans /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Nous allons à présent suivre le tutoriel gandi : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/ssl&lt;br /&gt;
&lt;br /&gt;
On active le module ssl d'apache :&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Puis on fait en sorte qu'apache écoute sur le port 443, on édite donc le fichier de configuration /etc/apache2/ports.conf et on ajoute:&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    Listen 443&lt;br /&gt;
    NameVirtualHost 193.48.57.164:443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous pouvons obtenir le certificat intermédiare de gandi.&lt;br /&gt;
Nous récupérons le fichier GandiStandardSSLCA2.pem qui nous plaçons dans le répertoire /etc/ssl/certs/&lt;br /&gt;
On effectue le rehash de la structure ssl:&lt;br /&gt;
 c_rehash /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un domaine sur notre apache sécurisé, on crée le site dédié www.zegbicho.lol.&lt;br /&gt;
Enfin, on ajoute un VirtualHost servant le contenu du dossier /var/www/www.zegbicho.lol/ sur le port 443, dans /etc/apache2/sites-available/000-zegbicho.lol-ssl.conf : &lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *:443&lt;br /&gt;
  &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ServerName www.zegbicho.lol&lt;br /&gt;
        ServerAlias zegbicho.lol&lt;br /&gt;
        DocumentRoot /var/www/www.zegbicho.lol/&lt;br /&gt;
        CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/ssl/certs/zegbicho.lol.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/zegbicho.lol.key&lt;br /&gt;
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la chaine SSl crée avec la commande : &lt;br /&gt;
 openssl s_client -connect 193.48.57.164:443&lt;br /&gt;
Notre chaine est validée, on passe donc à la configuration du serveur DNS&lt;br /&gt;
&lt;br /&gt;
==== Serveur DNS et DNSSEC avec Bind ====&lt;br /&gt;
&lt;br /&gt;
Nous nous aidons ici aussi des tutos gandi&lt;br /&gt;
&lt;br /&gt;
Il s'agira tout d'abord de s'occuper du changement de DNS sur le site gandi.&lt;br /&gt;
Nous devons au prélable gérer les glue records : https://wiki.gandi.net/fr/domains/management/change-glue&lt;br /&gt;
On va alors créer un enregistrement Glue :&lt;br /&gt;
*Nom du serveur : ns.zegbicho.lol&lt;br /&gt;
*Adresse IP : 193.48.57.164&lt;br /&gt;
&lt;br /&gt;
On peut alors modifier les serveurs de nom sur gandi.net : https://wiki.gandi.net/fr/dns/change&lt;br /&gt;
*DNS1 : ns.zegbicho.lol&lt;br /&gt;
*DNS2 : ns6.gandi.net&lt;br /&gt;
On utilise un serveur DNS secondaire appartenant à gandi.&lt;br /&gt;
&lt;br /&gt;
On attends la propagation DNS et on s'attaque à la configuration de BIND : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/bind&lt;br /&gt;
&lt;br /&gt;
Toute cette configuration s'effectue dans le dossier /etc/bind/&lt;br /&gt;
&lt;br /&gt;
On commence par créer un dossier zones dans lequel on créer un fichier de zone /etc/bind/zones/db.zegbicho.lol :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN      SOA     ns.zegbicho.lol. root.zegbicho.lol. (&lt;br /&gt;
                    2015102001         ; Serial&lt;br /&gt;
                         86400         ; Refresh&lt;br /&gt;
                          3600         ; Retry&lt;br /&gt;
                       2419200         ; Expire&lt;br /&gt;
                         86400 )       ; Negative Cache TTL&lt;br /&gt;
 &lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
 &lt;br /&gt;
 @       IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns      IN      A       193.48.57.164&lt;br /&gt;
 www     IN      A       193.48.57.164&lt;br /&gt;
 god     IN      A       193.48.57.164&lt;br /&gt;
 ns      IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 god     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 @       IN      A       193.48.57.164&lt;br /&gt;
 @       IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis on créer le fichier définissant la zone inverse pour la résolution des adresses IP, 57.48.193.in-addr.arpa :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN       SOA     ns.zegbicho.lol. root.zegbicho.lol.     (&lt;br /&gt;
       2015102001       ;serial&lt;br /&gt;
       14400            ;refresh&lt;br /&gt;
       3600             ;retry&lt;br /&gt;
       604800           ;expire&lt;br /&gt;
       10800            ;minimum&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.&lt;br /&gt;
 &lt;br /&gt;
 163               IN      PTR     zegbicho.lol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On modifie ensuite le fichier de configuration /etc/bind/named.conf.local, dans lequel on ajoute les zones :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;zegbicho.lol&amp;quot; {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/db.zegbicho.lol.signed&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
       notify yes;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;57.48.193.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/57.48.193.in-addr.arpa&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On finit avec la sécurisation DNS avec DNSSEC: On remarque que le fichier référencé dans /etc/bind/named.conf.local est&lt;br /&gt;
 /etc/bind/zones/db.zegbicho.lol.signed&lt;br /&gt;
Ce fichier est créé après la signature de la zone, mais nous devons tout d'abord réaliser quelques manipulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNSSEC est un protocole de sécurisation du protocole DNS. Celui-ci a pour but de signer les informations publiées grâce à un jeu de clés chiffrées.&lt;br /&gt;
On crée donc 2 clés : une Key Signing Key (KSK) et une Zone Signing Key (ZSK). Pour accélérer la génération nous utilisons l'option -r /dev/urandom qui permet d'utiliser une génération pseudo-aléatoire au lieu d'une génération /dev/random par défaut.&lt;br /&gt;
&lt;br /&gt;
Génération de la KSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE zegbicho.lol&lt;br /&gt;
Génération de la ZSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE zegbicho.lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On obtient donc 4 clés. En effet, à chaque génération de clé, on obtient une clé publique et une clé privée. Pour s'y retrouver, on renomme ces clés et on les place dans un dossier qu'on créer : /etc/bind/zegbicho.lol.dnssec&lt;br /&gt;
Ces clés (les deux clés publiques) sont référées dans le fichier de zone db.zegbicho.lol :&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va ensuite sur gandi.net dans la rubrique &amp;quot;gérer DNSSEC&amp;quot; et on leur fourni les deux clés publiques KSK et ZSK. Il peut alors les propager.&lt;br /&gt;
&lt;br /&gt;
Finalement, on signe la zone avec la command esuivant :&lt;br /&gt;
dnssec-signzone -o zegbicho.lol -k zegbicho.lol.dnssec/zegbicho.lol-ksk zones/db.zegbicho.lol zegbicho.lol.dnssec/zegbicho.lol-zsk&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer le fichier /etc/bind/zones/db.zegbicho.lol.signed qu'on réfère dans le fichier de configuration /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
On finit alors par créer et éditer le fichier de cofiguration des options : /etc/bind/named.conf.options :&lt;br /&gt;
 options {&lt;br /&gt;
          dnssec enable yes;&lt;br /&gt;
          dnssec-validation yes;&lt;br /&gt;
          dnssec-lookaside auto;&lt;br /&gt;
          listen-on-v6 {any;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
==== Vérification de la fonctionnalité de notre site ====&lt;br /&gt;
&lt;br /&gt;
On entre l'URL zegbicho.lol, qui est automatiquement redirigée vers https://zegbicho.lol&lt;br /&gt;
On remarque que le certificat est valide. &amp;lt;br&amp;gt;&lt;br /&gt;
La page est uniquement accessible en https car nous avons modifié le fichier de confguration etc/apache2/sites-available/000-default.conf:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
 .....&lt;br /&gt;
 Redirect permanent / https://zegbicho.lol&lt;br /&gt;
 ....&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On test également notre configuration avec l'outil DNSSEC de l'outil https://www.zonemaster.fr/ et on remarque que le DNSSEC est validé/actif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site web réalisé est donc sécurisé !&lt;br /&gt;
&lt;br /&gt;
===Wifi : Tests d'intrusion par cassage de clé WEP===&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, on passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 7 --write out mon0&lt;br /&gt;
&lt;br /&gt;
En parallèle de ce processus, on peut lancer le cassage de la clé WEP avec la commande :&lt;br /&gt;
 aircrack-ng out-01.cap&lt;br /&gt;
&lt;br /&gt;
Après quelques minutes d'attente (soit env. 66249 IVs), on obtient enfin notre clé :&lt;br /&gt;
 KEY FOUND! [ 55:55:55:55:55:55:55:55:55:55:55:11:11 ]&lt;br /&gt;
&lt;br /&gt;
===Wifi : Cassage de clé WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour craquer ce type de clé, il faut trouver un moyen un peu plus complexe car aircrack n'est pas capable de trouver la clé par ses propres moyens. Il est nécessaire de lui fournir un dictionnaire contenant la clé de réseau pour espérer pouvoir s'y connecter. Nous avons donc commencé par générer un dictionnaire comprenant cent millions de clés (tous les nombres à 8 chiffres : 00000000 à 99999999). Nous avons pour cela créé un petit code C :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 int main(){&lt;br /&gt;
             int i=0;&lt;br /&gt;
             FILE* dico = fopen(&amp;quot;dictionnaire.txt&amp;quot;,&amp;quot;w+&amp;quot;);&lt;br /&gt;
             for(i=0;i&amp;lt;=99999999;i++){&lt;br /&gt;
             fprintf(dico, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
           }&lt;br /&gt;
           fclose(dico);&lt;br /&gt;
           return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On passe l'interface Wifi en mode monitor :&lt;br /&gt;
 airmon-ng start wlan0&lt;br /&gt;
&lt;br /&gt;
On affiche ensuite le trafic Wifi visible à l'aide de la commande :&lt;br /&gt;
 airodump-ng mon0&lt;br /&gt;
&lt;br /&gt;
Une fois notre point d'accès repéré, on procède à un échange de données avec le point d'accès qui nous intéresse (cracotte04) :&lt;br /&gt;
 airodump-ng --essid cracotte04 --ch 7 --write crackage_wpa-psk.txt mon0&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le cassage de la clé WPA-PSK en référant notre dictionnaire créé précédemment avec la commande :&lt;br /&gt;
 aircrack-ng -w dictionnaire.txt crackage_wpa-psk.txt-02.cap&lt;br /&gt;
&lt;br /&gt;
Le test des clés se fait à une vitesse moyenne de 3700 clés par seconde.&amp;lt;br&amp;gt;&lt;br /&gt;
Après quelques minutes d'attente , on obtient enfin notre clé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Craquage_WPA_PSK.png |thumb|center| 600px|&amp;lt;center&amp;gt;Craquage WPA-PSK&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
===Nouveau titre===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22987</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22987"/>
				<updated>2015-11-16T19:09:53Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
*On lance la VM xen:&lt;br /&gt;
 xl create /etc/xen/KARMELIET.cfg&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur DNS et SSH:&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC (nom de l'EeePC : heron)====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 iwconfig wlan0 essid baguette&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (09/11/2015) ===&lt;br /&gt;
&lt;br /&gt;
==== Configuration du switch E304 ====&lt;br /&gt;
&lt;br /&gt;
La configuration réseau du commutateur se déroule en 3 étapes.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on configure les liaisons trunk. Il s'agit ici de la liaison qui relie le commutateur au routeur en E304, sur l'interface 4/1, et la liaison câble qui relie le commutateur au routeur en E306 sur l'interface 2/2. On entre donc les commandes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
 conf t &lt;br /&gt;
 int Gi4/1&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 int Gi2/2&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 switchport trunk allowed vlan 11-20,110,130&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé les VLAN 11-20, 110 et 130 de cette façon :&lt;br /&gt;
&lt;br /&gt;
 conf t&lt;br /&gt;
 vlan 11&lt;br /&gt;
 name vlan11&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On leur attribue ensuite un port physique du commutateur :&lt;br /&gt;
&lt;br /&gt;
 int Gi4/11&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport access vlan 11&lt;br /&gt;
 no shut&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
On obtient donc le schéma physique suivant :&lt;br /&gt;
&lt;br /&gt;
*VLAN11 : Gigabit 4/11&lt;br /&gt;
*VLAN12 : Gigabit 4/12&lt;br /&gt;
*VLAN13 : Gigabit 4/13&lt;br /&gt;
*VLAN14 : Gigabit 4/14&lt;br /&gt;
*VLAN15 : Gigabit 4/15&lt;br /&gt;
*VLAN16 : Gigabit 4/16&lt;br /&gt;
*VLAN17 : Gigabit 4/17&lt;br /&gt;
*VLAN18 : Gigabit 4/18&lt;br /&gt;
*VLAN19 : Gigabit 4/19&lt;br /&gt;
*VLAN20 : Gigabit 4/20&lt;br /&gt;
*VLAN 110 : Gigabit 5/1&lt;br /&gt;
&lt;br /&gt;
=== VM xen ===&lt;br /&gt;
==== Configuration du serveur apache et installation du certificat SSL ====&lt;br /&gt;
Pour activer le certificat SSL, nous devons à la fois manipuler sur notre machine Xen et sur le site gandi. Nous nous sommes d'ailleurs aidés des tutoriels gandi pour réaliser cette tâche. Nous certifions les domaines ''www.zegbicho.lol'' et ''zegbicho.lol''. Nous avons tout d'abord besoin de clés, on génère donc le premier fichier .csr à fournir à gandi avec la commande :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout zegbicho.lol.key -out zegbicho.lol.csr&lt;br /&gt;
&lt;br /&gt;
Cette commande nous a donc généré deux fichier : un fichier .key qui correspond à notre clé privée et un .csr ( clé publique) que nous devons fournir à gandi. Ce dernier nous retourne alors un .crt, nous supprimons aors la .crs dont nous n'avons plus besoin. Nous décidons de les ranger dans des dossier situés dans le dossier /etc/ssl/ de notre machine xen :&lt;br /&gt;
*Le fichier .crt dans /etc/ssl/certs/&lt;br /&gt;
*le fichier .key dans /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Nous allons à présent suivre le tutoriel gandi : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/ssl&lt;br /&gt;
&lt;br /&gt;
On active le module ssl d'apache :&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Puis on fait en sorte qu'apache écoute sur le port 443, on édite donc le fichier de configuration /etc/apache2/ports.conf et on ajoute:&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    Listen 443&lt;br /&gt;
    NameVirtualHost 193.48.57.164:443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous pouvons obtenir le certificat intermédiare de gandi.&lt;br /&gt;
Nous récupérons le fichier GandiStandardSSLCA2.pem qui nous plaçons dans le répertoire /etc/ssl/certs/&lt;br /&gt;
On effectue le rehash de la structure ssl:&lt;br /&gt;
 c_rehash /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un domaine sur notre apache sécurisé, on crée le site dédié www.zegbicho.lol.&lt;br /&gt;
Enfin, on ajoute un VirtualHost servant le contenu du dossier /var/www/www.zegbicho.lol/ sur le port 443, dans /etc/apache2/sites-available/000-zegbicho.lol-ssl.conf : &lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *:443&lt;br /&gt;
  &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ServerName www.zegbicho.lol&lt;br /&gt;
        ServerAlias zegbicho.lol&lt;br /&gt;
        DocumentRoot /var/www/www.zegbicho.lol/&lt;br /&gt;
        CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/ssl/certs/zegbicho.lol.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/zegbicho.lol.key&lt;br /&gt;
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la chaine SSl crée avec la commande : &lt;br /&gt;
 openssl s_client -connect 193.48.57.164:443&lt;br /&gt;
Notre chaine est validée, on passe donc à la configuration du serveur DNS&lt;br /&gt;
&lt;br /&gt;
==== Serveur DNS et DNSSEC avec Bind ====&lt;br /&gt;
&lt;br /&gt;
Nous nous aidons ici aussi des tutos gandi&lt;br /&gt;
&lt;br /&gt;
Il s'agira tout d'abord de s'occuper du changement de DNS sur le site gandi.&lt;br /&gt;
Nous devons au prélable gérer les glue records : https://wiki.gandi.net/fr/domains/management/change-glue&lt;br /&gt;
On va alors créer un enregistrement Glue :&lt;br /&gt;
*Nom du serveur : ns.zegbicho.lol&lt;br /&gt;
*Adresse IP : 193.48.57.164&lt;br /&gt;
&lt;br /&gt;
On peut alors modifier les serveurs de nom sur gandi.net : https://wiki.gandi.net/fr/dns/change&lt;br /&gt;
*DNS1 : ns.zegbicho.lol&lt;br /&gt;
*DNS2 : ns6.gandi.net&lt;br /&gt;
On utilise un serveur DNS secondaire appartenant à gandi.&lt;br /&gt;
&lt;br /&gt;
On attends la propagation DNS et on s'attaque à la configuration de BIND : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/bind&lt;br /&gt;
&lt;br /&gt;
Toute cette configuration s'effectue dans le dossier /etc/bind/&lt;br /&gt;
&lt;br /&gt;
On commence par créer un dossier zones dans lequel on créer un fichier de zone /etc/bind/zones/db.zegbicho.lol :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN      SOA     ns.zegbicho.lol. root.zegbicho.lol. (&lt;br /&gt;
                    2015102001         ; Serial&lt;br /&gt;
                         86400         ; Refresh&lt;br /&gt;
                          3600         ; Retry&lt;br /&gt;
                       2419200         ; Expire&lt;br /&gt;
                         86400 )       ; Negative Cache TTL&lt;br /&gt;
 &lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
 &lt;br /&gt;
 @       IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns      IN      A       193.48.57.164&lt;br /&gt;
 www     IN      A       193.48.57.164&lt;br /&gt;
 god     IN      A       193.48.57.164&lt;br /&gt;
 ns      IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 god     IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
 @       IN      A       193.48.57.164&lt;br /&gt;
 @       IN      AAAA    2001:660:4401:60bb:216:3eff:fef6:5366&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puis on créer le fichier définissant la zone inverse pour la résolution des adresses IP, 57.48.193.in-addr.arpa :&lt;br /&gt;
&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 &lt;br /&gt;
 @       IN       SOA     ns.zegbicho.lol. root.zegbicho.lol.     (&lt;br /&gt;
       2015102001       ;serial&lt;br /&gt;
       14400            ;refresh&lt;br /&gt;
       3600             ;retry&lt;br /&gt;
       604800           ;expire&lt;br /&gt;
       10800            ;minimum&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns.zegbicho.lol.&lt;br /&gt;
 57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.&lt;br /&gt;
 &lt;br /&gt;
 163               IN      PTR     zegbicho.lol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On modifie ensuite le fichier de configuration /etc/bind/named.conf.local, dans lequel on ajoute les zones :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;zegbicho.lol&amp;quot; {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/db.zegbicho.lol.signed&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
       notify yes;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;57.48.193.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
       type master;&lt;br /&gt;
       file &amp;quot;/etc/bind/zones/57.48.193.in-addr.arpa&amp;quot;;&lt;br /&gt;
       allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On finit avec la sécurisation DNS avec DNSSEC: On remarque que le fichier référencé dans /etc/bind/named.conf.local est&lt;br /&gt;
 /etc/bind/zones/db.zegbicho.lol.signed&lt;br /&gt;
Ce fichier est créé après la signature de la zone, mais nous devons tout d'abord réaliser quelques manipulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNSSEC est un protocole de sécurisation du protocole DNS. Celui-ci a pour but de signer les informations publiées grâce à un jeu de clés chiffrées.&lt;br /&gt;
On crée donc 2 clés : une Key Signing Key (KSK) et une Zone Signing Key (ZSK). Pour accélérer la génération nous utilisons l'option -r /dev/urandom qui permet d'utiliser une génération pseudo-aléatoire au lieu d'une génération /dev/random par défaut.&lt;br /&gt;
&lt;br /&gt;
Génération de la KSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE zegbicho.lol&lt;br /&gt;
Génération de la ZSK :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE zegbicho.lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On obtient donc 4 clés. En effet, à chaque génération de clé, on obtient une clé publique et une clé privée. Pour s'y retrouver, on renomme ces clés et on les place dans un dossier qu'on créer : /etc/bind/zegbicho.lol.dnssec&lt;br /&gt;
Ces clés (les deux clés publiques) sont référées dans le fichier de zone db.zegbicho.lol :&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-ksk.key&lt;br /&gt;
 $include /etc/bind/michay.lol.dnssec/zegbicho.lol-zsk.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va ensuite sur gandi.net dans la rubrique &amp;quot;gérer DNSSEC&amp;quot; et on leur fourni les deux clés publiques KSK et ZSK. Il peut alors les propager.&lt;br /&gt;
&lt;br /&gt;
Finalement, on signe la zone avec la command esuivant :&lt;br /&gt;
dnssec-signzone -o zegbicho.lol -k zegbicho.lol.dnssec/zegbicho.lol-ksk zones/db.zegbicho.lol zegbicho.lol.dnssec/zegbicho.lol-zsk&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer le fichier /etc/bind/zones/db.zegbicho.lol.signed qu'on réfère dans le fichier de configuration /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
On finit alors par créer et éditer le fichier de cofiguration des options : /etc/bind/named.conf.options :&lt;br /&gt;
 options {&lt;br /&gt;
          dnssec enable yes;&lt;br /&gt;
          dnssec-validation yes;&lt;br /&gt;
          dnssec-lookaside auto;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
==== Vérification de la fonctionnalité de notre site ====&lt;br /&gt;
&lt;br /&gt;
On entre l'URL zegbicho.lol, qui est automatiquement redirigée vers https://zegbicho.lol&lt;br /&gt;
On remarque que le certificat est valide. &amp;lt;br&amp;gt;&lt;br /&gt;
La page est uniquement accessible en https car nous avons modifié le fichier de confguration etc/apache2/sites-available/000-default.conf:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
 .....&lt;br /&gt;
 Redirect permanent / https://zegbicho.lol&lt;br /&gt;
 ....&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On test également notre configuration avec l'outil DNSSEC de l'outil https://www.zonemaster.fr/ et on remarque que le DNSSEC est validé/actif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site web réalisé est donc sécurisé !&lt;br /&gt;
&lt;br /&gt;
== Tests d'intrusion ==&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22809</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22809"/>
				<updated>2015-11-09T13:55:13Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Tests de connexion Wi-Fi depuis l'EeePC (nom de l'EeePC : heron) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur SSH et le serveur DNS :&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC (nom de l'EeePC : heron)====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 iwconfig wlan0 essid baguette&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC (non testé) :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
====Installation du serveur Apache et du certificat SSL====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (29/10/2015) ===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22805</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22805"/>
				<updated>2015-11-09T13:23:55Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Suite de la configuration des superviseurs du commutateur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur SSH et le serveur DNS :&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC (nom de l'EeePC : heron)====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 iwconfig wlan0 baguette&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC (non testé) :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 Router#config terminal&lt;br /&gt;
 Router(config)#boot system flash sup-bootflash:c6sup11-js-mz.121-27b.E1.bin&lt;br /&gt;
 //On quitte le mode configuration et on sauvegarde les modifications&lt;br /&gt;
 Router#write&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master).&lt;br /&gt;
&lt;br /&gt;
====Installation du serveur Apache et du certificat SSL====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (29/10/2015) ===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22804</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22804"/>
				<updated>2015-11-09T13:13:44Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Tests de connexion Wi-Fi depuis l'EeePC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur SSH et le serveur DNS :&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC (nom de l'EeePC : heron)====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 iwconfig wlan0 baguette&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC (non testé) :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master). &lt;br /&gt;
&lt;br /&gt;
====Installation du serveur Apache et du certificat SSL====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (29/10/2015) ===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22803</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22803"/>
				<updated>2015-11-09T13:12:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur SSH et le serveur DNS :&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 iwconfig wlan0 baguette&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC (non testé) :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master). &lt;br /&gt;
&lt;br /&gt;
====Installation du serveur Apache et du certificat SSL====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (29/10/2015) ===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22801</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22801"/>
				<updated>2015-11-09T13:10:18Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Tests de connexion Wi-Fi depuis l'EeePC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur SSH et le serveur DNS :&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 auto wlan0 &lt;br /&gt;
   iface wlan0 inet static&lt;br /&gt;
   wireless-essid baguette&lt;br /&gt;
   address 172.26.79.61&lt;br /&gt;
   netmask 255.255.240.0&lt;br /&gt;
   gateway 172.26.79.254&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC (non testé) :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master). &lt;br /&gt;
&lt;br /&gt;
====Installation du serveur Apache et du certificat SSL====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (29/10/2015) ===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=22644</id>
		<title>P33 Réalisations en faveur de l'accessibilité de jeux vidéos</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=22644"/>
				<updated>2015-11-01T23:53:06Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &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;
==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:logo_la_gerlotte.jpg|thumb|left|La Gerlotte de l'association La vie,autrement ...]]&lt;br /&gt;
&lt;br /&gt;
Les jeux vidéos se sont largement répandus dans le monde aujourd'hui et sont présents sur toutes les plates-formes : téléphones portables, consoles, ordinateur, tablettes. Ils offrent une expérience ludique et divertissante aux utilisateurs au nombre grandissant. Cependant jouer à un jeux vidéos demande de la pratique : il faut manipuler la souris ou le joystick avec brio tandis que la seconde main parcourt le clavier, les manettes de jeux de plus en plus complexes où nos doigts virevoltent en même temps sur les milliers de boutons. Tout cela requiert une grande concentration et des heures  d'apprentissage non négligeables. &lt;br /&gt;
&lt;br /&gt;
le sujet est d'autant plus difficile pour les personnes handicapées qui souhaitent s’amuser sur un jeu vidéo actuel. Quels sont les moyens qu’un accidenté lourd ou un individu handicapé depuis sa naissance, pourrait utiliser pour se détendre sur un jeu ? &lt;br /&gt;
En fonction de la nature du handicap, des solutions diverses et variées existent.&lt;br /&gt;
&lt;br /&gt;
La Gerlotte, est une maison d’accueil spécialisée de l'association La vie, autrement ..., qui accueille des adultes polyhandicapés dépendants dans tous les actes de la vie quotidienne, à l’exclusion des personnes présentant un gros trouble du comportement ou de la personne.&lt;br /&gt;
&lt;br /&gt;
Nous avons pour projet de permettre l'accessibilité de jeux vidéos aux personnes handicapées de l'établissement et de leur apporter ainsi ce moyen de divertissement.&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
Permettre à des personnes handicapées l'accès aux jeux vidéos.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Afin de rendre accessible des activités ludiques deux approches sont possibles, une adaptation ou une création des périphériques de jeux (manettes, ...) ou une modification de système existants en les rendant plus interactifs. Les enfants et adultes en situation de polyhandicap sont dans l'incapacité physique de manipuler les télécommandes et joysticks prévus avec les consoles de jeux vidéos classiques (wii, nintendo,..). Le projet est de pouvoir leur rendre accessibles ces moyens de se divertir en trouvant des adaptations (type contacteur) correspondant à leurs capacités. Quelques pistes envisagées (non exclusives) : une commande simple BCI (Brain Computer Interface) compatible avec les logiciels existants fonctionnant en mode défilement, ou encore un contacteur au clignement intentionnel de paupière enregistré par webcam...&lt;br /&gt;
Ce projet sera effectué à destination des habitants de la maison d'accueil spécialisée de La Gerlotte de Marcq-en-Barœul. Cette résidence accueille des personnes adultes polyhandicapées dépendantes.&lt;br /&gt;
&lt;br /&gt;
===Étapes du projet===&lt;br /&gt;
* Rencontre avec le personnel de la Gerlotte et établissement du cahier des charges et des attentes&lt;br /&gt;
* &amp;quot;Clôture&amp;quot; du cahier des charges et début de l'élaboration des adaptations convenues&lt;br /&gt;
* Tests des adaptations établies avec les résidents de la Gerlotte, et prise en compte des retours&lt;br /&gt;
&lt;br /&gt;
===Choix techniques : matériel et logiciel===&lt;br /&gt;
* Arduino Leonardo [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 13/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* STM32F4-Discovery Board [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 13/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Sparkfun Analog Joystick [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 2 boutons poussoirs [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 21/10/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 1 (du 28/09/2015 au 04/10/2015)===&lt;br /&gt;
Rendez-vous à la Gerlotte du mercredi 30/09/2015 :&lt;br /&gt;
* Rencontre avec l'animateur Xavier Hantson et visite de l'établissement la Gerlotte&lt;br /&gt;
* Rencontre avec les résidents, présentation des infrastructures en place (adaptations, appareillages), et aperçu des différents handicaps pris en charge&lt;br /&gt;
* Réunion avec le directeur David Desmulier, l'ergothérapeute Thierry Danigo et M. Hantson. Brainstorming sur les différents moyens pour l'accessibilité aux jeux vidéos : adaptation, modification de manettes, OneSwitch, support handsfree, reconnaissance oculaire (Eye Tracking Tobii avec le SDK, tools et hardware pour 99 euros), le choix de l'eye track inclurait la création d'un jeux vidéo adapté.&lt;br /&gt;
* Accord pour le prochain rendez-vous au 14/10/2015, où un premier choix d'adaptation devra être fait afin de commencer les premiers travaux&lt;br /&gt;
&lt;br /&gt;
Après discussions avec M. Vantroys et M. Grisoni, la reconnaissance oculaire n'est pas un choix que nous conseillent nos professeurs et la création de jeux vidéos serait un travail beaucoup trop laborieux. À ce jour, nous restons dans l'idée de modification de manettes, périphériques  pour pouvoir jouer à des jeux déjà existant. Nous poursuivons nos recherches pour approfondir le sujet ou pour trouver d'autres possibilités.&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 (du 05/10/2015 au 11/10/2015)===&lt;br /&gt;
Recherche bibliographique sur les solutions et logiciels existants permettant l’accessibilité aux jeux vidéos pour les personnes handicapées (cf [http://www.capgame.fr CapGame]) :&lt;br /&gt;
* GlovePie : commande des jeux par la voix&lt;br /&gt;
* AltController : des boites virtuels simulent des touches du clavier lors du passage ou clic de la souris&lt;br /&gt;
* Kinesic Mouse : contrôle des jeux par mouvements de la tête, sourcils, lèvres, etc&lt;br /&gt;
* UnoJoy : librairie Arduino permettant à partir d'une manette existante ou crée, de la rendre compatible sur Windows/Mac/PS3&lt;br /&gt;
* Emulation d'un clavier/souris sur Windows à l'aide d'une plate-forme de développement SMT32F4 ou d'un Arduino Leonardo. Création d'une manette de jeux avec des boutons/joysticks de bornes d'arcades.&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 (du 12/10/2015 au 18/10/2015)===&lt;br /&gt;
Réunion à la Gerlotte du mercredi 14/10/2015 en présence de M. Xavier Hantson, Thierry Danigo, Martin Nicolas, Laurent Grisoni.&lt;br /&gt;
&lt;br /&gt;
Proposition et Brainstorming sur les différentes solutions envisagés :&lt;br /&gt;
* adaptation d'une manette Wii à partir d'un projet déjà commencé l'an dernier ([https://projets-ima.polytech-lille.net:40079/mediawiki/index.php?title=P35_Hack-a-Wii_:_Emulation_de_wiimote_pour_rendre_la_Wii_accessibles_aux_personnes_handicap%C3%A9es lien]), solution orientée pour la console Nintendo Wii&lt;br /&gt;
* création d'une manette adaptable à partir d'un microcontrôleur de type Arduino par exemple, orientée plutôt pour les jeux PC.&lt;br /&gt;
* intégration de jeux vidéos devenus libres, jeux rétros de l'époque Atari, sur les systèmes Rapsberry Pi ou Banana Pi&lt;br /&gt;
&lt;br /&gt;
Prochaine réunion fixée au mercredi 4/11/2015 à 14h30 à La Gerlotte. Pour cette date, il a été convenu de créer un Google Docs ouvert à tous les encadrants du projet permettant de répertorier tous les liens des pistes de recherches abordées et des solutions déjà existantes en France ou à l'étranger. Lors de ce rendez-vous il est prévu d'observer l'utilisation d'un PC par certains résidents.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 (du 19/10/2015 au 25/10/2015)===&lt;br /&gt;
Durant cette semaine, nous avons discuté avec M. Vantroys sur la manière dont nous pourrions présenter un prototype du système imaginé. Il se présenterait sous la forme d'une simple manette constituée d'un joystick et de quelques boutons poussoirs, le tout contrôlé par un Arduino Leonardo. Ainsi, on pourrait présenter au personnel de la Gerlotte une simple manette permettant de jouer à des jeux émulés simples, manette qui serait algorithmiquement facile à paramétrer, et donc faire une démonstration de son fonctionnement.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les prochains jours sera de mettre en place et de tester cette manette.&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 Vacances de la Toussaint (du 26/10/2015 au 01/11/2015)===&lt;br /&gt;
Création d'une manette de jeux simple à l'aide d'un Arduino Leonardo.&lt;br /&gt;
&lt;br /&gt;
Le Leonardo a l'avantage d'être reconnu directement sur l'ordinateur comme un clavier/souris. Les classes Keyboard et Mouse permettent d'émuler ces périphériques d'entrées.&lt;br /&gt;
&lt;br /&gt;
Cependant pour pouvoir être reconnu en tant que manette de jeux il faut modifier la librairie standard USB et le descripteur HID.&lt;br /&gt;
&lt;br /&gt;
Plus d'informations sur le repertoire Github pour l'Arduino Leonardo reconnu en tant que manette de jeux : [https://github.com/LuomuJie/JoystickLeonardo JoystickLeonardo]&lt;br /&gt;
&lt;br /&gt;
Ce prototype dispose d'un joystick analogique 2 axes et de 6 boutons poussoirs (1 bouton est inclus avec le joystick). Il est optimisé pour jouer à des jeux de GameBoy Advance ou rétros (SuperNES, Master System, Gameboy ...) dont les manettes ne disposent pas énormément de touches.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:kirby-nightmare-in-dream-land-gba-1.jpg|left|thumb|250px|Test de Kirby Nightmare in Dreamland sur GBA fonctionnel]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:joystickLeonardo.jpg|thumb|center|300px|Arduino Leonardo comme manette de jeux]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 14 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 15 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 16 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 17 ===&lt;br /&gt;
&lt;br /&gt;
== Fichiers Rendus ==&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22418</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22418"/>
				<updated>2015-10-23T13:34:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur SSH et le serveur DNS :&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en modifiant la configuarion du wlan0 dans le fichier /etc/network/interfaces (''wireless-essid troubadour''). On modifie aussi notre adresse MAC (non testé) :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Suite de la configuration des superviseurs du commutateur====&lt;br /&gt;
&lt;br /&gt;
*Un CatOS, puis un IOS a pu être installé sur le superviseur défectueux depuis une carte mémoire flash. On veut que le système démarre sur une image de IOS. On modifie alors le &amp;quot;boot system&amp;quot; par la commande ''configure terminal'' :&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur le rommon et on modifie le mode de démarrage lors de la mise sous-tension par la commande ''confreg''. Ainsi, le système ne bootera plus sur le ROM Monitor mais sur l'image de l'OS configurée précédemment.&lt;br /&gt;
&lt;br /&gt;
*Pour la prochaine fois, il suffira de brancher les deux superviseurs, de formater en IOS le bootflash et sup-bootflash du superviseur qui était défectueux (slave), et d'y copier les fichiers binaires correspondants depuis l'autre superviseur (master). &lt;br /&gt;
&lt;br /&gt;
====Installation du serveur Apache et du certificat SSL====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (29/10/2015) ===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22417</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22417"/>
				<updated>2015-10-23T13:19:04Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
On ajoute le serveur apache, le serveur SSH et le serveur DNS :&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
====Tests de connexion Wi-Fi depuis l'EeePC====&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 /etc/init.d/networking stop&lt;br /&gt;
 /etc/init.d/networking start&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
*Tentative d'intrusion : On essaye de se connecter sur l'autre point d'accès Wi-Fi &amp;quot;troubadour&amp;quot; en changeant notre adresse MAC (non testé) :&lt;br /&gt;
  ifconfig wlan0 down&lt;br /&gt;
  ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx&lt;br /&gt;
  ifconfig wlan0 up&lt;br /&gt;
&lt;br /&gt;
====Installation du serveur Apache et du certificat SSL====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (29/10/2015) ===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22415</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=22415"/>
				<updated>2015-10-23T13:13:43Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur Cisco 6009 présent en salle E304. Nous devons dans un premier temps de les mettre à jour de CatOS vers IOS, pour pouvoir dans un second temps mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°3 qui s'occupera du commutateur présent dans la salle voisine E306.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Network architecture.PNG |thumb|center| 600px|&amp;lt;center&amp;gt;Architecture Réseau&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
* Commutateur Cisco 6009&lt;br /&gt;
* Un ordinateur muni d'un port série pour la configuration&lt;br /&gt;
* Un câble reliant le commutateur à ce port série&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Semaine 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
** Le commutateur possède deux modules constitués d'une carte mère appelée carte superviseur et une carte fille qui est la carte routeur.&lt;br /&gt;
** Ces cartes possèdent toutes les deux leurs propres mémoires flash à savoir sup-bootflash pour le superviseur et bootflash pour la carte fille.&lt;br /&gt;
** On peut également insérer une carte flash de 20Mo dans le module&lt;br /&gt;
&lt;br /&gt;
Initialement, ces modules fonctionnent sous CatOS pour la plupart d'entre eux.&lt;br /&gt;
L'idée est de migrer tout les modules vers des systèmes d'exploitation de type IOS (le seul système utilisé aujourd'hui par Cisco).&lt;br /&gt;
&lt;br /&gt;
* Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
* Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
* On décide donc d'utiliser une carte flash formatée sous CatOS grâce à l'autre commutateur présent dans la salle voisine. On y copie également un système CatOS pour le superviseur et un boostrap CatOS&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est d'utiliser cette carte pour booter le 2e module en CatOS.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2 (08/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* Le premier module fonctionne correctement sous IOS&lt;br /&gt;
&lt;br /&gt;
* Problème de la semaine précédente : le 2e module refuse de booter, même sous le CatOS initialement présent.&lt;br /&gt;
&lt;br /&gt;
* Les données de la carte ont été supprimées, on ne peut les récupérer car tous les autres modules tournent actuellement sou IOS.&lt;br /&gt;
&lt;br /&gt;
* Il faut trouver une solution pour booter le commutateur sous CatOS d'une autre façon&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3 (15/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
* On cherche une solution pour copier un fichier sur la bootfalsh du module qui ne fonctionne pas :&lt;br /&gt;
** xmodem, ymodem, zmodem3&lt;br /&gt;
** CuteCom&lt;br /&gt;
 &lt;br /&gt;
En parallèle, on crée notre machine virtuelle Xen sur Cordouan :&lt;br /&gt;
On achète un nom de domaine sur Gandi : '''zegbicho.lol'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On se connecte en ssh sur cordouan :&lt;br /&gt;
&lt;br /&gt;
 ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
&lt;br /&gt;
====On crée notre machine virtuelle xen :====&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=KARMELIET --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.164&lt;br /&gt;
&lt;br /&gt;
* On regarde l'était d'avancement de la création et on récupère notre mot de passe root dans le fichier : KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/xen-tools/KARMELIET.log&lt;br /&gt;
&lt;br /&gt;
* On modifie le fichier de conf KARMELIET.cfg : &lt;br /&gt;
** bridge=IMA5sc&lt;br /&gt;
** on retire l'IP&lt;br /&gt;
** mémoire à 512M&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4 (22/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
*On se connecte sur la VM xen :&lt;br /&gt;
 xl console KARMELIET&lt;br /&gt;
&lt;br /&gt;
*Activation l'IPv4 packet forwarding en de-commentant la ligne appropriée dans le fichier /etc/sysctl.conf &lt;br /&gt;
&lt;br /&gt;
*On vérifie le fichier /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
*Mises à jour :&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
====On ajoute le serveur apache, le serveur SSH et le serveur DNS :====&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
 apt-get install openssh&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
&lt;br /&gt;
On active la possibilité de se connecter en SSH en tant que root en modifiant le fichier de config /etc/ssh/sshd_config :&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
Tests de connexion Wi-Fi depuis l'EeePC :&lt;br /&gt;
&lt;br /&gt;
*On modifie le fichier /etc/network/interfaces de façon à pouvoir se connecter en sans-fil sur le SSID &amp;quot;baguette&amp;quot; :&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*On configure au fichier /etc/resolv.conf : ''nameserver 193.48.57.48''&lt;br /&gt;
&lt;br /&gt;
*On réinitialise les connexions réseau et on se connecte au SSID &amp;quot;baguette&amp;quot;&lt;br /&gt;
 //Code à venir&lt;br /&gt;
&lt;br /&gt;
*La connexion sur tf1.fr fonctionne !&lt;br /&gt;
&lt;br /&gt;
====Installation du serveur Apache et du certificat SSL====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5 (29/10/2015) ===&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=21946</id>
		<title>Cahier groupe n°4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cahier_groupe_n%C2%B04&amp;diff=21946"/>
				<updated>2015-10-08T10:21:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : Page créée avec « == Cahier des charges de la tâche particulière == === Présentation de la tâche particulière === La tâche particulière que nous devons effectuer est de configurer le co... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cahier des charges de la tâche particulière ==&lt;br /&gt;
=== Présentation de la tâche particulière ===&lt;br /&gt;
La tâche particulière que nous devons effectuer est de configurer le commutateur présent en salle E304 afin de pouvoir les mettre à jour de CatOS vers IOS, afin de pouvoir mettre en place les différents VLAN. Cette tâche particulière est effectuée avec le groupe n°4. &lt;br /&gt;
&lt;br /&gt;
=== Matériel utilisé pour la tâche particulière ===&lt;br /&gt;
- Commutateur Cisco 6009&lt;br /&gt;
&lt;br /&gt;
== Suivi de l'avancement du TP ==&lt;br /&gt;
=== Séance 1 (01/10/2015) ===&lt;br /&gt;
&lt;br /&gt;
- Découverte des commutateurs Cisco 6009 présents en E304 et E306&lt;br /&gt;
&lt;br /&gt;
- Echange d'un superviseur entre les deux commutateurs afin d'avoir sur chacun d'entre eux un superviseur sous IOS et un autre sous CatOS&lt;br /&gt;
&lt;br /&gt;
- Un des superviseurs en E304 censé fonctionner sous CatOS ne démarre pas correctement&lt;br /&gt;
&lt;br /&gt;
Pour la prochaine séance, l'objectif est de pouvoir résoudre ce dernier problème&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2015/2016&amp;diff=21943</id>
		<title>TP sysres IMA5sc 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2015/2016&amp;diff=21943"/>
				<updated>2015-10-08T10:11:28Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer votre cahier de travaux pratiques ici.&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Cahier&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Tâche particulière&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[G1 : Advanced_Networking_Protocol_Workshop | Cahier groupe n°1]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Mageshwaran Sekar &amp;amp; Hidéo Vinot &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Routage + Redondance niveau 3 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Cahier groupe n°2]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Sandra Hage Chehadé &amp;amp; Elise Tissot &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Routage &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Cahier groupe n°4]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Thibaut Schoalert &amp;amp; Mehdi Zeggaï &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Configuration des commutateurs &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Cahier groupe n°5]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Jérémie Denéchaud &amp;amp; Gabriel Pagola Nielsen &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Wifi - Filtrage par adresse mac &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Cahier groupe n°6]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Jérome Bailet &amp;amp; Matthieu Marcadet &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Wifi - Filtrage par adresse mac &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[PRA 2015 - Câblage d'un réseau redondant|Cahier groupe n°7]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Jean Wasilewski &amp;amp; Flavien Royer &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Câblage d'un réseau redondant &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Cahier groupe n°8]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Cyril Smagghe &amp;amp; Jean-Michel Tournier &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Bridge &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Cahier groupe n°9]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Kevin Colautti &amp;amp; Benjamin Lefort &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; DLNA &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Cahier groupe n°10]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Alexandre Jouy &amp;amp; Julien Hérin &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Wifi crack &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:résumé répartition.jpg]]&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=21725</id>
		<title>P33 Réalisations en faveur de l'accessibilité de jeux vidéos</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=21725"/>
				<updated>2015-10-04T22:58:02Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Description du projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
Permettre à des personnes handicapées l'accès à des activités ludiques.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Afin de rendre accessible des activités ludiques deux approches sont possibles, une adaptation ou une création des périphériques de jeux (manettes, ...) ou une modification de système existants en les rendant plus interactifs. Les enfants et adultes en situation de polyhandicap sont dans l'incapacité physique de manipuler les télécommandes et joysticks prévus avec les consoles de jeux vidéos classiques (wii, nintendo,..). Le projet est de pouvoir leur rendre accessibles ces moyens de se divertir en trouvant des adaptations (type contacteur) correspondant à leurs capacités. Quelques pistes envisagées (non exclusives) : une commande simple BCI (Brain Computer Interface) compatible avec les logiciels existants fonctionnant en mode défilement, ou encore un contacteur au clignement intentionnel de paupière enregistré par webcam...&lt;br /&gt;
Ce projet sera effectué à destination des habitants de la maison d'accueil spécialisée de La Gerlotte de Marcq-en-Barœul. Cette résidence accueille des personnes adultes polyhandicapées dépendantes.&lt;br /&gt;
&lt;br /&gt;
===Étapes du projet===&lt;br /&gt;
* Rencontre avec le personnel de la Gerlotte et établissement du cahier des charges et des attentes&lt;br /&gt;
* &amp;quot;Clôture&amp;quot; du cahier des charges et début de l'élaboration des adaptations convenues&lt;br /&gt;
* Tests des adaptations établies avec les résidents de la Gerlotte, et prise en compte des retours&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 1 (du 28/09/2015 au 04/10/2015)===&lt;br /&gt;
Rendez-vous à la Gerlotte du mercredi 30/09/2015 :&lt;br /&gt;
* Rencontre avec l'animateur Xavier Hantson et visite de l'établissement la Gerlotte&lt;br /&gt;
* Rencontre avec les résidents, présentation des infrastructures en place (adaptations, appareillages), et aperçu des différents handicaps pris en charge&lt;br /&gt;
* Réunion avec le directeur David Desmulier, l'ergothérapeute Thierry Danigo et M. Hantson. Brainstorming sur les différents moyens pour l'accessibilité aux jeux vidéos : adaptation, modification de manettes, OneSwitch, support handsfree, reconnaissance oculaire (Eye Tracking Tobii avec le SDK, tools et hardware pour 99 euros), le choix de l'eye track inclurait la création d'un jeux vidéo adapté.&lt;br /&gt;
* Accord pour le prochain rendez-vous au 14/10/2015, où un premier choix d'adaptation devra être fait afin de commencer les premiers travaux&lt;br /&gt;
&lt;br /&gt;
Après discussions avec M. Vantroys et M. Grisoni, la reconnaissance oculaire n'est pas un choix que nous conseillent nos professeurs et la création de jeux vidéos serait un travail beaucoup trop laborieux. À ce jour, nous restons dans l'idée de modification de manettes, périphériques  pour pouvoir jouer à des jeux déjà existant. Nous poursuivons nos recherches pour approfondir le sujet ou pour trouver d'autres possibilités.&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 14 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 15 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 16 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 17 ===&lt;br /&gt;
&lt;br /&gt;
== Fichiers Rendus ==&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=21724</id>
		<title>P33 Réalisations en faveur de l'accessibilité de jeux vidéos</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=21724"/>
				<updated>2015-10-04T22:55:18Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Semaine 1 */&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;
==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
Permettre à des personnes handicapées l'accès à des activités ludiques.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Afin de rendre accessible des activités ludiques deux approches sont possibles, une adaptation ou une création des périphériques de jeux (manettes, ...) ou une modification de système existants en les rendant plus interactifs. Les enfants et adultes en situation de polyhandicap sont dans l'incapacité physique de manipuler les télécommandes et joysticks prévus avec les consoles de jeux vidéos classiques (wii, nintendo,..). Le projet est de pouvoir leur rendre accessibles ces moyens de se divertir en trouvant des adaptations (type contacteur) correspondant à leurs capacités. Quelques pistes envisagées (non exclusives) : une commande simple BCI (Brain Computer Interface) compatible avec les logiciels existants fonctionnant en mode défilement, ou encore un contacteur au clignement intentionnel de paupière enregistré par webcam... &lt;br /&gt;
&lt;br /&gt;
===Étapes du projet===&lt;br /&gt;
* Rencontre avec le personnel de la Gerlotte et établissement du cahier des charges et des attentes&lt;br /&gt;
* &amp;quot;Clôture&amp;quot; du cahier des charges et début de l'élaboration des adaptations convenues&lt;br /&gt;
* Tests des adaptations établies avec les résidents de la Gerlotte, et prise en compte des retours&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 1 (du 28/09/2015 au 04/10/2015)===&lt;br /&gt;
Rendez-vous à la Gerlotte du mercredi 30/09/2015 :&lt;br /&gt;
* Rencontre avec l'animateur Xavier Hantson et visite de l'établissement la Gerlotte&lt;br /&gt;
* Rencontre avec les résidents, présentation des infrastructures en place (adaptations, appareillages), et aperçu des différents handicaps pris en charge&lt;br /&gt;
* Réunion avec le directeur David Desmulier, l'ergothérapeute Thierry Danigo et M. Hantson. Brainstorming sur les différents moyens pour l'accessibilité aux jeux vidéos : adaptation, modification de manettes, OneSwitch, support handsfree, reconnaissance oculaire (Eye Tracking Tobii avec le SDK, tools et hardware pour 99 euros), le choix de l'eye track inclurait la création d'un jeux vidéo adapté.&lt;br /&gt;
* Accord pour le prochain rendez-vous au 14/10/2015, où un premier choix d'adaptation devra être fait afin de commencer les premiers travaux&lt;br /&gt;
&lt;br /&gt;
Après discussions avec M. Vantroys et M. Grisoni, la reconnaissance oculaire n'est pas un choix que nous conseillent nos professeurs et la création de jeux vidéos serait un travail beaucoup trop laborieux. À ce jour, nous restons dans l'idée de modification de manettes, périphériques  pour pouvoir jouer à des jeux déjà existant. Nous poursuivons nos recherches pour approfondir le sujet ou pour trouver d'autres possibilités.&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 14 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 15 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 16 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 17 ===&lt;br /&gt;
&lt;br /&gt;
== Fichiers Rendus ==&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=21723</id>
		<title>P33 Réalisations en faveur de l'accessibilité de jeux vidéos</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P33_R%C3%A9alisations_en_faveur_de_l%27accessibilit%C3%A9_de_jeux_vid%C3%A9os&amp;diff=21723"/>
				<updated>2015-10-04T22:44:49Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Étapes du projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
====Contexte====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Objectif du projet====&lt;br /&gt;
&lt;br /&gt;
Permettre à des personnes handicapées l'accès à des activités ludiques.&lt;br /&gt;
&lt;br /&gt;
====Description du projet====&lt;br /&gt;
&lt;br /&gt;
Afin de rendre accessible des activités ludiques deux approches sont possibles, une adaptation ou une création des périphériques de jeux (manettes, ...) ou une modification de système existants en les rendant plus interactifs. Les enfants et adultes en situation de polyhandicap sont dans l'incapacité physique de manipuler les télécommandes et joysticks prévus avec les consoles de jeux vidéos classiques (wii, nintendo,..). Le projet est de pouvoir leur rendre accessibles ces moyens de se divertir en trouvant des adaptations (type contacteur) correspondant à leurs capacités. Quelques pistes envisagées (non exclusives) : une commande simple BCI (Brain Computer Interface) compatible avec les logiciels existants fonctionnant en mode défilement, ou encore un contacteur au clignement intentionnel de paupière enregistré par webcam... &lt;br /&gt;
&lt;br /&gt;
===Étapes du projet===&lt;br /&gt;
* Rencontre avec le personnel de la Gerlotte et établissement du cahier des charges et des attentes&lt;br /&gt;
* &amp;quot;Clôture&amp;quot; du cahier des charges et début de l'élaboration des adaptations convenues&lt;br /&gt;
* Tests des adaptations établies avec les résidents de la Gerlotte, et prise en compte des retours&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 1 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 4 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 5 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 6 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 7 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 8 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 9 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 10 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 11 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 12 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 13 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 14 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 15 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 16 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 17 ===&lt;br /&gt;
&lt;br /&gt;
== Fichiers Rendus ==&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA4_SC_%26_SA_2014/2015&amp;diff=21209</id>
		<title>Projets IMA4 SC &amp; SA 2014/2015</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA4_SC_%26_SA_2014/2015&amp;diff=21209"/>
				<updated>2015-05-12T23:15:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Notes sur les projets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en demandant une modification du format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Encadrants école !! Elèves&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[Brique Lego augmentée]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys / Xavier Redon / Emmanuelle Pichonat &lt;br /&gt;
| Alex JULITA / Déborah SAUNDERS &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Tracabilité hopital|Amélioration de la traçabilité en milieu hospitalier]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Julian BONVILLE / François ROCHE&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Vêtements intelligents]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Alexander BOWN / Valentin PIAT&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Malette Arduino éducative I]]&lt;br /&gt;
| Emmanuelle Pichonat / Thomas Vantroys / Alexandre Boé&lt;br /&gt;
| Yuqian HU&lt;br /&gt;
|-&lt;br /&gt;
| P10bis [[Malette Arduino éducative II]]&lt;br /&gt;
| Emmanuelle Pichonat / Thomas Vantroys / Alexandre Boé&lt;br /&gt;
| Mehmet ILTER&lt;br /&gt;
|-&lt;br /&gt;
| P11 [[Fabricarium - partage simplifié]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys / Xavier Redon / Rodolphe Astori&lt;br /&gt;
| Jérémie DENECHAUD / Julien HERIN &lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Art embarqué]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Thibaut SCHOLAERT / Jean-michel TOURNIER&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[Aimant intelligent]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Louis THEBAULT / Bertrand YVERNAULT&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[Thetweekproject|Machine à café]]&lt;br /&gt;
| Xavier Redon &lt;br /&gt;
| Jean WASILEWSKI / Pierre LETOUSEY&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[Drone autonome]]&lt;br /&gt;
| Xavier Redon &lt;br /&gt;
| Kévin COLAUTTI / Benjamin LEFORT&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[Balise de suivi de polluant]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Maxime MORISSE / Timothée TENEUR&lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Réseau informatique et musique]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Mageshwaran SEKAR	 &lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Motorisation d'un véhicule électrique]]&lt;br /&gt;
| Walid Boughanmi&lt;br /&gt;
| Shuai HE / Quentin SULTANA&lt;br /&gt;
|-&lt;br /&gt;
| P24 [[Dé électronique communiquant]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé&lt;br /&gt;
| Corentin DUPLOUY / Méhdi ZEGGAI&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[Synthetiseur]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé&lt;br /&gt;
| Alexis VINOT / Lu XIA&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[e-theremin ]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé&lt;br /&gt;
| Louis CHAUCHARD / Romain IMBERT&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Dessin 3D|Dessin 3D en environnement immersif]]&lt;br /&gt;
| Laurent Grisoni&lt;br /&gt;
| Alexandre JOUY / Romain LIBAERT&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[Visualisation Open Data]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys / Xavier Redon&lt;br /&gt;
| Elise TISSOT / Beatriz ODRIOZOLA&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[Surveillance passive du sommeil]]&lt;br /&gt;
| Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Jérôme BAILET / Manouk SIMON&lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Robot déformable|Console de contrôle pour robot déformable]]&lt;br /&gt;
| Jérémie Dequidt&lt;br /&gt;
| Ghada ELBEZ / Céline TIRABY&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[RoboCup 2015]]&lt;br /&gt;
| Vincent Coelen / Rochdi Merzouki&lt;br /&gt;
| Sandra HAGE CHEHADE / Cyril SMAGGHE&lt;br /&gt;
|-&lt;br /&gt;
| P36 [[RoboCup 2015 - Pyro Team]]&lt;br /&gt;
| Vincent Coelen / Rochdi Merzouki&lt;br /&gt;
| Thomas DANEL / Romain KRIKORIAN &lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interaction Homme Robot]]&lt;br /&gt;
| Emmanuelle Grangier / Rochdi Merzouki&lt;br /&gt;
| Arnaud DESHAYS / Flavien ROYER&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel à acquérir ==&lt;br /&gt;
&lt;br /&gt;
* P6 : Olimex platine ECG&lt;br /&gt;
&lt;br /&gt;
==  Notes sur les projets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Mini-cahier des charges || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[Brique Lego augmentée]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges très correct.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki à jour. Déjà une réalisation (3 briques). Veillez à équilibrer le travail et à rendre compte systématiquement à l'encadrant.&lt;br /&gt;
| Wiki à jour permettant de suivre l'état d'avancement du travail. Bien !&lt;br /&gt;
| Wiki OK, corrigez les quelques coquilles&lt;br /&gt;
| Rapport avec quelques coquilles, bien rédigé et agréable à lire. Sur le fond ça ressemble un peu à un manuel d'utilisation d'une imprimante 3D.&lt;br /&gt;
| RdV le 23/04/2015&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[Tracabilité hopital|Amélioration de la traçabilité en milieu hospitalier]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges très correct.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki assez complet. Capture des datamatrix avancé. Passez-vous de l'utilitaire &amp;lt;tt&amp;gt;motion&amp;lt;/tt&amp;gt;. Il faut penser à concevoir l'application Web (base de données et interface). Quelles technologies Web comptez-vous utiliser ?&lt;br /&gt;
| Wiki presque à jour. Vous auriez pu mettre un mot de votre réalisation d'un serveur WebSocket. Diminuez la taille de vos captures d'écran pour rendre la lecture du Wiki plus agréable.&lt;br /&gt;
| Très bon Wiki, très bien illustré et très complet (pas grand chose tout de même sur le serveur WebSocket, enfin deux phrases quoi). On apprécie particulièrement l'effort de documentation pour permettre l'utilisation de votre travail.&lt;br /&gt;
| Rapport correct mais avec un manque de recul et de rédaction dans la première partie (présentation des prototypes). Les copies d'écrans pour présenter les diverses version de l'application Web sont lassantes. Heureusement la seconde partie du rapport (bilan et perspectives) est lui rédigé et montre que vous savez synthétiser. Le rapport rend bien compte du travail important réalisé.&lt;br /&gt;
| Vidéo tournée (L. Engels)&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[Vêtements intelligents]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: lightgreen;&amp;quot;&amp;gt;Un cahier des charges à peu près correct.&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Le wiki n'est pas à jour à mi-parcours (rien sur la semaine 5). Des réalisations assez limités pour l'instant (lecture de capteur avec un Arduino et une application Android basique). Des inquiétudes sur la finalisation du projet. Sauf erreur de ma part, aucune information supplémentaire en semaine 7, Wiki toujours au même point. Projet a priori compromis.&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Wiki totalement abandonné, juste quelques lignes sur les 4 premières semaines.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Finalement les informations arrivent dans le Wiki. Un effort d'illustration sur la fin.&lt;br /&gt;
| Confusion bits / octets ! Rapport sans recul, les fonctions de l'application android sont décrites unes à une sans synthèse. Le même travers se retrouve dans la description du matériel mais dans une moindre mesure. Il n'était pas nécessaire de mettre l'intégralité du code en annexe. Ce rapport a tout de même le mérite de décrire le travail effectué.&lt;br /&gt;
| Vidéo maison&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[Malette Arduino éducative I]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges très correct.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Le Wiki est assez mal tenu, pour la partie programme les commentaires sont trop succints, il manque la réalisation de la semaine 5 pour la partie routage. Le travail pour la partie bibliothèque est bien avancé, il reste l'ordonnanceur à faire fonctionner avec les périphériques disponibles. Yuqian Hu envisage de commencer la seconde partie (malette éducative) durant les vacances. Manque de communication avec les encadrants en semaine 7 (pour les deux parties du projet).&lt;br /&gt;
| Le Wiki a été mis à jour en catastrophe. Il contient des indications sur les jeux programmés pour la seconde partie du projet. Pas de cahier des charges négociés avec les encadrants pour cette seconde partie. Rien sur la recherche de systèmes de programmation graphique des Arduino (demandé dans le cahier des charges oral de la seconde partie).&lt;br /&gt;
| Bien qu'une section sur mBlock ait été ajouté le Wiki reste assez pauvre.&lt;br /&gt;
| Le rapport est lui aussi un peu court. Un effort cependant pour rédiger en français.&lt;br /&gt;
| Vidéo tournée (L. Engels)&lt;br /&gt;
|-&lt;br /&gt;
| P10bis [[Malette Arduino éducative II]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges très correct.&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Le Wiki très mal tenu. Aucune rédaction, uniquement des schémas. Rien pour la semaine 5. A mi-parcours le PCB, pourtant basique, n'est même pas routé. Agravation du problème en semaine 7. Projets 10 et 10bis dissociés pour éviter de pénaliser la binôme.&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Wiki totalement abandonné à la semaine 6, documents obsolètes sur le PCB ordonnanceur, rien d'autre. Peu de retours, une première version non satisfaisante du PCB ordonnanceur a été livrée. Des directives envoyées par courriel pour corriger le tir.&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas d'utilisation du Wiki malgré les multiples demandes des encadrants&amp;lt;/span&amp;gt;&lt;br /&gt;
| De trop nombreuses coquilles. Il serait intéressant que vous développiez les raisons pour lesquelles vous avez &amp;quot;manqué de temps&amp;quot; pour le soudage de la carte ordonnanceur. Sur quelle base avez vous décidé de réaliser les jeux présentés dans le rapport. Quel est l'apport pédagogique pour les débutants ? Je retiens le bilan du projet : 3 cartes basiques à réaliser, deux imprimées mais non soudées, une même pas imprimée.&lt;br /&gt;
| RdV non pris&lt;br /&gt;
|-&lt;br /&gt;
| P11 [[Fabricarium - partage simplifié]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges tout à fait correct.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki correct. Les réflexions sur la nature de la boite ont pris beaucoup de temps. Il y a assez peu de réalisations concrètes pour l'instant. Cela dit, avec des efforts, vous devez pouvoir terminer le projet en fournissant un prototype fonctionnel.&lt;br /&gt;
| Wiki presque à jour et un peu trop succint.&lt;br /&gt;
| Wiki ne permettant pas forcément de juger du travail effectué. Le logiciel semble la partie la plus aboutie mais pas de description de ses fonctionnalités.&lt;br /&gt;
| Manque de recul. Système de fonctionnement de la boite décrit fichier par fichier. Partie matériel correcte. Le rapport présente bien le travail effectué mais du coup on reste un peu sur sa faim ...&lt;br /&gt;
| Vidéo par le club vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[Art embarqué]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges très correct.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki mal tenu (manquent deux semaines dans la chronologie). Impossible de juger du travail réalisé. Non respect de la consigne notée, il sera pris en compte dans la notation finale. Inquiètude levée sur la qualité du travail (par les élèves et par l'encadrant) en semaine 6. Wiki mis à jour.&lt;br /&gt;
| Wiki tout à fait à jour même s'il n'est pas super détaillé. Alors comme ça ça marche mieux sous Linux ?&lt;br /&gt;
| Des coquilles, Wiki correct.&lt;br /&gt;
| Bon rapport, bien rédigé, bien illustré. En ce qui me concerne vous avez trouvé le bon équilibre entre synthèse et technique. Rapport intéressant à lire.&lt;br /&gt;
| Vidéo maison&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[Aimant intelligent]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges complet.&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Wiki complet mais avec des coquilles. Une certaine inquiétude sur la possibilité de mener le travail à bien. Ni la conception de l'aimant ni la réalisation de l'application Android ne sont très avancés. Rien n'incite à l'optimisme en semaine 7 (rien sur le Wiki, pas de nouvelle des élèves).&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki presque à jour et plutôt détaillé et illustré. Merci de corriger les nombreuses coquilles. Beaucoup plus d'optimisme sur la réalisation du projet.&lt;br /&gt;
| Trop de coquilles. Wiki pauvre.&lt;br /&gt;
| Trop de coquilles. Un rapport inquiétant, particulièrement la partie où vous décrivez votre &amp;quot;gros&amp;quot; problème. On comprend à la vue de votre structure que vous ne réservez pas la mémoire nécessaire au mot, d'où les problèmes d'effacement constatés. Le rapport rend compte de la quantité de travail effectué mais ce n'est pas forcément positif.&lt;br /&gt;
| Vidéo 23/04/2015&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[Thetweekproject|Machine à café]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges très complet, parfait.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki très détaillé et bien rédigé. Une réalisation bien avancé. Pas d'inquiétude sur la quantité de travail (en particulier durant les vacances). Par contre le projet est très ambitieux, il est toujours difficile de prévoir s'il pourra être mené à bien.&lt;br /&gt;
| Le Wiki commence à être en décalage avec la réalisation, merci de le mettre à jour. Indiquez ce qui est fait et ce qu'il reste à faire.&lt;br /&gt;
| Excellent Wiki.&lt;br /&gt;
| Rapport très bien rédigé. Esthétique curieuse (vous avez écrit votre traitement de texte vous même ?). Graphiques flous. Du recul, la quantité et la qualité exceptionnelles de travail est très bien rendu par le rapport.&lt;br /&gt;
| Vidéo à fournir sous les formats demandés.&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[Drone autonome]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cahier des charges correct.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki très correct, illustré mais avec quelques coquilles. Le matériel est déjà complètement pris en main à mi-parcours. Il reste à concevoir l'infrastructure de contrôle de la route du drône. Il est probable que le projet puisse être mené à bien.&lt;br /&gt;
| Wiki à jour mais les informations sont rares. Essayez de dresser un bilan des réalisation et une liste des tâches qui restent à réaliser. Au vu des retours IRL toutes les difficultés techniques semblent aplanies, confirmez cela dans le Wiki.&lt;br /&gt;
| Wiki correct.&lt;br /&gt;
| Rapport qui se perd parfois un peu trop dans la technique. Très correct dans l'ensemble, bonne rédaction. Le code en annexe ne devrait pas être sous forme d'images mais de simple texte. Il n'est pas utile de donner tout le code en annexe.&lt;br /&gt;
| Vidéo tournée (L. Engels)&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[Balise de suivi de polluant]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Cahier des charges propre et complet avec les étapes à réaliser. Très bien.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Le Wiki serait très correct s'il était à jour (rien sur la semaine 5 contrairement à la consigne). Le Wiki ne dit rien sur l'avancement de réalisation de la balise. C'est un peu inquiétant, un prototype fonctionnel pourra-t-il être présenté en fin de projet ? Une partie des inquiétudes est levée en semaine 6. Oubliez les deux Arduinos, faites fonctionner les deux shields sur le même. Demandez conseil à ce sujet à vos encadrants.&lt;br /&gt;
| Wiki à jour et très détaillé. L'avancé des travaux est parfaitement décrite.&lt;br /&gt;
| Très bon Wiki.&lt;br /&gt;
| Très bon rapport. Juste la bonne dose de technique. Du recul. Rapport intéressant à lire.&lt;br /&gt;
| RdV le 23/04/2015&lt;br /&gt;
|-&lt;br /&gt;
| P21 [[Réseau informatique et musique]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Bon cahier des charges.&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Le Wiki n'est absolument pas tenu à jour. Pas de contact avec l'encadrement depuis 15 jours. Le projet semble abandonné, vous vous dirigez droit vers une catastrophe. Pas mieux en semaine 7 malgré une discussion avec l'élève.&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Le Wiki est un peu mieux tenu mais toujours pas à jour, peu d'informations dans ce Wiki. Pas de rapport oral.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Pas assez de matière dans le Wiki pour suivre le projet.&lt;br /&gt;
| De nombreuses coquilles. Le rapport reste prudement au niveau technique (bibliothèques de lecture de paquets et de production de sons). Comme je le craignais, rien sur la méthode d'appariement des paquets et des sons. Aucune analyse du résultat obtenu. Une interface graphique non prévue au cahier des charges et sans rapport avec le sujet.&lt;br /&gt;
| RdV non pris&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[Motorisation d'un véhicule électrique]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Très bon cahier des charges avec un planning prévisionnel précis.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Excellent Wiki, bien illustré et à jour. Vous semblez rencontrer un problème technique mais vous semblez aussi travailler à sa résolution. Il parait probable que vous soyez entrain de prendre du retard par rapport à votre planning.&lt;br /&gt;
| Wiki pratiquement à jour et détaillé. Les difficultés de mi-parcours semblent avoir été surmontées.&lt;br /&gt;
| Wiki parfaitement tenu à jour.&lt;br /&gt;
| Pour ce que je peux en juger, un excellent rapport pour un très bon travail de modélisation.&lt;br /&gt;
| RdV non pris&lt;br /&gt;
|-&lt;br /&gt;
| P24 [[Dé électronique communiquant]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges correct.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki bien tenu, très bien illustré. Le travail réalisé est bien décrit. Vous semblez rencontrer un problème par rapport à la plateforme de développement. Conntinuez-vous avec un MBED, ou passez-vous sur un Arduino ? Il faut peut être en discuter avec votre encadrant.&lt;br /&gt;
| Wiki mis à jour en catastrophe (sans les illustrations) le 12 avril pour les semaines 6 à 10. Wiki plutôt complet expliquant bien le travail effectué. Il n'est pas encore clair que le projet puisse aboutir.&lt;br /&gt;
| En fin de compte, un Wiki rendant bien compte du travail effectué. Bon coup de collier en fin de projet.&lt;br /&gt;
| Très bon rapport. Du recul. Un bilan plus que correct.&lt;br /&gt;
| RdV le 13/05/2015&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[Synthetiseur]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges assez original.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki bien tenu, très bien illustré, des informations intéressantes. Par contre laissez tomber l'idée farfelue de la Fedora sur vos PC. SMEWS s'installe à merveille sur une Debian. La remarque sur ActiveX me semble totalement hors sujet, que voulez-vous faire avec un ActiveX ? Attention au travail non coordonné entre la partie SMEWS et la partie contrôle de l'électronique analogique. Vous n'utilisez pas le même environnement (C++ pour l'IDE Web et C pur pour SMEWS). Vérifiez que vous pouvez intégrer les deux parties. Attention aussi concernant les PCB que vous souhaitez réaliser. Vu les délais et les problèmes de réalisation de PCB, le routage doit être fait au plus tôt (dans la semaine de la rentrée). Beaucoup de points délicats, la réalisation d'un prototype fonctionnel n'est pas assurée. Des efforts supplémentaires sont nécessaires.&lt;br /&gt;
| Wiki pratiquement à jour, bien illustré, correctement détaillé. Etat d'avancement très satisfaisant mais encore du travail à effectuer.&lt;br /&gt;
| Wiki correct.&lt;br /&gt;
| Le rapport frôle l'overdose technique mais sans franchement y tomber. Rapport riche. Vous faites preuve de recul dans la dernière partie. Très correct.&lt;br /&gt;
| RdV le 22/04/2015&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[e-theremin ]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cahier des charges en dernière limite.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki très correct, très bien illustré. Vous semblez rencontrer un problème de traitement de signal. Veuillez le caractériser précisément et consulter un de vos enseignants dans le domaine. Si vous devez concevoir un PCB pour la partie électronique analogique faite le de suite (dans la semaine de la rentrée).&lt;br /&gt;
| Le Wiki est plutôt à jour mais les informations données sont un peu maigres. Votre circuit fonctionne-t-il ? Pouvez-vous décrire plus précisément le développement de l'application X11 ?&lt;br /&gt;
| Wiki correct. Travail effectué et restant à réaliser décrits.&lt;br /&gt;
| Le rapport est correct. Bien rédigé, agréable à lire. Par contre la description de votre principal échec, le calcul de la fréquence sur l'arduino laisse pensif. Votre algorithme semble correct. Quel est le problème rencontré ? Ce qui est sur c'est que mettre un printf vers le port série dans la boucle de calcul n'est pas une bonne idée. Vous ralentissez votre programme de façon catastrophique.&lt;br /&gt;
| RdV le 22/04/2015&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[Dessin 3D|Dessin 3D en environnement immersif]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cahier des charges correct en dernière limite.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki très correct, illustré, travail effectué très bien décrit. Une première application autonome testée. Si j'ai bien compris il vous faut encore inclure cette application à Unity.&lt;br /&gt;
| Wiki un peu en décalage mais avec des informations détaillées. Une vidéo de démonstration, ce n'est pas particulièrement spectaculaire mais au moins cela montre qu'un prototype existe. Vous en êtes où actuellement ? Qu'on donné les tests ?&lt;br /&gt;
| Rien à redire sur le Wiki final. Bien !&lt;br /&gt;
| Le rapport est un peu décevant. Certes il est rédigé. Mais il y a des redites (sur le serveur UDP, sur l'utilisation de C#). La lecture donne une désagréable sensation de tâtonnement durant le projet. Certains problèmes rencontrés (e.g. lenteur d'unity avec quelques milliers de sphères) ne sont pas élucidés. &lt;br /&gt;
| Vidéo maison&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[Visualisation Open Data]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un cahier des charges.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki à jour, peu illustré, en particulier un schéma du système à réaliser serait le bienvenu. Le problème de la liste des gares avec le changement de syntaxe semble traité un peu rapidement. Vous semblez avoir tous les éléments pour un premier prototype, mettez le en place rapidement.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; Le Wiki n'est pas à jour. Effort important des encadrants pour remettre ce projet sur les rails. Aucune production des élèves à deux semaines de la fin du projet malgré une feuille de route précise. &amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| RdV non pris&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[Surveillance passive du sommeil]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cahier des charges très complet. Parfait.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Wiki complet et clair. Le bilan à mi-parcours est une bonne idée, il pourrait englober votre avancement sur le programme Android. Un schéma du fonctionnement global du système serait le bienvenu. Vous semblez être dans les temps pour présenter un prototype fonctionnel en fin de projet.&lt;br /&gt;
| Le Wiki n'est pas vraiment à jour. Description précise du travail. &lt;br /&gt;
| Des coquilles. Finalement très précis sur le travail effectué.&lt;br /&gt;
| Le rapport pourrait être un peu plus synthétique mais il est très correctement rédigé.&lt;br /&gt;
| RdV non pris&lt;br /&gt;
|-&lt;br /&gt;
| P34 [[Robot déformable|Console de contrôle pour robot déformable]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cahier des charges très correct.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Un wiki très complet et très précis. Par contre certains des problèmes que vous rencontrez semblent pouvoir se résoudre facilement. Essayez de solliciter vos encadrants quand cela vous arrive. En particulier le problème de port série que vous décrivez semble être facile à corriger. &lt;br /&gt;
| Wiki à jour, détaillé et vous avez fait un réel effort de correction des coquilles. Sur le fond vous parlez surtout des absences de votre encadrant ou de la lenteur des mises à jour, pas passionnant.&lt;br /&gt;
| Wiki utilisé de façon très administrative.&lt;br /&gt;
| Contexte très bien introduit. Bonne rédaction. Par contre quand vous commencez à parler des problèmes rencontrés ça se gâte. Par exemple page 11, dire le problème est complexe parce qu'il faut manipuler des boucles, des tableaux et des structures est, au mieux, très maladroit. Page 12, parler de synchronisation par délais n'est pas très bienvenu non plus. Les programmes en annexe sont la totalité de ce que vous avez écrit ?&lt;br /&gt;
| Vidéo avec Jérémie Dequidt&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[RoboCup 2015]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Trés bon cahier des charges.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Excellent Wiki très précis et bien illustré. Par contre le travail décrit semble être assez théorique (algorithmes). Un test sur le robotino est-il prévu pour valider la correction des algorithmes ?&lt;br /&gt;
| Wiki toujours très détaillé et illustré, pas tout à fait à jour.&lt;br /&gt;
| Très bonne utilisation du Wiki.&lt;br /&gt;
| Très bon rapport.&lt;br /&gt;
| Vidéo maison&lt;br /&gt;
|-&lt;br /&gt;
| P36 [[RoboCup 2015 - Pyro Team]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Parfait.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Excellent Wiki, très précis, très bien illustré. Le travail semble être déjà très avancé.&lt;br /&gt;
| Toujours excellent, pratiquement à jour.&lt;br /&gt;
| Excellent Wiki. On remarque qu'il n'est écrit que par l'un des deux élèves.&lt;br /&gt;
| Très bon rapport.&lt;br /&gt;
| Vidéo à rendre aux formats demandés&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[Interaction Homme Robot]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;lightgreen&amp;quot;&amp;gt;Un cahier des charges minimal en dernière limite.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Wiki à jour, peu illustré. A vu de néophyte, 5 semaines pour arriver à envoyer les premiers ordres au Nao via le serveur TCP intégré semble être un délai un peu long. Il vous reste la moitié du projet pour obtenir des résultats. Inquiétudes levées après discussion avec Flavien ROYER. Une vidéo de démonstration montre une nette progression dans le projet. Probable dissociation des notes.&lt;br /&gt;
| Wiki à jour, travail correctement décrit.&lt;br /&gt;
| Wiki utilisé.&lt;br /&gt;
| Rapport très court. La réalisation semble un peu légère.&lt;br /&gt;
| RdV non pris&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=D%C3%A9_%C3%A9lectronique_communiquant&amp;diff=21173</id>
		<title>Dé électronique communiquant</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=D%C3%A9_%C3%A9lectronique_communiquant&amp;diff=21173"/>
				<updated>2015-05-11T21:56:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cahier des charges =&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
Dans une époque où la technologie concerne le mode de vie de presque tout le monde, la plupart des gens ont tendance à se tourner vers les nouvelles technologies (smartphone, ordinateur) pour se divertir, et ainsi délaisser les anciens jeux de société. Afin de faire revivre ce genre de jeu, nous avons décidé de revisiter un pilier du jeu de société : le dé à jouer.&lt;br /&gt;
&lt;br /&gt;
=== Objectif du Projet ===&lt;br /&gt;
L'objectif de ce projet est de réaliser un dé à jouer programmable du même type que les [http://www.futurocube.com/ futurocubes].&lt;br /&gt;
&lt;br /&gt;
=== Idées de fonctionnalités === &lt;br /&gt;
Voici quelques idées d'applications qu'on pourrait mettre en place :&lt;br /&gt;
* Dé à jouer classique : chiffre aléatoire de 1 à 6&lt;br /&gt;
* Jeu du morpion (Tic Tac Toe)&lt;br /&gt;
* SNAKE fonctionnant avec l'accéléromètre&lt;br /&gt;
* Eclairage &amp;quot;d'ambiance&amp;quot; avec variation aléatoire des couleurs&lt;br /&gt;
* Modélisation d'un Rubik's Cube 3x3&lt;br /&gt;
* Jeu de mémoire couleur/son (comme le jeu Simon)&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel - utilité ===&lt;br /&gt;
Nous allons nous baser sur :&lt;br /&gt;
* un microcontrôleur de type MBED (ARM Cortex M3) [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 2/2/2015&amp;lt;/span&amp;gt;] : Cerveau du dé - Sons/bruitages&lt;br /&gt;
&lt;br /&gt;
La documentation est disponible [http://developer.mbed.org/platforms/mbed-LPC1768/#schematics-and-data-sheets ici].&lt;br /&gt;
Les programmes implémentés seront codés en C/C++.&lt;br /&gt;
&lt;br /&gt;
Ensuite, les composants suivants doivent être intégrés :&lt;br /&gt;
* LED RGB (54 LEDs) : Elles seront multiplexés à l'aide de transistors. [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;9 LED Rouges/Jaunes fournies le 4/2/2015&amp;lt;/span&amp;gt;] 54 x [http://fr.farnell.com/avago-technologies/asmb-mtb1-0a3a2/led-rgb-plcc4-surface-noire/dp/2401106 LED] [&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;100 LEDs RGB commandées chez Farnell le 18/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
* 18 transistors NPN [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;3 fournis le 4/2/2015&amp;lt;/span&amp;gt;] &lt;br /&gt;
&lt;br /&gt;
* 18 x [http://fr.farnell.com/on-semiconductor/bc548brl1g/transistor-npn-30v-100ma-to-92/dp/2317545 Transistor] [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;20 BC548BRL1G commandées chez Farnell fournies le 11/3/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 18 x [http://fr.farnell.com/diodes-inc/bc848b-7-f/transistor-npn-sot23/dp/1773620 Transistor CMS] [&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;100 BC848B-7-F commandées chez Farnell le 18/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
* Résistances : à voir avec les encadrants et en fonction des tests (Savoir si on doit en placer une à l'anode ou une à chaque cathode)&lt;br /&gt;
* Accéléromètre : Orientation dans l'espace et réveil de l'appareil après la détection d'un mouvement. [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; fourni le 11/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Alimentation : Rechargeable via usb.&lt;br /&gt;
* 6 faces &amp;quot;tactiles&amp;quot; via le centre de chaque face : Possible par résistances capacitives, touches tactiles (SparkFun Touch Shield), boutons poussoirs (Tests à réaliser pour déterminer la meilleure méthode).&lt;br /&gt;
&lt;br /&gt;
== Étapes du projet ==&lt;br /&gt;
=== Étape 1 ===&lt;br /&gt;
* Choix des jeux et fonctionnalités à intégrer au dé en tenant compte des contraintes matérielles&lt;br /&gt;
* Aperçu du matériel disponible et nécessaire, puis choix des composants&lt;br /&gt;
* Élaboration du schéma électronique à adopter&lt;br /&gt;
* Découverte de la plateforme MBED&lt;br /&gt;
&lt;br /&gt;
=== Étape 2 ===&lt;br /&gt;
Cette étape occupera la plus grande partie de la durée du projet.&lt;br /&gt;
* Réalisation du code des fonctionnalités à intégrer sur la plateforme MBED&lt;br /&gt;
* Réalisation des circuits électroniques nécessaires via Altium Designer&lt;br /&gt;
* Début du montage du cube&lt;br /&gt;
&lt;br /&gt;
=== Étape 3 ===&lt;br /&gt;
* Montage final du cube&lt;br /&gt;
* Réalisation de programmes optionnels s'il reste du temps (fonctionnalités compliquées à implémenter ou pensées plus tard dans le projet)&lt;br /&gt;
* Tests des fonctionnalités sur le matériel&lt;br /&gt;
&lt;br /&gt;
= Avancée du projet =&lt;br /&gt;
== Semaine 1 (du 26/01/2015 au 01/02/2015) == &lt;br /&gt;
[[Fichier:Contrôle_DIODES.jpg|130px|thumb|Schéma multiplexage LED]]&lt;br /&gt;
Nous avons surtout porté nos recherches sur du matériel électronique spécifique, notamment pour l'aspect &amp;quot;tactile&amp;quot; de notre cube. En effet, il est possible d'utiliser les techniques suivantes :&lt;br /&gt;
* Résistance et capacité : On utilise une simple résistance et un métal conducteur. En touchant celui-ci avec notre doigt, on le transforme en capacité. On peut voir le principe [https://skyduino.wordpress.com/2012/06/02/arduino-faire-une-touche-tactile-avec-une-simple-resistance/ ici].&lt;br /&gt;
* Résistance capteur de pression : Prête à être utilisée mais assez chère. Il y a bien d'autres alternatives.&lt;br /&gt;
* [https://www.sparkfun.com/products/12013 Touch Shield] : A voir avec l'intégration des LED.&lt;br /&gt;
* Boutons réalisés sur le principe du [https://www.sparkfun.com/products/7835 Button Pad] à raison d'un par face : Dans le pire des cas ...&lt;br /&gt;
&lt;br /&gt;
Puis nous nous sommes intéressés à la connexion des LEDs. Elles seront au nombre de 54, soit 9 par face, et en plus, ce sera des LED RGB.&lt;br /&gt;
Nous avons trouvé pour cela une solution de multiplexage à l'aide de transistors NPN.&lt;br /&gt;
Voici un petit schéma du branchement possible sur une face avec 9 LEDs RGB : &lt;br /&gt;
Il sera possible de le porter à plus grande échelle par la suite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le principe de fonctionnement : On alimente une colonne de LED par l'anode commune. On détermine ensuite laquelle sera reliée à la masse et s'allumera donc. Pour cela on combine les bases et les collecteurs. Il faut activer la base (mettre à 1) correspondant à la colonne de la LED à allumer, et mettre à la masse (mettre à 0) la ligne du collecteur correspondant. Ainsi, une seule LED sera reliée à la masse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de tester les solutions du &amp;quot;tactile&amp;quot; et le branchement des LEDs.&lt;br /&gt;
&lt;br /&gt;
Nous avons également discuté avec nos encadrants sur le matériel et ses limites, c'est-à-dire le tactile, la connexion des LEDs, l’accéléromètre (disponible à Polytech), le MBED, les sons (réalisables avec le MBED) et le côté alimentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 (du 02/02/2015 au 08/02/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons surtout porté nos recherches sur la méthode de multiplexage des LEDs. Faute d'avoir des LEDs RGB, nous avons testé le multiplexage selon le schéma précédent avec 3 LEDs simples, soit une LED RGB. Nous avons réalisé le test d'allumer 1 seule des LEDs (pour avoir une couleur) puis 2 (mélange de couleurs).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test3LED1.JPG|130px|thumb|left|Test 1 multiplexage d'une LED RGB (avec 3 LEDs)]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test3LED2.JPG|130px|thumb|centre|Test 2 multiplexage d'une LED RGB (avec 3 LEDs)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé le branchement afin d'obtenir une ligne de LEDs RGB selon le schéma précédant, soient 3 fois 3 LEDs simples. On peut voir ci-dessous le branchement et le résultat du test :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:TestMUX1.JPG|130px|thumb|left|Branchement d'une ligne de 3 LEDs RGB (9 LEDs basiques)]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:TestMUX2.PNG|130px|thumb|centre|Résultat du multiplexage d'une ligne de LEDs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de tester le multiplexage des LEDs sur une face, et d'aborder le côté &amp;quot;tactile&amp;quot; du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 (du 09/02/2015 au 15/02/2015) ==&lt;br /&gt;
&lt;br /&gt;
Suite aux résultats du multiplexage des LEDs, nous avons commencé la réalisation du codage de l'allumage de celles-ci selon le schéma complet suivant :&lt;br /&gt;
&lt;br /&gt;
Parallèlement, nous avons porté nos recherches sur l'accéléromètre ADXL335. Nous avons effectué quelques tests pour déterminer le fonctionnement exact. &lt;br /&gt;
Nous avons récupéré les valeurs de celui-ci sur les broches analogiques du MBED et à l'aide de la fonction read() qui renvoie logiquement une valeur entre 0.0 et 1.0. &lt;br /&gt;
Nous avons codé le petit programme de test suivant pour tester selon l'axe Y: &lt;br /&gt;
[[Fichier:54MUX.JPG|160px|thumb|left|Schéma complet du multiplexage]]&lt;br /&gt;
''&lt;br /&gt;
    DigitalOut myled1(LED1);&lt;br /&gt;
    DigitalOut myled2(LED2);&lt;br /&gt;
    DigitalOut myled3(LED3);&lt;br /&gt;
    DigitalOut myled4(LED4);&lt;br /&gt;
    DigitalOut verif (p5);&lt;br /&gt;
    DigitalOut verif2 (p30);&lt;br /&gt;
    AnalogIn x(p15);   // 0.4&amp;lt;X&amp;lt;0.6&lt;br /&gt;
    AnalogIn y(p16);   // 0.4&amp;lt;Y&amp;lt;0.6&lt;br /&gt;
    AnalogIn z(p17);   // 0.4&amp;lt;Z&amp;lt;0.6&lt;br /&gt;
    int main() {&lt;br /&gt;
        while(1) {&lt;br /&gt;
            wait(0.2);&lt;br /&gt;
            float m1 = x.read();&lt;br /&gt;
            float m2 = y.read();&lt;br /&gt;
            float m3 = z.read();&lt;br /&gt;
        &lt;br /&gt;
            if (m2&amp;gt;0.5) myled1=1; else myled1=0;&lt;br /&gt;
            if (m2&amp;gt;0.52) myled2=1; else myled2=0;&lt;br /&gt;
            if (m2&amp;gt;0.54) myled3=1; else myled3=0;&lt;br /&gt;
            if (m2&amp;gt;0.56) myled4=1; else myled4=0;&lt;br /&gt;
            if (m2&amp;gt;0.58) verif=1; else verif=0;&lt;br /&gt;
            if (m2&amp;gt;0.6) verif2=1; else verif2=0;}}&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut voir le résultat ici :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Testaccel.avi]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 (du 16/02/2015 au 22/02/2015) ==&lt;br /&gt;
Durant cette semaine, nous avons observé le comportement de l'accéléromètre via l'utilitaire Minicom et la liaison série entre le microcontrôleur et le PC. Nous avons ainsi vérifié le fonctionnement de l'accéléromètre selon chaque axe, et ainsi confirmer les pistes observées la semaine dernière. Nous avons ainsi pu réfléchir à une solution tactile pour notre dé.&lt;br /&gt;
&lt;br /&gt;
Après nos recherches sur internet, nous avons pu voir que peu de solutions sont disponibles pour notre MBED.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera ainsi d'approfondir nos recherches sur cette solution tactile.&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 (du 23/02/2015 au 01/03/2015) ==&lt;br /&gt;
Pendant cette semaine, nous avons poursuivi nos recherches sur la partie tactile de notre cube. Nous avons notamment réfléchi à 2 solutions :&lt;br /&gt;
* L'utilisation du [https://www.sparkfun.com/products/12013 SparkFun Touch Shield], que nous avons pu nous procurer. Néanmoins, ce pad est spécialement conçu pour être connecté sur Arduino Uno. Il n'est donc pas évident de l'adapter à notre MBED.&lt;br /&gt;
* La fabrication de touches tactiles &amp;quot;Do It Yourself&amp;quot; sur [https://skyduino.wordpress.com/2012/06/02/arduino-faire-une-touche-tactile-avec-une-simple-resistance/ ce modèle]. Néanmoins, le code de cette solution est fait pour fonctionner sous Arduino, il faudrait donc réfléchir à l'adapter à notre MBED.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'emprunter une carte Arduino Uno, afin de tester ces deux solutions, et envisager de les porter sur notre MBED.&lt;br /&gt;
&lt;br /&gt;
Le code des touches tactiles &amp;quot;Do it Yourself&amp;quot; a parfaitement marché sur l'arduino.&lt;br /&gt;
Nous avons étudié la structure de plus près. A l'aide des fonctions disponibles sur MBED, nous avons plus ou moins suivi l'idée de ce code mais en le transcrivant pour le MBED.&lt;br /&gt;
Après plusieurs versions testées, rien ne fonctionnait vraiment sauf la suivante :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
   include &amp;quot;mbed.h&amp;quot;&lt;br /&gt;
   DigitalOut led(LED1);&lt;br /&gt;
   DigitalOut boom (p6);&lt;br /&gt;
   DigitalInOut button (p21);&lt;br /&gt;
   Serial pc(USBTX, USBRX);&lt;br /&gt;
   //Seuil de détection &lt;br /&gt;
   const uint16_t THRESHOLD = 50;&lt;br /&gt;
   uint8_t cycles;&lt;br /&gt;
   void touch_measure(){&lt;br /&gt;
     // Décharge la capacité en contact avec la broche &lt;br /&gt;
     button.write(0);         // Place la broche à LOW&lt;br /&gt;
     button.output();         // Place la broche en sortie&lt;br /&gt;
     wait(1); // Attend pour être sur que la capacité est déchargé&lt;br /&gt;
     // Place la broche en entrée, sans résistance de pull-up ! &lt;br /&gt;
     // (La résistance de &amp;gt;1M ohms externe servira de résistance de pull-up) &lt;br /&gt;
     button.mode(PullNone);&lt;br /&gt;
     // Mesure le nombre de cycles CPU requis avant que la broche ne commute &lt;br /&gt;
     for(cycles = 0; cycles &amp;lt; 256; ++cycles)&lt;br /&gt;
     {&lt;br /&gt;
       if (button.read()) break; // Si la broche a commuter on quitte la boucle&lt;br /&gt;
     }&lt;br /&gt;
     // Re-décharge la capacité en contact avec la broche&lt;br /&gt;
     // afin d'éviter tout parasitages d'une autre mesure sur une autre broche.&lt;br /&gt;
     // Dans le cas contraire il serait impossible de manipuler plus d'une touche &amp;quot;tactile&amp;quot; &lt;br /&gt;
     button.write(0);&lt;br /&gt;
     button.output();&lt;br /&gt;
     // Retourne le résultat &lt;br /&gt;
     //return cycles;}&lt;br /&gt;
   int main() {&lt;br /&gt;
       // Test si la &amp;quot;touche&amp;quot; a été appuyé ou non &lt;br /&gt;
       while (1) {&lt;br /&gt;
           if(cycles &amp;gt; THRESHOLD)&lt;br /&gt;
           led = 1;&lt;br /&gt;
       else&lt;br /&gt;
           led = 0;&lt;br /&gt;
       wait(0.5);&lt;br /&gt;
      //pc.printf(&amp;quot;%d  &amp;quot;,cycles);&lt;br /&gt;
       touch_measure(); }  }&lt;br /&gt;
   ''&lt;br /&gt;
&lt;br /&gt;
En branchant directement le fil &amp;quot;à toucher&amp;quot; sur la masse, la led s'allumait (ce qui devait se passer quand on touche le fil). Cependant, cela ne marchait pas à tous les coups. Voici une vidéo qui montre ce qui se passe :&lt;br /&gt;
[[Fichier:Test_tactile.avi‎]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc demandé à M. Vantroys par rapport au code à utiliser et pourquoi cela ne marchait pas en transcrivant simplement le code sur MBED. &lt;br /&gt;
En fait, les fonctions utilisées dans le code du tutoriel étaient du langage très bas niveau pour l'Arduino. En effet, cela permet de toucher directement les ports du microprocesseur et donc d'avoir un temps d’exécution très court. Or, en utilisant les fonctions &amp;quot;de base&amp;quot; du MBED et ne sachant pas le code de celle-ci, on peut déduire que le temps d’exécution n'était pas aussi rapide et empêchait donc le bon fonctionnement de comptage des cycles et évaluation du temps de charge/décharge de la capacité.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la prochaine séance sera de se décider sur la solution tactile de notre cube, ou sur une alternative à adopter en cherchant le code bas niveau du MBED.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 (du 09/03/2015 au 15/03/2015) ==&lt;br /&gt;
Lors de cette sixième semaine, nous avons continué à travailler sur la solution tactile à adopter, et nous avons spécialement étudié la manipulation des ports du microprocesseur du MBED, afin de pouvoir étudier l'utilisation de touches tactiles &amp;quot;Do It Yourself&amp;quot;. Après de nombreuses recherches et quelques essais infructueux, nous nous sommes rendus compte que cette solution aurait été trop compliqué et encombrante à coder. Nous étions prêts à nous orienter vers une solution alternative. Nous avons aussi rendu la carte Arduino Uno qui nous avait été fournie.&lt;br /&gt;
&lt;br /&gt;
Aussi, notre commande de transistors BC548 est arrivée cette semaine, nous avons pu nous les procurer, en vue de l'élaboration de nos PCB.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de trouver la solution alternative à adopter pour l'interaction entre l'utilisateur et le dé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 (du 16/03/2015 au 22/03/2015) ==&lt;br /&gt;
Pendant cette semaine, une solution concernant l'interaction Utilisateur-Dé nous est arrivée : nous avons pu nous procurer un [https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/overview Adafruit MPR121 Breakout Board à 12 touches], et un autre à 8 touches. Pour sa simplicité de branchement, nous avons décidé d'utiliser celui à 12 touches. Il nous permettra de créer 6 touches tactiles, une pour chaque face. Nous connecterons cette board via les ports I²C du microcontrôleur.&lt;br /&gt;
&lt;br /&gt;
De plus, M. Boé nous a suggéré d'utiliser un accéléromètre permettant d'influer sur la consommation énergétique du microprocesseur. Il nous a ainsi fourni l'accéléromètre ADXL345, pouvant communiquer avec le microprocesseur via deux protocoles : SPI ou I²C. Nous avons tout d'abord décidé d'utiliser le protocole I²C, mais le programme-test ne fonctionnait pas comme on le voulait. L'impression des valeurs de l'accéléromètre devait se faire via une liaison série vers le PC, mais rien ne se passait à l'écran.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de terminer la configuration de l'accéléromètre, et de configurer la board tactile.&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 (du 23/03/2015 au 29/03/2015) ==&lt;br /&gt;
Nous avons continué la configuration de l'accéléromètre, en utilisant des bibliothèques obtenues sur le site de développement MBED. N'ayant pas réussi à résoudre le problème de la communication I²C, nous avons décidé d'utiliser les ports SPI pour obtenir les valeurs, avec une bibliothèque paramétrant l'utilisation des ports SPI pour l'accéléromètre. Le code suivant nous a permis d'afficher les valeurs reçues sur les ports SPI via la liaison série :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;ADXL345.h&amp;quot;&lt;br /&gt;
    ADXL345 accelerometer(p5, p6, p7, p8);&lt;br /&gt;
    Serial pc(USBTX, USBRX);&lt;br /&gt;
    int main() {&lt;br /&gt;
        int readings[3] = {0, 0, 0};&lt;br /&gt;
        pc.printf(&amp;quot;Starting ADXL345 test...\n&amp;quot;);&lt;br /&gt;
        pc.printf(&amp;quot;Device ID is: 0x%02x\n&amp;quot;, accelerometer.getDevId());&lt;br /&gt;
        //Go into standby mode to configure the device.&lt;br /&gt;
        accelerometer.setPowerControl(0x00);&lt;br /&gt;
        //Full resolution, +/-16g, 4mg/LSB.&lt;br /&gt;
        accelerometer.setDataFormatControl(0x0B);&lt;br /&gt;
        //3.2kHz data rate.&lt;br /&gt;
        accelerometer.setDataRate(ADXL345_3200HZ);&lt;br /&gt;
        //Measurement mode.&lt;br /&gt;
        accelerometer.setPowerControl(0x08);&lt;br /&gt;
        while (1) {&lt;br /&gt;
            wait(0.1);&lt;br /&gt;
            accelerometer.getOutput(readings);&lt;br /&gt;
            //13-bit, sign extended values.&lt;br /&gt;
            pc.printf(&amp;quot;%i, %i, %i\n&amp;quot;, (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi configuré la board tactile. Elle communique avec le microcontrôleur par les ports I²C. Avec une bibliothèque obtenue sur le site de développement MBED, nous avons réalisé un programme-test qui permet d'allumer les LEDs du microcontrôleur en fonction des touches actives ou non. Voici l'algorithme général de ce programme, exécuté en boucle :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //led1, led2, led3 et led4 initialement à 0&lt;br /&gt;
 Si (touche1 == 1) alors led4=1;&lt;br /&gt;
 Si (touche2 == 1) alors led3=1;&lt;br /&gt;
 Si (touche3 == 1) alors {led3=1; led4=1;}&lt;br /&gt;
 Si (touche4 == 1) alors led2=1;&lt;br /&gt;
 Si (touche5 == 1) alors {led2=1; led4=1;}&lt;br /&gt;
 Si (touche6 == 1) alors {led2=1; led3=1;}&lt;br /&gt;
 Si (touche7 == 1) alors {led2=1; led3=1; led4=1;}&lt;br /&gt;
 Si (touche8 == 1) alors led1=1;&lt;br /&gt;
 Si (touche9 == 1) alors {led1=1; led4=1;}&lt;br /&gt;
 Si (touche10 == 1) alors {led1=1; led3=1;}&lt;br /&gt;
 Si (touche11 == 1) alors {led1=1; led3=1; led4=1;}&lt;br /&gt;
 Si (touche12 == 1) alors {led1=1; led2=1;}&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de commencer l'élaboration des cartes PCB, et de paramétrer l'utilisation d'un élément piézoélectrique pour l'émission de sons.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 (du 30/03/2015 au 05/04/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons commencé à créer une carte PCB avec le logiciel Altium Designer. Nous avons tout d'abord créé la carte permettant le multiplexage des LEDs. Nous avons placé sur cette carte 18 transistors BC548, 18 résistances, ainsi qu'un décodeur 3 vers 8 74LS138, permettant d'avoir une sortie à l'état bas et les 7 autres à l'état haut, selon [http://ecee.colorado.edu/~mcclurel/sn74ls138rev5.pdf cette datasheet]. Les pistes se feront des 2 côtés de la carte. A l'issue de cette semaine, nous avons pu envoyer notre modèle au service électronique pour élaboration. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schematic drive LED.png|130px|thumb|Schématic multiplexage LED]]&lt;br /&gt;
[[Fichier:Face 1 drive LED.png|130px|thumb|multiplexage LED Face 1]]&lt;br /&gt;
[[Fichier:Face 2 drive LED.png|130px|thumb|multiplexage LED Face 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, nous avons travaillé sur l'émission d'une gamme de sons par une pièce piézoélectrique. Sur le site de développement MBED, nous avons pu trouver une bibliothèque permettant l'élaboration d'une note et de sa durée, et par extension l'élaboration d'une mélodie.&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;mbed.h&amp;quot;&lt;br /&gt;
    #include &amp;lt;Sound.h&amp;gt;&lt;br /&gt;
    Sound sound(p21, p10);&lt;br /&gt;
    const Sound::sound_t WESTMINSTER[] =     {&lt;br /&gt;
        //   hanon siji 0:b(flat)   1:tujo  2:#(sharp)&lt;br /&gt;
        //   |  C1 - B9 kan deno onkai(Gx ha 9x ni okikae te siji)  0xFF=end data&lt;br /&gt;
        //   |  |   time (1/1[ms]/count)   &lt;br /&gt;
        //   |  |   |    envelope(yoin) (1/1 [ms]/count)&lt;br /&gt;
        //   |  |   |    |&lt;br /&gt;
            {1,0xC5,300,500},&lt;br /&gt;
            {1,0xD5,300,500},&lt;br /&gt;
            {1,0xE5,300,500},&lt;br /&gt;
            {1,0xF5,300,500},&lt;br /&gt;
            {1,0x85,300,500},&lt;br /&gt;
            {1,0x95,300,500},&lt;br /&gt;
            {1,0xA5,300,500},&lt;br /&gt;
            {1,0xB5,300,500},&lt;br /&gt;
            {1,0x75,300,500},&lt;br /&gt;
            {1,0x65,300,500},&lt;br /&gt;
            {1,0x55,300,500},&lt;br /&gt;
            {1,0xFF,1000,0},    // end&lt;br /&gt;
    };&lt;br /&gt;
    int main() {&lt;br /&gt;
         //---------------------&lt;br /&gt;
         // enso data no settei&lt;br /&gt;
         //---------------------&lt;br /&gt;
         // sound.sound_enso(&amp;quot;/local/enso.txt&amp;quot;);     // mbed local file data &amp;quot;enso.txt&amp;quot; load (sita ni data no rei wo oite oku)&lt;br /&gt;
        sound.sound_enso((Sound::sound_t*)WESTMINSTER);  &lt;br /&gt;
        //---------------------------------------------------&lt;br /&gt;
        // output tone&lt;br /&gt;
        //---------------------------------------------------&lt;br /&gt;
        // tone1 &lt;br /&gt;
        Sound::sound_t oto = {1,0x95,200,100};&lt;br /&gt;
        sound.sound_sound(oto);&lt;br /&gt;
        while(sound.sound_sound() == true){}       &lt;br /&gt;
        // tone2&lt;br /&gt;
        oto.hanon = 1; oto.onkai = 0xA5; oto.time = 2000; oto.envelope = 1000;&lt;br /&gt;
        sound.sound_sound(oto);&lt;br /&gt;
        while(sound.sound_sound() == true){}&lt;br /&gt;
        //---------------&lt;br /&gt;
        // output melody&lt;br /&gt;
        //--------------&lt;br /&gt;
        sound.sound_enso(true);&lt;br /&gt;
        while(1) {&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous travaillerons ultérieurement sur la sélection de notes à adopter.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de continuer l'élaboration des cartes électroniques, ainsi de commencer le développement des programmes finaux.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 (du 06/04/2015 au 12/04/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons continué l'élaboration des circuits électroniques. Nous avons commencé à concevoir les faces, soit les cartes contenant 9 LEDs RGB. Nous avons eu des LEDs CMS, nous avons donc dû créer ces composants sur Altium Designer.&lt;br /&gt;
&lt;br /&gt;
Parallèlement nous avons commencé à travailler sur les programmes finaux. Nous avons développé un programme permettant d'allumer une LED une par une, selon la couleur voulue, et selon le schéma suivant :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;mbed.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;Random.h&amp;quot;&lt;br /&gt;
    BusOut myled(LED4,LED3,LED2,LED1);&lt;br /&gt;
    DigitalOut anode[9]={p12,p13,p14,p15,p16,p17,p18,p19,p20};&lt;br /&gt;
    BusOut base_couleur(p30,p29,p28);&lt;br /&gt;
    BusOut collecteur(p24,p23,p22);&lt;br /&gt;
    void allume_LED(int led, int face, char couleur){&lt;br /&gt;
        for (int i=0;i&amp;lt;9;i++) anode[i]=0;&lt;br /&gt;
        // sélection anode (&amp;quot;face&amp;quot;)&lt;br /&gt;
        if ((led == 1)||(led == 4)||(led == 7)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[0]=1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[3] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[6] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        else if ((led == 2)||(led == 5)||(led == 8)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[1] = 1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[4] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[7] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        else if ((led == 3)||(led == 6)||(led == 9)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[2] = 1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[5] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[8] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        // sélection collecteur (&amp;quot;ligne&amp;quot; de LEDs)&lt;br /&gt;
        if ((face == 1)||(face == 3)||(face == 5)){&lt;br /&gt;
            if ((led &amp;gt; 0) &amp;amp;&amp;amp; (led &amp;lt; 4)) collecteur.write(0);&lt;br /&gt;
            else if ((led &amp;gt; 3) &amp;amp;&amp;amp; (led &amp;lt; 7)) collecteur.write(1);&lt;br /&gt;
            else if ((led &amp;gt; 6) &amp;amp;&amp;amp; (led &amp;lt; 10)) collecteur.write(2);&lt;br /&gt;
        }&lt;br /&gt;
        else if ((face == 2)||(face == 4)||(face == 6)){&lt;br /&gt;
            if ((led &amp;gt; 0) &amp;amp;&amp;amp; (led &amp;lt; 4)) collecteur.write(3);&lt;br /&gt;
            else if ((led &amp;gt; 3) &amp;amp;&amp;amp; (led &amp;lt; 7)) collecteur.write(4);&lt;br /&gt;
            else if ((led &amp;gt; 6) &amp;amp;&amp;amp; (led &amp;lt; 10)) collecteur.write(5);&lt;br /&gt;
        }&lt;br /&gt;
        //sélection couleur (base)&lt;br /&gt;
        if (couleur == 'r') base_couleur.write(4);&lt;br /&gt;
        else if (couleur == 'g') base_couleur.write(2);&lt;br /&gt;
        else if (couleur == 'b') base_couleur.write(1);&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
A partir de ce programme, nous avons conçu une fonction affichant sur une face un chiffre selon le principe d'un dé. Chaque LED sera allumée une par une, mais avec la fréquence de travail très élevée du microprocesseur (environ 100 MHz), notre œil aura l'impression qu'elles sont allumées en même temps. La fonction prend comme paramètre le chiffre affiché, ainsi que le temps d'affichage en secondes :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    void affiche_de(int chiffre, float time){&lt;br /&gt;
    Timer t;&lt;br /&gt;
    t.start();&lt;br /&gt;
    while (t.read() &amp;lt;= time){&lt;br /&gt;
        if (chiffre == 1) allume_LED(5,1,'r');&lt;br /&gt;
        else if (chiffre == 2) {&lt;br /&gt;
            allume_LED(1,1,'r');&lt;br /&gt;
            allume_LED(9,1,'r');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 3) {&lt;br /&gt;
            allume_LED(1,1,'b');&lt;br /&gt;
            allume_LED(5,1,'b');&lt;br /&gt;
            allume_LED(9,1,'b');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 4) {&lt;br /&gt;
            allume_LED(1,1,'b');&lt;br /&gt;
            allume_LED(3,1,'b');&lt;br /&gt;
            allume_LED(7,1,'b');&lt;br /&gt;
            allume_LED(9,1,'b');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 5) {&lt;br /&gt;
            allume_LED(1,1,'g');&lt;br /&gt;
            allume_LED(3,1,'g');&lt;br /&gt;
            allume_LED(5,1,'g');&lt;br /&gt;
            allume_LED(7,1,'g');&lt;br /&gt;
            allume_LED(9,1,'g');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 6) {&lt;br /&gt;
            allume_LED(1,1,'g');&lt;br /&gt;
            allume_LED(3,1,'g');&lt;br /&gt;
            allume_LED(4,1,'g');&lt;br /&gt;
            allume_LED(6,1,'g');&lt;br /&gt;
            allume_LED(7,1,'g');&lt;br /&gt;
            allume_LED(9,1,'g');&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    t.stop();&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi paramétré un générateur d'entiers aléatoires compris entre 1 et 6. A partir d'une bibliothèque obtenue sur le site de développement MBED, nous utilisons une classe &amp;quot;Random&amp;quot; permettant de générer ce chiffre. Ici, un exemple d'affichage d'un chiffre aléatoire :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 int main() {&lt;br /&gt;
        Random r;&lt;br /&gt;
        int i;&lt;br /&gt;
        r.init();&lt;br /&gt;
        //génération d'un entier aléatoire entre 1 et 6&lt;br /&gt;
        uint8_t chiffre = r.getByte();&lt;br /&gt;
        chiffre = (chiffre % 6)+1;&lt;br /&gt;
        //petite simulation&lt;br /&gt;
        for(i=1;i&amp;lt;10;i++) {&lt;br /&gt;
            if (i&amp;lt;4) allume_LED(i,1,'r');&lt;br /&gt;
            else if ((i&amp;gt;3) &amp;amp;&amp;amp; (i&amp;lt;7)) allume_LED(i,1,'b');&lt;br /&gt;
            else if (i&amp;gt;6) allume_LED(i,1,'g');&lt;br /&gt;
            wait_ms(200);&lt;br /&gt;
        }&lt;br /&gt;
        //affichage du chiffre aléatoire&lt;br /&gt;
        if ((chiffre &amp;gt; 0) &amp;amp;&amp;amp; (chiffre &amp;lt; 7)) affiche_de(chiffre,15);&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons pu récupérer la carte électronique de multiplexage élaborée précédemment. Sur cette carte, les pistes ont été dessinées des deux côtés. Nous avons aussi obtenu un boitier de piles fonctionnant via USB que nous utiliserons comme batterie, ainsi qu'une breadboard de petite taille permettant de fixer le microcontrôleur, l'accéléromètre et la board tactile dessus.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:MUXcotecompo_recto.jpg|200px|thumb|left|Carte électronique du multiplexage des LEDs, côté composants (recto)]]&lt;br /&gt;
[[Fichier:MUX_verso.jpg|200px|thumb|centre|Carte électronique du multiplexage des LEDs (verso)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de continuer, voire de terminer l'élaboration des circuits électroniques des faces, de travailler sur la carte de multiplexage, ainsi que de continuer le développement des programmes finaux.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 (du 13/04/2015 au 19/04/2015) ==&lt;br /&gt;
[[Fichier:Carte Multiplexe soudee.JPG|130px|thumb|multiplexage soudee]]&lt;br /&gt;
[[Fichier:Face LED.png|130px|thumb|Schematic d'une face de LED]]&lt;br /&gt;
[[Fichier:Face LED 1.png|130px|thumb|PCB face LED 1]]&lt;br /&gt;
[[Fichier:Face LED 2.png|130px|thumb|PCB face LED 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pu avoir une discussion avec M. Boé, afin de faire le point sur notre projet. Il nous a ainsi suggéré de revoir la taille de notre cube, afin de diminuer la taille des faces. La carte de multiplexage réalisée étant trop grande, nous avons décidé d'envisager une nouvelle carte de multiplexage plus petite, pour ainsi obtenir des faces de dimension 6x6 cm environ. Nous avons aussi décidé de créer un PCB spécialement pour des piles de type CR2032, et qu'un autre pour le MBED, l'accéléromètre et la board tactile, et ainsi abandonner l'idée de la breadboard. Nous avons ainsi revu l'élaboration de la face comportant nos LEDs RGB CMS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons tout de même commencé à souder la carte de multiplexage des LEDs pour pouvoir tester les faces du cube :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Côté informatique, nous avons avancé dans notre code en créant une fonction réalisant une petite animation des LEDs, pour l'instant sur une seule face :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //une animation &amp;quot;d'ambiance&amp;quot;, pour l'instant sur une seule face&lt;br /&gt;
 void animations(float duree_anim){&lt;br /&gt;
    char couleurs[7] = {'w','j','r','p','b','g','t'};&lt;br /&gt;
    int coul_suiv,led_suiv,j;&lt;br /&gt;
    Timer t;&lt;br /&gt;
    //toutes les LEDs de la même couleur&lt;br /&gt;
    for(j=0;j&amp;lt;7;j++){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while (t.read() &amp;lt;= (duree_anim/7)){&lt;br /&gt;
            for(int i=1;i&amp;lt;10;i++) allume_LED(i,1,couleurs[j]);&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
        t.reset();&lt;br /&gt;
        //changement de couleur progressif, une LED à la fois&lt;br /&gt;
        if (j==6) coul_suiv=0;&lt;br /&gt;
        else coul_suiv=j+1;&lt;br /&gt;
        led_suiv=1;&lt;br /&gt;
        t.start();&lt;br /&gt;
        while (led_suiv &amp;lt; 10){&lt;br /&gt;
            while (t.read() &amp;lt;= (1.5/9)){&lt;br /&gt;
                for(int k=1;k&amp;lt;=led_suiv;k++) allume_LED(k,1,couleurs[coul_suiv]);&lt;br /&gt;
                for(int i=led_suiv+1;i&amp;lt;10;i++) allume_LED(i,1,couleurs[j]);&lt;br /&gt;
            }&lt;br /&gt;
            led_suiv++;&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
        t.reset();&lt;br /&gt;
    }&lt;br /&gt;
    anim=true;&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la prochaine séance sera de créer une fonction de morpion, ainsi que de tester la carte de multiplexage sur une face.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'autre part, nous avons réalisé le PCB d'une face de LED dont voici le schematic et le PCB: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons dû réaliser le schematic et les empreintes des LEDs dans une nouvelle librairie puisque le composant n'était pas encore réalisé dans les librairies d'Altium. Nous avons pour cela suivi le tutoriel de M. Boé :&lt;br /&gt;
[[Fichier:Empreinte LED.png|130px|Composant créé sur Altium]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 (du 20/04/2015 au 26/04/2015) ==&lt;br /&gt;
Durant cette semaine, nous avons continué notre code en commençant la programmation d'une fonction &amp;quot;morpion&amp;quot;. Cette fonction est assez longue à concevoir, et sera complétée d'une autre fonction vérifiant la victoire au morpion. Voici la fonction &amp;quot;morpion&amp;quot; (la fonction &amp;quot;win&amp;quot; sera élaborée plus tard) :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 void morpion(){&lt;br /&gt;
    led_eteinte();&lt;br /&gt;
    int grille[9]={0,0,0,0,0,0,0,0,0};&lt;br /&gt;
    int tour=0;&lt;br /&gt;
    char coul;&lt;br /&gt;
    bool ligne1=false, ligne2=false, ligne3=false, c1=false, c2=false, c3=false, d1=false, d2=false, gagne=false;&lt;br /&gt;
    //déroulement de la partie&lt;br /&gt;
    while ((!gagne)||(tour&amp;lt;9)){&lt;br /&gt;
        tour++;&lt;br /&gt;
        //&amp;quot;sélection&amp;quot; joueur : rouge pour joueur 1, vert pour joueur 2&lt;br /&gt;
        if ((tour%2)==1) coul='r';&lt;br /&gt;
        else coul='g';&lt;br /&gt;
        //sélection case via touches&lt;br /&gt;
        //milieu&lt;br /&gt;
        if (touche2==1) {&lt;br /&gt;
            if (grille[4]==0){&lt;br /&gt;
                allume_LED(5,2,coul);&lt;br /&gt;
                grille[4]=abs((tour%2)-2); //1 pour joueur 2, 2 pour joueur 1&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche1==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //haut gauche&lt;br /&gt;
            if (touche5==1) { &lt;br /&gt;
                if (grille[0]==0){&lt;br /&gt;
                    allume_LED(1,2,coul);&lt;br /&gt;
                    grille[0]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas gauche&lt;br /&gt;
            else if (touche6==1){ &lt;br /&gt;
                if (grille[6]==0){&lt;br /&gt;
                    allume_LED(7,2,coul);&lt;br /&gt;
                    grille[6]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //gauche&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[3]==0){&lt;br /&gt;
                    allume_LED(4,2,coul);&lt;br /&gt;
                    grille[3]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche5==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //haut gauche&lt;br /&gt;
            if (touche1==1) { &lt;br /&gt;
                if (grille[0]==0){&lt;br /&gt;
                    allume_LED(1,2,coul);&lt;br /&gt;
                    grille[0]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut droite&lt;br /&gt;
            else if (touche3==1){ &lt;br /&gt;
                if (grille[2]==0){&lt;br /&gt;
                    allume_LED(3,2,coul);&lt;br /&gt;
                    grille[2]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[1]==0){&lt;br /&gt;
                    allume_LED(2,2,coul);&lt;br /&gt;
                    grille[1]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche3==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //bas droite&lt;br /&gt;
            if (touche6==1) { &lt;br /&gt;
                if (grille[8]==0){&lt;br /&gt;
                    allume_LED(9,2,coul);&lt;br /&gt;
                    grille[8]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut droite&lt;br /&gt;
            else if (touche5==1) {&lt;br /&gt;
                if (grille[2]==0){&lt;br /&gt;
                    allume_LED(3,2,coul);&lt;br /&gt;
                    grille[2]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //droite&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[5]==0){&lt;br /&gt;
                    allume_LED(6,2,coul);&lt;br /&gt;
                    grille[5]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche6==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //bas gauche&lt;br /&gt;
            if (touche1==1) { &lt;br /&gt;
                if (grille[6]==0){&lt;br /&gt;
                    allume_LED(7,2,coul);&lt;br /&gt;
                    grille[6]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas droite&lt;br /&gt;
            else if (touche3==1){ &lt;br /&gt;
                if (grille[8]==0){&lt;br /&gt;
                    allume_LED(9,2,coul);&lt;br /&gt;
                    grille[8]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[7]==0){&lt;br /&gt;
                    allume_LED(8,2,coul);&lt;br /&gt;
                    grille[7]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        //allumage du reste de la grille&lt;br /&gt;
        for(int k=0;k&amp;lt;9;k++){&lt;br /&gt;
            if (grille[k]==1) allume_LED(k+1,2,'r');&lt;br /&gt;
            else if (grille[k]==2) allume_LED(k+1,2,'g');&lt;br /&gt;
        }&lt;br /&gt;
        //vérif ligne complétée&lt;br /&gt;
        gagne=win(grille,ligne1,ligne2,ligne3,c1,c2,c3,d1,d2);&lt;br /&gt;
    }&lt;br /&gt;
    Timer t;&lt;br /&gt;
    //vérif victoire joueur 1&lt;br /&gt;
    if(((tour%2)==1)&amp;amp;&amp;amp;(gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'r');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    //vérif victoire joueur 2&lt;br /&gt;
    else if (((tour%2)==0)&amp;amp;&amp;amp;(gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'g');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    //vérif match nul&lt;br /&gt;
    else if ((tour==9)&amp;amp;&amp;amp;(!gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'b');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    morp=true;&lt;br /&gt;
 }&lt;br /&gt;
'' &lt;br /&gt;
&lt;br /&gt;
A noter qu'ici, nous avons modélisé notre grille à l'aide d'un tableau à une dimension. Nous aurions très bien pu le faire aussi sous la forme d'une matrice à deux dimensions.&lt;br /&gt;
&lt;br /&gt;
Côté électronique, nous avons récupéré le PCB d'une face. Nous avons alors procédé au soudage des 9 LEDs CMS composant notre face.&lt;br /&gt;
[[Fichier:Circuit Face.JPG|130px|Circuit d'une face]]&lt;br /&gt;
[[Fichier:Test LED 1.JPG|130px|Soudure de quelque LED et test 1]]&lt;br /&gt;
[[Fichier:Test LED 2.JPG|130px|Soudure de quelque LED et test 2]]&lt;br /&gt;
[[Fichier:Face LED soudee.JPG|130px|Face totalement soudee]]&lt;br /&gt;
&lt;br /&gt;
Nous avons procédé aux tests d'allumage et de multiplexage avec le branchement suivant. Les LEDS se sont bien allumées comme nous le voulions :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Branchement test.JPG|130px|Branchement test de la face de LED]]&lt;br /&gt;
[[Fichier:Test face1.JPG|130px|Test réussi]]&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les 2 semaines restantes sera de pouvoir au moins présenter un prototype de notre cube montrant son fonctionnement global.&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 (du 27/04/2015 au 03/05/2015) ==&lt;br /&gt;
Côté informatique, nous avons continué notre code en intégrant à notre programme final les différentes bibliothèques nécessaires : l'accéléromètre (ADXL345.h), la board tactile (MPR121.h), ainsi que pour le son de notre pièce piézoélectrique (Sound.h). Pour l'émission de ce son, nous avons repris la fonction d'émission d'une mélodie détaillée plus haut, et nous l'avons adaptée pour n'émettre qu'une seule note. Nous avons aussi créé la fonction de vérification de victoire au morpion :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //vérification victoire&lt;br /&gt;
 bool win(int grille[],bool ligne1, bool ligne2, bool ligne3, bool c1, bool c2, bool c3, bool d1, bool d2){&lt;br /&gt;
    bool v1=false, v2=false;&lt;br /&gt;
    //verif lignes&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[1]==0)&amp;amp;&amp;amp;(grille[2]==0))){&lt;br /&gt;
        v1=grille[0]==grille[1];&lt;br /&gt;
        v2=grille[1]==grille[2];&lt;br /&gt;
        ligne1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[3]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[5]==0))){&lt;br /&gt;
        v1=grille[3]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[5];&lt;br /&gt;
        ligne2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[6]==0)&amp;amp;&amp;amp;(grille[7]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[6]==grille[7];&lt;br /&gt;
        v2=grille[7]==grille[8];&lt;br /&gt;
        ligne3=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    //verif colonnes&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[3]==0)&amp;amp;&amp;amp;(grille[6]==0))){&lt;br /&gt;
        v1=grille[0]==grille[3];&lt;br /&gt;
        v2=grille[3]==grille[6];&lt;br /&gt;
        c1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[1]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[7]==0))){&lt;br /&gt;
        v1=grille[1]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[7];&lt;br /&gt;
        c2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[2]==0)&amp;amp;&amp;amp;(grille[5]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[2]==grille[5];&lt;br /&gt;
        v2=grille[5]==grille[8];&lt;br /&gt;
        c3=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    //verif diagonales&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[0]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[8];&lt;br /&gt;
        d1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[2]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[6]==0))){&lt;br /&gt;
        v1=grille[2]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[6];&lt;br /&gt;
        d2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    bool win=ligne1||ligne2;&lt;br /&gt;
    win=win||ligne3;&lt;br /&gt;
    win=win||c1;&lt;br /&gt;
    win=win||c2;&lt;br /&gt;
    win=win||c3;&lt;br /&gt;
    win=win||d1;&lt;br /&gt;
    win=win||d2;&lt;br /&gt;
    return win;&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Côté électronique, nous avons en notre possession les PCB des 6 faces du cube.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué la soudure de toutes les faces restantes et donc des 45 LEDs restantes:&lt;br /&gt;
[[Fichier:6 faces soudees.JPG|130px|Faces totalement soudees]]&lt;br /&gt;
Cette étape nous a pris un temps considérable :&lt;br /&gt;
* Réalisation des 27 vias sur chaque face&lt;br /&gt;
* Soudure de 9 LED CMS par face&lt;br /&gt;
* Étamage de tous les câbles&lt;br /&gt;
* Soudure des câble pour réaliser les ponts entre les faces&lt;br /&gt;
&lt;br /&gt;
Seulement après tout cela, nous avons pu avoir nos 6 faces correctement soudées. Nous avons continué de travailler jusqu'à la mise en place d'un prototype.&lt;br /&gt;
&lt;br /&gt;
== Poursuite du cube &amp;amp; idées ==&lt;br /&gt;
Par la suite, nous avons réalisé un premier prototype du cube de la manière suivante :&lt;br /&gt;
chaque anode de la première série de trois faces a été reliée à une autre de la deuxième série de trois faces. &lt;br /&gt;
&lt;br /&gt;
Nous avons obtenu le prototype suivant : [[Fichier:Proto.JPG|130px|1er prototype]]&lt;br /&gt;
&lt;br /&gt;
Les autres circuits permettant d'obtenir un cube avec l'électronique totalement embarquée n'ont pas été réalisée. Nous avons donc laissé le MBED et la carte de multiplexage à l'extérieur. &lt;br /&gt;
Voici ce que nous pouvons présenter à l'heure actuelle :&lt;br /&gt;
[[Fichier:Cube.JPG|130px|Cube à l'état actuel]]&lt;br /&gt;
&lt;br /&gt;
Le test de ce 1er prototype et des codes développés se fera durant la vidéo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour les cartes supplémentaires, nous avions prévu d'en concevoir 3 : &lt;br /&gt;
Une carte pour les piles permettant d’alimenter le MBED.&lt;br /&gt;
Une seconde comportant le MBED, le capacitive Touch Adafruit et l’accéléromètre.&lt;br /&gt;
Une troisième qui correspond à la carte de multiplexage mais en miniature avec des composants CMS.&lt;br /&gt;
La liaison entre chaque se faisant par des fils.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cartes elec.JPG|130px|Schéma des 3 cartes à réaliser]]&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
Ce projet nous aura permis d'approfondir nos connaissances dans deux principaux domaines : la conception de circuits électroniques, ainsi que le développement d'une application orientée microcontrôleur.&lt;br /&gt;
D’autre part, ce projet nous auras permis d’exercer la gestion de projet et de se rendre compte de nos erreurs. La principale erreur a été de ne pas se projeter assez vite vers un premier prototype. Au lieu de cela, nous sommes restés un moment sur le test de chaque composant séparément en essayant de prévoir son introduction à l’électronique du cube. Nous avons pris du retard en négligeant un peu la partie électronique et création de carte et nous nous sommes rendus compte que celle-ci n’était pas des moindres et prenant un certain temps.&lt;br /&gt;
&lt;br /&gt;
= Fichiers Rendus =&lt;br /&gt;
Rapport du projet : [[Fichier:Rapport_Projet_DUPLOUY_ZEGGAI.pdf]]&lt;br /&gt;
&lt;br /&gt;
Code source du dé électronique (langage C++) : [[Fichier:Code_DeElectronique.txt]]&lt;br /&gt;
&lt;br /&gt;
Code source + bibliothèques : [[Fichier:Codes_et_bibliotheques_de_electronique.zip]]&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=D%C3%A9_%C3%A9lectronique_communiquant&amp;diff=21172</id>
		<title>Dé électronique communiquant</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=D%C3%A9_%C3%A9lectronique_communiquant&amp;diff=21172"/>
				<updated>2015-05-11T21:54:46Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cahier des charges =&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
Dans une époque où la technologie concerne le mode de vie de presque tout le monde, la plupart des gens ont tendance à se tourner vers les nouvelles technologies (smartphone, ordinateur) pour se divertir, et ainsi délaisser les anciens jeux de société. Afin de faire revivre ce genre de jeu, nous avons décidé de revisiter un pilier du jeu de société : le dé à jouer.&lt;br /&gt;
&lt;br /&gt;
=== Objectif du Projet ===&lt;br /&gt;
L'objectif de ce projet est de réaliser un dé à jouer programmable du même type que les [http://www.futurocube.com/ futurocubes].&lt;br /&gt;
&lt;br /&gt;
=== Idées de fonctionnalités === &lt;br /&gt;
Voici quelques idées d'applications qu'on pourrait mettre en place :&lt;br /&gt;
* Dé à jouer classique : chiffre aléatoire de 1 à 6&lt;br /&gt;
* Jeu du morpion (Tic Tac Toe)&lt;br /&gt;
* SNAKE fonctionnant avec l'accéléromètre&lt;br /&gt;
* Eclairage &amp;quot;d'ambiance&amp;quot; avec variation aléatoire des couleurs&lt;br /&gt;
* Modélisation d'un Rubik's Cube 3x3&lt;br /&gt;
* Jeu de mémoire couleur/son (comme le jeu Simon)&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel - utilité ===&lt;br /&gt;
Nous allons nous baser sur :&lt;br /&gt;
* un microcontrôleur de type MBED (ARM Cortex M3) [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 2/2/2015&amp;lt;/span&amp;gt;] : Cerveau du dé - Sons/bruitages&lt;br /&gt;
&lt;br /&gt;
La documentation est disponible [http://developer.mbed.org/platforms/mbed-LPC1768/#schematics-and-data-sheets ici].&lt;br /&gt;
Les programmes implémentés seront codés en C/C++.&lt;br /&gt;
&lt;br /&gt;
Ensuite, les composants suivants doivent être intégrés :&lt;br /&gt;
* LED RGB (54 LEDs) : Elles seront multiplexés à l'aide de transistors. [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;9 LED Rouges/Jaunes fournies le 4/2/2015&amp;lt;/span&amp;gt;] 54 x [http://fr.farnell.com/avago-technologies/asmb-mtb1-0a3a2/led-rgb-plcc4-surface-noire/dp/2401106 LED] [&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;100 LEDs RGB commandées chez Farnell le 18/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
* 18 transistors NPN [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;3 fournis le 4/2/2015&amp;lt;/span&amp;gt;] &lt;br /&gt;
&lt;br /&gt;
* 18 x [http://fr.farnell.com/on-semiconductor/bc548brl1g/transistor-npn-30v-100ma-to-92/dp/2317545 Transistor] [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;20 BC548BRL1G commandées chez Farnell fournies le 11/3/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 18 x [http://fr.farnell.com/diodes-inc/bc848b-7-f/transistor-npn-sot23/dp/1773620 Transistor CMS] [&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;100 BC848B-7-F commandées chez Farnell le 18/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
* Résistances : à voir avec les encadrants et en fonction des tests (Savoir si on doit en placer une à l'anode ou une à chaque cathode)&lt;br /&gt;
* Accéléromètre : Orientation dans l'espace et réveil de l'appareil après la détection d'un mouvement. [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; fourni le 11/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Alimentation : Rechargeable via usb.&lt;br /&gt;
* 6 faces &amp;quot;tactiles&amp;quot; via le centre de chaque face : Possible par résistances capacitives, touches tactiles (SparkFun Touch Shield), boutons poussoirs (Tests à réaliser pour déterminer la meilleure méthode).&lt;br /&gt;
&lt;br /&gt;
== Étapes du projet ==&lt;br /&gt;
=== Étape 1 ===&lt;br /&gt;
* Choix des jeux et fonctionnalités à intégrer au dé en tenant compte des contraintes matérielles&lt;br /&gt;
* Aperçu du matériel disponible et nécessaire, puis choix des composants&lt;br /&gt;
* Élaboration du schéma électronique à adopter&lt;br /&gt;
* Découverte de la plateforme MBED&lt;br /&gt;
&lt;br /&gt;
=== Étape 2 ===&lt;br /&gt;
Cette étape occupera la plus grande partie de la durée du projet.&lt;br /&gt;
* Réalisation du code des fonctionnalités à intégrer sur la plateforme MBED&lt;br /&gt;
* Réalisation des circuits électroniques nécessaires via Altium Designer&lt;br /&gt;
* Début du montage du cube&lt;br /&gt;
&lt;br /&gt;
=== Étape 3 ===&lt;br /&gt;
* Montage final du cube&lt;br /&gt;
* Réalisation de programmes optionnels s'il reste du temps (fonctionnalités compliquées à implémenter ou pensées plus tard dans le projet)&lt;br /&gt;
* Tests des fonctionnalités sur le matériel&lt;br /&gt;
&lt;br /&gt;
= Avancée du projet =&lt;br /&gt;
== Semaine 1 (du 26/01/2015 au 01/02/2015) == &lt;br /&gt;
[[Fichier:Contrôle_DIODES.jpg|130px|thumb|Schéma multiplexage LED]]&lt;br /&gt;
Nous avons surtout porté nos recherches sur du matériel électronique spécifique, notamment pour l'aspect &amp;quot;tactile&amp;quot; de notre cube. En effet, il est possible d'utiliser les techniques suivantes :&lt;br /&gt;
* Résistance et capacité : On utilise une simple résistance et un métal conducteur. En touchant celui-ci avec notre doigt, on le transforme en capacité. On peut voir le principe [https://skyduino.wordpress.com/2012/06/02/arduino-faire-une-touche-tactile-avec-une-simple-resistance/ ici].&lt;br /&gt;
* Résistance capteur de pression : Prête à être utilisée mais assez chère. Il y a bien d'autres alternatives.&lt;br /&gt;
* [https://www.sparkfun.com/products/12013 Touch Shield] : A voir avec l'intégration des LED.&lt;br /&gt;
* Boutons réalisés sur le principe du [https://www.sparkfun.com/products/7835 Button Pad] à raison d'un par face : Dans le pire des cas ...&lt;br /&gt;
&lt;br /&gt;
Puis nous nous sommes intéressés à la connexion des LEDs. Elles seront au nombre de 54, soit 9 par face, et en plus, ce sera des LED RGB.&lt;br /&gt;
Nous avons trouvé pour cela une solution de multiplexage à l'aide de transistors NPN.&lt;br /&gt;
Voici un petit schéma du branchement possible sur une face avec 9 LEDs RGB : &lt;br /&gt;
Il sera possible de le porter à plus grande échelle par la suite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le principe de fonctionnement : On alimente une colonne de LED par l'anode commune. On détermine ensuite laquelle sera reliée à la masse et s'allumera donc. Pour cela on combine les bases et les collecteurs. Il faut activer la base (mettre à 1) correspondant à la colonne de la LED à allumer, et mettre à la masse (mettre à 0) la ligne du collecteur correspondant. Ainsi, une seule LED sera reliée à la masse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de tester les solutions du &amp;quot;tactile&amp;quot; et le branchement des LEDs.&lt;br /&gt;
&lt;br /&gt;
Nous avons également discuté avec nos encadrants sur le matériel et ses limites, c'est-à-dire le tactile, la connexion des LEDs, l’accéléromètre (disponible à Polytech), le MBED, les sons (réalisables avec le MBED) et le côté alimentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 (du 02/02/2015 au 08/02/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons surtout porté nos recherches sur la méthode de multiplexage des LEDs. Faute d'avoir des LEDs RGB, nous avons testé le multiplexage selon le schéma précédent avec 3 LEDs simples, soit une LED RGB. Nous avons réalisé le test d'allumer 1 seule des LEDs (pour avoir une couleur) puis 2 (mélange de couleurs).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test3LED1.JPG|130px|thumb|left|Test 1 multiplexage d'une LED RGB (avec 3 LEDs)]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test3LED2.JPG|130px|thumb|centre|Test 2 multiplexage d'une LED RGB (avec 3 LEDs)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé le branchement afin d'obtenir une ligne de LEDs RGB selon le schéma précédant, soient 3 fois 3 LEDs simples. On peut voir ci-dessous le branchement et le résultat du test :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:TestMUX1.JPG|130px|thumb|left|Branchement d'une ligne de 3 LEDs RGB (9 LEDs basiques)]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:TestMUX2.PNG|130px|thumb|centre|Résultat du multiplexage d'une ligne de LEDs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de tester le multiplexage des LEDs sur une face, et d'aborder le côté &amp;quot;tactile&amp;quot; du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 (du 09/02/2015 au 15/02/2015) ==&lt;br /&gt;
&lt;br /&gt;
Suite aux résultats du multiplexage des LEDs, nous avons commencé la réalisation du codage de l'allumage de celles-ci selon le schéma complet suivant :&lt;br /&gt;
&lt;br /&gt;
Parallèlement, nous avons porté nos recherches sur l'accéléromètre ADXL335. Nous avons effectué quelques tests pour déterminer le fonctionnement exact. &lt;br /&gt;
Nous avons récupéré les valeurs de celui-ci sur les broches analogiques du MBED et à l'aide de la fonction read() qui renvoie logiquement une valeur entre 0.0 et 1.0. &lt;br /&gt;
Nous avons codé le petit programme de test suivant pour tester selon l'axe Y: &lt;br /&gt;
[[Fichier:54MUX.JPG|160px|thumb|left|Schéma complet du multiplexage]]&lt;br /&gt;
''&lt;br /&gt;
    DigitalOut myled1(LED1);&lt;br /&gt;
    DigitalOut myled2(LED2);&lt;br /&gt;
    DigitalOut myled3(LED3);&lt;br /&gt;
    DigitalOut myled4(LED4);&lt;br /&gt;
    DigitalOut verif (p5);&lt;br /&gt;
    DigitalOut verif2 (p30);&lt;br /&gt;
    AnalogIn x(p15);   // 0.4&amp;lt;X&amp;lt;0.6&lt;br /&gt;
    AnalogIn y(p16);   // 0.4&amp;lt;Y&amp;lt;0.6&lt;br /&gt;
    AnalogIn z(p17);   // 0.4&amp;lt;Z&amp;lt;0.6&lt;br /&gt;
    int main() {&lt;br /&gt;
        while(1) {&lt;br /&gt;
            wait(0.2);&lt;br /&gt;
            float m1 = x.read();&lt;br /&gt;
            float m2 = y.read();&lt;br /&gt;
            float m3 = z.read();&lt;br /&gt;
        &lt;br /&gt;
            if (m2&amp;gt;0.5) myled1=1; else myled1=0;&lt;br /&gt;
            if (m2&amp;gt;0.52) myled2=1; else myled2=0;&lt;br /&gt;
            if (m2&amp;gt;0.54) myled3=1; else myled3=0;&lt;br /&gt;
            if (m2&amp;gt;0.56) myled4=1; else myled4=0;&lt;br /&gt;
            if (m2&amp;gt;0.58) verif=1; else verif=0;&lt;br /&gt;
            if (m2&amp;gt;0.6) verif2=1; else verif2=0;}}&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut voir le résultat ici :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Testaccel.avi]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 (du 16/02/2015 au 22/02/2015) ==&lt;br /&gt;
Durant cette semaine, nous avons observé le comportement de l'accéléromètre via l'utilitaire Minicom et la liaison série entre le microcontrôleur et le PC. Nous avons ainsi vérifié le fonctionnement de l'accéléromètre selon chaque axe, et ainsi confirmer les pistes observées la semaine dernière. Nous avons ainsi pu réfléchir à une solution tactile pour notre dé.&lt;br /&gt;
&lt;br /&gt;
Après nos recherches sur internet, nous avons pu voir que peu de solutions sont disponibles pour notre MBED.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera ainsi d'approfondir nos recherches sur cette solution tactile.&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 (du 23/02/2015 au 01/03/2015) ==&lt;br /&gt;
Pendant cette semaine, nous avons poursuivi nos recherches sur la partie tactile de notre cube. Nous avons notamment réfléchi à 2 solutions :&lt;br /&gt;
* L'utilisation du [https://www.sparkfun.com/products/12013 SparkFun Touch Shield], que nous avons pu nous procurer. Néanmoins, ce pad est spécialement conçu pour être connecté sur Arduino Uno. Il n'est donc pas évident de l'adapter à notre MBED.&lt;br /&gt;
* La fabrication de touches tactiles &amp;quot;Do It Yourself&amp;quot; sur [https://skyduino.wordpress.com/2012/06/02/arduino-faire-une-touche-tactile-avec-une-simple-resistance/ ce modèle]. Néanmoins, le code de cette solution est fait pour fonctionner sous Arduino, il faudrait donc réfléchir à l'adapter à notre MBED.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'emprunter une carte Arduino Uno, afin de tester ces deux solutions, et envisager de les porter sur notre MBED.&lt;br /&gt;
&lt;br /&gt;
Le code des touches tactiles &amp;quot;Do it Yourself&amp;quot; a parfaitement marché sur l'arduino.&lt;br /&gt;
Nous avons étudié la structure de plus près. A l'aide des fonctions disponibles sur MBED, nous avons plus ou moins suivi l'idée de ce code mais en le transcrivant pour le MBED.&lt;br /&gt;
Après plusieurs versions testées, rien ne fonctionnait vraiment sauf la suivante :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
   include &amp;quot;mbed.h&amp;quot;&lt;br /&gt;
   DigitalOut led(LED1);&lt;br /&gt;
   DigitalOut boom (p6);&lt;br /&gt;
   DigitalInOut button (p21);&lt;br /&gt;
   Serial pc(USBTX, USBRX);&lt;br /&gt;
   //Seuil de détection &lt;br /&gt;
   const uint16_t THRESHOLD = 50;&lt;br /&gt;
   uint8_t cycles;&lt;br /&gt;
   void touch_measure(){&lt;br /&gt;
     // Décharge la capacité en contact avec la broche &lt;br /&gt;
     button.write(0);         // Place la broche à LOW&lt;br /&gt;
     button.output();         // Place la broche en sortie&lt;br /&gt;
     wait(1); // Attend pour être sur que la capacité est déchargé&lt;br /&gt;
     // Place la broche en entrée, sans résistance de pull-up ! &lt;br /&gt;
     // (La résistance de &amp;gt;1M ohms externe servira de résistance de pull-up) &lt;br /&gt;
     button.mode(PullNone);&lt;br /&gt;
     // Mesure le nombre de cycles CPU requis avant que la broche ne commute &lt;br /&gt;
     for(cycles = 0; cycles &amp;lt; 256; ++cycles)&lt;br /&gt;
     {&lt;br /&gt;
       if (button.read()) break; // Si la broche a commuter on quitte la boucle&lt;br /&gt;
     }&lt;br /&gt;
     // Re-décharge la capacité en contact avec la broche&lt;br /&gt;
     // afin d'éviter tout parasitages d'une autre mesure sur une autre broche.&lt;br /&gt;
     // Dans le cas contraire il serait impossible de manipuler plus d'une touche &amp;quot;tactile&amp;quot; &lt;br /&gt;
     button.write(0);&lt;br /&gt;
     button.output();&lt;br /&gt;
     // Retourne le résultat &lt;br /&gt;
     //return cycles;}&lt;br /&gt;
   int main() {&lt;br /&gt;
       // Test si la &amp;quot;touche&amp;quot; a été appuyé ou non &lt;br /&gt;
       while (1) {&lt;br /&gt;
           if(cycles &amp;gt; THRESHOLD)&lt;br /&gt;
           led = 1;&lt;br /&gt;
       else&lt;br /&gt;
           led = 0;&lt;br /&gt;
       wait(0.5);&lt;br /&gt;
      //pc.printf(&amp;quot;%d  &amp;quot;,cycles);&lt;br /&gt;
       touch_measure(); }  }&lt;br /&gt;
   ''&lt;br /&gt;
&lt;br /&gt;
En branchant directement le fil &amp;quot;à toucher&amp;quot; sur la masse, la led s'allumait (ce qui devait se passer quand on touche le fil). Cependant, cela ne marchait pas à tous les coups. Voici une vidéo qui montre ce qui se passe :&lt;br /&gt;
[[Fichier:Test_tactile.avi‎]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc demandé à M. Vantroys par rapport au code à utiliser et pourquoi cela ne marchait pas en transcrivant simplement le code sur MBED. &lt;br /&gt;
En fait, les fonctions utilisées dans le code du tutoriel étaient du langage très bas niveau pour l'Arduino. En effet, cela permet de toucher directement les ports du microprocesseur et donc d'avoir un temps d’exécution très court. Or, en utilisant les fonctions &amp;quot;de base&amp;quot; du MBED et ne sachant pas le code de celle-ci, on peut déduire que le temps d’exécution n'était pas aussi rapide et empêchait donc le bon fonctionnement de comptage des cycles et évaluation du temps de charge/décharge de la capacité.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la prochaine séance sera de se décider sur la solution tactile de notre cube, ou sur une alternative à adopter en cherchant le code bas niveau du MBED.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 (du 09/03/2015 au 15/03/2015) ==&lt;br /&gt;
Lors de cette sixième semaine, nous avons continué à travailler sur la solution tactile à adopter, et nous avons spécialement étudié la manipulation des ports du microprocesseur du MBED, afin de pouvoir étudier l'utilisation de touches tactiles &amp;quot;Do It Yourself&amp;quot;. Après de nombreuses recherches et quelques essais infructueux, nous nous sommes rendus compte que cette solution aurait été trop compliqué et encombrante à coder. Nous étions prêts à nous orienter vers une solution alternative. Nous avons aussi rendu la carte Arduino Uno qui nous avait été fournie.&lt;br /&gt;
&lt;br /&gt;
Aussi, notre commande de transistors BC548 est arrivée cette semaine, nous avons pu nous les procurer, en vue de l'élaboration de nos PCB.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de trouver la solution alternative à adopter pour l'interaction entre l'utilisateur et le dé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 (du 16/03/2015 au 22/03/2015) ==&lt;br /&gt;
Pendant cette semaine, une solution concernant l'interaction Utilisateur-Dé nous est arrivée : nous avons pu nous procurer un [https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/overview Adafruit MPR121 Breakout Board à 12 touches], et un autre à 8 touches. Pour sa simplicité de branchement, nous avons décidé d'utiliser celui à 12 touches. Il nous permettra de créer 6 touches tactiles, une pour chaque face. Nous connecterons cette board via les ports I²C du microcontrôleur.&lt;br /&gt;
&lt;br /&gt;
De plus, M. Boé nous a suggéré d'utiliser un accéléromètre permettant d'influer sur la consommation énergétique du microprocesseur. Il nous a ainsi fourni l'accéléromètre ADXL345, pouvant communiquer avec le microprocesseur via deux protocoles : SPI ou I²C. Nous avons tout d'abord décidé d'utiliser le protocole I²C, mais le programme-test ne fonctionnait pas comme on le voulait. L'impression des valeurs de l'accéléromètre devait se faire via une liaison série vers le PC, mais rien ne se passait à l'écran.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de terminer la configuration de l'accéléromètre, et de configurer la board tactile.&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 (du 23/03/2015 au 29/03/2015) ==&lt;br /&gt;
Nous avons continué la configuration de l'accéléromètre, en utilisant des bibliothèques obtenues sur le site de développement MBED. N'ayant pas réussi à résoudre le problème de la communication I²C, nous avons décidé d'utiliser les ports SPI pour obtenir les valeurs, avec une bibliothèque paramétrant l'utilisation des ports SPI pour l'accéléromètre. Le code suivant nous a permis d'afficher les valeurs reçues sur les ports SPI via la liaison série :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;ADXL345.h&amp;quot;&lt;br /&gt;
    ADXL345 accelerometer(p5, p6, p7, p8);&lt;br /&gt;
    Serial pc(USBTX, USBRX);&lt;br /&gt;
    int main() {&lt;br /&gt;
        int readings[3] = {0, 0, 0};&lt;br /&gt;
        pc.printf(&amp;quot;Starting ADXL345 test...\n&amp;quot;);&lt;br /&gt;
        pc.printf(&amp;quot;Device ID is: 0x%02x\n&amp;quot;, accelerometer.getDevId());&lt;br /&gt;
        //Go into standby mode to configure the device.&lt;br /&gt;
        accelerometer.setPowerControl(0x00);&lt;br /&gt;
        //Full resolution, +/-16g, 4mg/LSB.&lt;br /&gt;
        accelerometer.setDataFormatControl(0x0B);&lt;br /&gt;
        //3.2kHz data rate.&lt;br /&gt;
        accelerometer.setDataRate(ADXL345_3200HZ);&lt;br /&gt;
        //Measurement mode.&lt;br /&gt;
        accelerometer.setPowerControl(0x08);&lt;br /&gt;
        while (1) {&lt;br /&gt;
            wait(0.1);&lt;br /&gt;
            accelerometer.getOutput(readings);&lt;br /&gt;
            //13-bit, sign extended values.&lt;br /&gt;
            pc.printf(&amp;quot;%i, %i, %i\n&amp;quot;, (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi configuré la board tactile. Elle communique avec le microcontrôleur par les ports I²C. Avec une bibliothèque obtenue sur le site de développement MBED, nous avons réalisé un programme-test qui permet d'allumer les LEDs du microcontrôleur en fonction des touches actives ou non. Voici l'algorithme général de ce programme, exécuté en boucle :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //led1, led2, led3 et led4 initialement à 0&lt;br /&gt;
 Si (touche1 == 1) alors led4=1;&lt;br /&gt;
 Si (touche2 == 1) alors led3=1;&lt;br /&gt;
 Si (touche3 == 1) alors {led3=1; led4=1;}&lt;br /&gt;
 Si (touche4 == 1) alors led2=1;&lt;br /&gt;
 Si (touche5 == 1) alors {led2=1; led4=1;}&lt;br /&gt;
 Si (touche6 == 1) alors {led2=1; led3=1;}&lt;br /&gt;
 Si (touche7 == 1) alors {led2=1; led3=1; led4=1;}&lt;br /&gt;
 Si (touche8 == 1) alors led1=1;&lt;br /&gt;
 Si (touche9 == 1) alors {led1=1; led4=1;}&lt;br /&gt;
 Si (touche10 == 1) alors {led1=1; led3=1;}&lt;br /&gt;
 Si (touche11 == 1) alors {led1=1; led3=1; led4=1;}&lt;br /&gt;
 Si (touche12 == 1) alors {led1=1; led2=1;}&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de commencer l'élaboration des cartes PCB, et de paramétrer l'utilisation d'un élément piézoélectrique pour l'émission de sons.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 (du 30/03/2015 au 05/04/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons commencé à créer une carte PCB avec le logiciel Altium Designer. Nous avons tout d'abord créé la carte permettant le multiplexage des LEDs. Nous avons placé sur cette carte 18 transistors BC548, 18 résistances, ainsi qu'un décodeur 3 vers 8 74LS138, permettant d'avoir une sortie à l'état bas et les 7 autres à l'état haut, selon [http://ecee.colorado.edu/~mcclurel/sn74ls138rev5.pdf cette datasheet]. Les pistes se feront des 2 côtés de la carte. A l'issue de cette semaine, nous avons pu envoyer notre modèle au service électronique pour élaboration. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schematic drive LED.png|130px|thumb|Schématic multiplexage LED]]&lt;br /&gt;
[[Fichier:Face 1 drive LED.png|130px|thumb|multiplexage LED Face 1]]&lt;br /&gt;
[[Fichier:Face 2 drive LED.png|130px|thumb|multiplexage LED Face 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parallèlement, nous avons travaillé sur l'émission d'une gamme de sons par une pièce piézoélectrique. Sur le site de développement MBED, nous avons pu trouver une bibliothèque permettant l'élaboration d'une note et de sa durée, et par extension l'élaboration d'une mélodie.&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;mbed.h&amp;quot;&lt;br /&gt;
    #include &amp;lt;Sound.h&amp;gt;&lt;br /&gt;
    Sound sound(p21, p10);&lt;br /&gt;
    const Sound::sound_t WESTMINSTER[] =     {&lt;br /&gt;
        //   hanon siji 0:b(flat)   1:tujo  2:#(sharp)&lt;br /&gt;
        //   |  C1 - B9 kan deno onkai(Gx ha 9x ni okikae te siji)  0xFF=end data&lt;br /&gt;
        //   |  |   time (1/1[ms]/count)   &lt;br /&gt;
        //   |  |   |    envelope(yoin) (1/1 [ms]/count)&lt;br /&gt;
        //   |  |   |    |&lt;br /&gt;
            {1,0xC5,300,500},&lt;br /&gt;
            {1,0xD5,300,500},&lt;br /&gt;
            {1,0xE5,300,500},&lt;br /&gt;
            {1,0xF5,300,500},&lt;br /&gt;
            {1,0x85,300,500},&lt;br /&gt;
            {1,0x95,300,500},&lt;br /&gt;
            {1,0xA5,300,500},&lt;br /&gt;
            {1,0xB5,300,500},&lt;br /&gt;
            {1,0x75,300,500},&lt;br /&gt;
            {1,0x65,300,500},&lt;br /&gt;
            {1,0x55,300,500},&lt;br /&gt;
            {1,0xFF,1000,0},    // end&lt;br /&gt;
    };&lt;br /&gt;
    int main() {&lt;br /&gt;
         //---------------------&lt;br /&gt;
         // enso data no settei&lt;br /&gt;
         //---------------------&lt;br /&gt;
         // sound.sound_enso(&amp;quot;/local/enso.txt&amp;quot;);     // mbed local file data &amp;quot;enso.txt&amp;quot; load (sita ni data no rei wo oite oku)&lt;br /&gt;
        sound.sound_enso((Sound::sound_t*)WESTMINSTER);  &lt;br /&gt;
        //---------------------------------------------------&lt;br /&gt;
        // output tone&lt;br /&gt;
        //---------------------------------------------------&lt;br /&gt;
        // tone1 &lt;br /&gt;
        Sound::sound_t oto = {1,0x95,200,100};&lt;br /&gt;
        sound.sound_sound(oto);&lt;br /&gt;
        while(sound.sound_sound() == true){}       &lt;br /&gt;
        // tone2&lt;br /&gt;
        oto.hanon = 1; oto.onkai = 0xA5; oto.time = 2000; oto.envelope = 1000;&lt;br /&gt;
        sound.sound_sound(oto);&lt;br /&gt;
        while(sound.sound_sound() == true){}&lt;br /&gt;
        //---------------&lt;br /&gt;
        // output melody&lt;br /&gt;
        //--------------&lt;br /&gt;
        sound.sound_enso(true);&lt;br /&gt;
        while(1) {&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous travaillerons ultérieurement sur la sélection de notes à adopter.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de continuer l'élaboration des cartes électroniques, ainsi de commencer le développement des programmes finaux.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 (du 06/04/2015 au 12/04/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons continué l'élaboration des circuits électroniques. Nous avons commencé à concevoir les faces, soit les cartes contenant 9 LEDs RGB. Nous avons eu des LEDs CMS, nous avons donc dû créer ces composants sur Altium Designer.&lt;br /&gt;
&lt;br /&gt;
Parallèlement nous avons commencé à travailler sur les programmes finaux. Nous avons développé un programme permettant d'allumer une LED une par une, selon la couleur voulue, et selon le schéma suivant :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;mbed.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;Random.h&amp;quot;&lt;br /&gt;
    BusOut myled(LED4,LED3,LED2,LED1);&lt;br /&gt;
    DigitalOut anode[9]={p12,p13,p14,p15,p16,p17,p18,p19,p20};&lt;br /&gt;
    BusOut base_couleur(p30,p29,p28);&lt;br /&gt;
    BusOut collecteur(p24,p23,p22);&lt;br /&gt;
    void allume_LED(int led, int face, char couleur){&lt;br /&gt;
        for (int i=0;i&amp;lt;9;i++) anode[i]=0;&lt;br /&gt;
        // sélection anode (&amp;quot;face&amp;quot;)&lt;br /&gt;
        if ((led == 1)||(led == 4)||(led == 7)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[0]=1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[3] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[6] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        else if ((led == 2)||(led == 5)||(led == 8)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[1] = 1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[4] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[7] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        else if ((led == 3)||(led == 6)||(led == 9)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[2] = 1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[5] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[8] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        // sélection collecteur (&amp;quot;ligne&amp;quot; de LEDs)&lt;br /&gt;
        if ((face == 1)||(face == 3)||(face == 5)){&lt;br /&gt;
            if ((led &amp;gt; 0) &amp;amp;&amp;amp; (led &amp;lt; 4)) collecteur.write(0);&lt;br /&gt;
            else if ((led &amp;gt; 3) &amp;amp;&amp;amp; (led &amp;lt; 7)) collecteur.write(1);&lt;br /&gt;
            else if ((led &amp;gt; 6) &amp;amp;&amp;amp; (led &amp;lt; 10)) collecteur.write(2);&lt;br /&gt;
        }&lt;br /&gt;
        else if ((face == 2)||(face == 4)||(face == 6)){&lt;br /&gt;
            if ((led &amp;gt; 0) &amp;amp;&amp;amp; (led &amp;lt; 4)) collecteur.write(3);&lt;br /&gt;
            else if ((led &amp;gt; 3) &amp;amp;&amp;amp; (led &amp;lt; 7)) collecteur.write(4);&lt;br /&gt;
            else if ((led &amp;gt; 6) &amp;amp;&amp;amp; (led &amp;lt; 10)) collecteur.write(5);&lt;br /&gt;
        }&lt;br /&gt;
        //sélection couleur (base)&lt;br /&gt;
        if (couleur == 'r') base_couleur.write(4);&lt;br /&gt;
        else if (couleur == 'g') base_couleur.write(2);&lt;br /&gt;
        else if (couleur == 'b') base_couleur.write(1);&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
A partir de ce programme, nous avons conçu une fonction affichant sur une face un chiffre selon le principe d'un dé. Chaque LED sera allumée une par une, mais avec la fréquence de travail très élevée du microprocesseur (environ 100 MHz), notre œil aura l'impression qu'elles sont allumées en même temps. La fonction prend comme paramètre le chiffre affiché, ainsi que le temps d'affichage en secondes :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    void affiche_de(int chiffre, float time){&lt;br /&gt;
    Timer t;&lt;br /&gt;
    t.start();&lt;br /&gt;
    while (t.read() &amp;lt;= time){&lt;br /&gt;
        if (chiffre == 1) allume_LED(5,1,'r');&lt;br /&gt;
        else if (chiffre == 2) {&lt;br /&gt;
            allume_LED(1,1,'r');&lt;br /&gt;
            allume_LED(9,1,'r');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 3) {&lt;br /&gt;
            allume_LED(1,1,'b');&lt;br /&gt;
            allume_LED(5,1,'b');&lt;br /&gt;
            allume_LED(9,1,'b');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 4) {&lt;br /&gt;
            allume_LED(1,1,'b');&lt;br /&gt;
            allume_LED(3,1,'b');&lt;br /&gt;
            allume_LED(7,1,'b');&lt;br /&gt;
            allume_LED(9,1,'b');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 5) {&lt;br /&gt;
            allume_LED(1,1,'g');&lt;br /&gt;
            allume_LED(3,1,'g');&lt;br /&gt;
            allume_LED(5,1,'g');&lt;br /&gt;
            allume_LED(7,1,'g');&lt;br /&gt;
            allume_LED(9,1,'g');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 6) {&lt;br /&gt;
            allume_LED(1,1,'g');&lt;br /&gt;
            allume_LED(3,1,'g');&lt;br /&gt;
            allume_LED(4,1,'g');&lt;br /&gt;
            allume_LED(6,1,'g');&lt;br /&gt;
            allume_LED(7,1,'g');&lt;br /&gt;
            allume_LED(9,1,'g');&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    t.stop();&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi paramétré un générateur d'entiers aléatoires compris entre 1 et 6. A partir d'une bibliothèque obtenue sur le site de développement MBED, nous utilisons une classe &amp;quot;Random&amp;quot; permettant de générer ce chiffre. Ici, un exemple d'affichage d'un chiffre aléatoire :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 int main() {&lt;br /&gt;
        Random r;&lt;br /&gt;
        int i;&lt;br /&gt;
        r.init();&lt;br /&gt;
        //génération d'un entier aléatoire entre 1 et 6&lt;br /&gt;
        uint8_t chiffre = r.getByte();&lt;br /&gt;
        chiffre = (chiffre % 6)+1;&lt;br /&gt;
        //petite simulation&lt;br /&gt;
        for(i=1;i&amp;lt;10;i++) {&lt;br /&gt;
            if (i&amp;lt;4) allume_LED(i,1,'r');&lt;br /&gt;
            else if ((i&amp;gt;3) &amp;amp;&amp;amp; (i&amp;lt;7)) allume_LED(i,1,'b');&lt;br /&gt;
            else if (i&amp;gt;6) allume_LED(i,1,'g');&lt;br /&gt;
            wait_ms(200);&lt;br /&gt;
        }&lt;br /&gt;
        //affichage du chiffre aléatoire&lt;br /&gt;
        if ((chiffre &amp;gt; 0) &amp;amp;&amp;amp; (chiffre &amp;lt; 7)) affiche_de(chiffre,15);&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons pu récupérer la carte électronique de multiplexage élaborée précédemment. Sur cette carte, les pistes ont été dessinées des deux côtés. Nous avons aussi obtenu un boitier de piles fonctionnant via USB que nous utiliserons comme batterie, ainsi qu'une breadboard de petite taille permettant de fixer le microcontrôleur, l'accéléromètre et la board tactile dessus.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:MUXcotecompo_recto.jpg|200px|thumb|left|Carte électronique du multiplexage des LEDs, côté composants (recto)]]&lt;br /&gt;
[[Fichier:MUX_verso.jpg|200px|thumb|centre|Carte électronique du multiplexage des LEDs (verso)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de continuer, voire de terminer l'élaboration des circuits électroniques des faces, de travailler sur la carte de multiplexage, ainsi que de continuer le développement des programmes finaux.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 (du 13/04/2015 au 19/04/2015) ==&lt;br /&gt;
[[Fichier:Carte Multiplexe soudee.JPG|130px|thumb|multiplexage soudee]]&lt;br /&gt;
[[Fichier:Face LED.png|130px|thumb|Schematic d'une face de LED]]&lt;br /&gt;
[[Fichier:Face LED 1.png|130px|thumb|PCB face LED 1]]&lt;br /&gt;
[[Fichier:Face LED 2.png|130px|thumb|PCB face LED 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, nous avons pu avoir une discussion avec M. Boé, afin de faire le point sur notre projet. Il nous a ainsi suggéré de revoir la taille de notre cube, afin de diminuer la taille des faces. La carte de multiplexage réalisée étant trop grande, nous avons décidé d'envisager une nouvelle carte de multiplexage plus petite, pour ainsi obtenir des faces de dimension 6x6 cm environ. Nous avons aussi décidé de créer un PCB spécialement pour des piles de type CR2032, et qu'un autre pour le MBED, l'accéléromètre et la board tactile, et ainsi abandonner l'idée de la breadboard. Nous avons ainsi revu l'élaboration de la face comportant nos LEDs RGB CMS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons tout de même commencé à souder la carte de multiplexage des LEDs pour pouvoir tester les faces du cube :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Côté informatique, nous avons avancé dans notre code en créant une fonction réalisant une petite animation des LEDs, pour l'instant sur une seule face :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //une animation &amp;quot;d'ambiance&amp;quot;, pour l'instant sur une seule face&lt;br /&gt;
 void animations(float duree_anim){&lt;br /&gt;
    char couleurs[7] = {'w','j','r','p','b','g','t'};&lt;br /&gt;
    int coul_suiv,led_suiv,j;&lt;br /&gt;
    Timer t;&lt;br /&gt;
    //toutes les LEDs de la même couleur&lt;br /&gt;
    for(j=0;j&amp;lt;7;j++){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while (t.read() &amp;lt;= (duree_anim/7)){&lt;br /&gt;
            for(int i=1;i&amp;lt;10;i++) allume_LED(i,1,couleurs[j]);&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
        t.reset();&lt;br /&gt;
        //changement de couleur progressif, une LED à la fois&lt;br /&gt;
        if (j==6) coul_suiv=0;&lt;br /&gt;
        else coul_suiv=j+1;&lt;br /&gt;
        led_suiv=1;&lt;br /&gt;
        t.start();&lt;br /&gt;
        while (led_suiv &amp;lt; 10){&lt;br /&gt;
            while (t.read() &amp;lt;= (1.5/9)){&lt;br /&gt;
                for(int k=1;k&amp;lt;=led_suiv;k++) allume_LED(k,1,couleurs[coul_suiv]);&lt;br /&gt;
                for(int i=led_suiv+1;i&amp;lt;10;i++) allume_LED(i,1,couleurs[j]);&lt;br /&gt;
            }&lt;br /&gt;
            led_suiv++;&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
        t.reset();&lt;br /&gt;
    }&lt;br /&gt;
    anim=true;&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la prochaine séance sera de créer une fonction de morpion, ainsi que de tester la carte de multiplexage sur une face.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'autre part, nous avons réalisé le PCB d'une face de LED dont voici le schematic et le PCB: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons dû réaliser le schematic et les empreintes des LEDs dans une nouvelle librairie puisque le composant n'était pas encore réalisé dans les librairies d'Altium. Nous avons pour cela suivi le tutoriel de M. Boé :&lt;br /&gt;
[[Fichier:Empreinte LED.png|130px|Composant créé sur Altium]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 (du 20/04/2015 au 26/04/2015) ==&lt;br /&gt;
Durant cette semaine, nous avons continué notre code en commençant la programmation d'une fonction &amp;quot;morpion&amp;quot;. Cette fonction est assez longue à concevoir, et sera complétée d'une autre fonction vérifiant la victoire au morpion. Voici la fonction &amp;quot;morpion&amp;quot; (la fonction &amp;quot;win&amp;quot; sera élaborée plus tard) :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 void morpion(){&lt;br /&gt;
    led_eteinte();&lt;br /&gt;
    int grille[9]={0,0,0,0,0,0,0,0,0};&lt;br /&gt;
    int tour=0;&lt;br /&gt;
    char coul;&lt;br /&gt;
    bool ligne1=false, ligne2=false, ligne3=false, c1=false, c2=false, c3=false, d1=false, d2=false, gagne=false;&lt;br /&gt;
    //déroulement de la partie&lt;br /&gt;
    while ((!gagne)||(tour&amp;lt;9)){&lt;br /&gt;
        tour++;&lt;br /&gt;
        //&amp;quot;sélection&amp;quot; joueur : rouge pour joueur 1, vert pour joueur 2&lt;br /&gt;
        if ((tour%2)==1) coul='r';&lt;br /&gt;
        else coul='g';&lt;br /&gt;
        //sélection case via touches&lt;br /&gt;
        //milieu&lt;br /&gt;
        if (touche2==1) {&lt;br /&gt;
            if (grille[4]==0){&lt;br /&gt;
                allume_LED(5,2,coul);&lt;br /&gt;
                grille[4]=abs((tour%2)-2); //1 pour joueur 2, 2 pour joueur 1&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche1==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //haut gauche&lt;br /&gt;
            if (touche5==1) { &lt;br /&gt;
                if (grille[0]==0){&lt;br /&gt;
                    allume_LED(1,2,coul);&lt;br /&gt;
                    grille[0]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas gauche&lt;br /&gt;
            else if (touche6==1){ &lt;br /&gt;
                if (grille[6]==0){&lt;br /&gt;
                    allume_LED(7,2,coul);&lt;br /&gt;
                    grille[6]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //gauche&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[3]==0){&lt;br /&gt;
                    allume_LED(4,2,coul);&lt;br /&gt;
                    grille[3]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche5==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //haut gauche&lt;br /&gt;
            if (touche1==1) { &lt;br /&gt;
                if (grille[0]==0){&lt;br /&gt;
                    allume_LED(1,2,coul);&lt;br /&gt;
                    grille[0]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut droite&lt;br /&gt;
            else if (touche3==1){ &lt;br /&gt;
                if (grille[2]==0){&lt;br /&gt;
                    allume_LED(3,2,coul);&lt;br /&gt;
                    grille[2]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[1]==0){&lt;br /&gt;
                    allume_LED(2,2,coul);&lt;br /&gt;
                    grille[1]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche3==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //bas droite&lt;br /&gt;
            if (touche6==1) { &lt;br /&gt;
                if (grille[8]==0){&lt;br /&gt;
                    allume_LED(9,2,coul);&lt;br /&gt;
                    grille[8]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut droite&lt;br /&gt;
            else if (touche5==1) {&lt;br /&gt;
                if (grille[2]==0){&lt;br /&gt;
                    allume_LED(3,2,coul);&lt;br /&gt;
                    grille[2]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //droite&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[5]==0){&lt;br /&gt;
                    allume_LED(6,2,coul);&lt;br /&gt;
                    grille[5]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche6==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //bas gauche&lt;br /&gt;
            if (touche1==1) { &lt;br /&gt;
                if (grille[6]==0){&lt;br /&gt;
                    allume_LED(7,2,coul);&lt;br /&gt;
                    grille[6]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas droite&lt;br /&gt;
            else if (touche3==1){ &lt;br /&gt;
                if (grille[8]==0){&lt;br /&gt;
                    allume_LED(9,2,coul);&lt;br /&gt;
                    grille[8]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[7]==0){&lt;br /&gt;
                    allume_LED(8,2,coul);&lt;br /&gt;
                    grille[7]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        //allumage du reste de la grille&lt;br /&gt;
        for(int k=0;k&amp;lt;9;k++){&lt;br /&gt;
            if (grille[k]==1) allume_LED(k+1,2,'r');&lt;br /&gt;
            else if (grille[k]==2) allume_LED(k+1,2,'g');&lt;br /&gt;
        }&lt;br /&gt;
        //vérif ligne complétée&lt;br /&gt;
        gagne=win(grille,ligne1,ligne2,ligne3,c1,c2,c3,d1,d2);&lt;br /&gt;
    }&lt;br /&gt;
    Timer t;&lt;br /&gt;
    //vérif victoire joueur 1&lt;br /&gt;
    if(((tour%2)==1)&amp;amp;&amp;amp;(gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'r');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    //vérif victoire joueur 2&lt;br /&gt;
    else if (((tour%2)==0)&amp;amp;&amp;amp;(gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'g');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    //vérif match nul&lt;br /&gt;
    else if ((tour==9)&amp;amp;&amp;amp;(!gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'b');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    morp=true;&lt;br /&gt;
 }&lt;br /&gt;
'' &lt;br /&gt;
&lt;br /&gt;
A noter qu'ici, nous avons modélisé notre grille à l'aide d'un tableau à une dimension. Nous aurions très bien pu le faire aussi sous la forme d'une matrice à deux dimensions.&lt;br /&gt;
&lt;br /&gt;
Côté électronique, nous avons récupéré le PCB d'une face. Nous avons alors procédé au soudage des 9 LEDs CMS composant notre face.&lt;br /&gt;
[[Fichier:Circuit Face.JPG|130px|Circuit d'une face]]&lt;br /&gt;
[[Fichier:Test LED 1.JPG|130px|Soudure de quelque LED et test 1]]&lt;br /&gt;
[[Fichier:Test LED 2.JPG|130px|Soudure de quelque LED et test 2]]&lt;br /&gt;
[[Fichier:Face LED soudee.JPG|130px|Face totalement soudee]]&lt;br /&gt;
&lt;br /&gt;
Nous avons procédé aux tests d'allumage et de multiplexage avec le branchement suivant. Les LEDS se sont bien allumées comme nous le voulions :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Branchement test.JPG|130px|Branchement test de la face de LED]]&lt;br /&gt;
[[Fichier:Test face1.JPG|130px|Test réussi]]&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les 2 semaines restantes sera de pouvoir au moins présenter un prototype de notre cube montrant son fonctionnement global.&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 (du 27/04/2015 au 03/05/2015) ==&lt;br /&gt;
Côté informatique, nous avons continué notre code en intégrant à notre programme final les différentes bibliothèques nécessaires : l'accéléromètre (ADXL345.h), la board tactile (MPR121.h), ainsi que pour le son de notre pièce piézoélectrique (Sound.h). Pour l'émission de ce son, nous avons repris la fonction d'émission d'une mélodie détaillée plus haut, et nous l'avons adaptée pour n'émettre qu'une seule note. Nous avons aussi créé la fonction de vérification de victoire au morpion :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //vérification victoire&lt;br /&gt;
 bool win(int grille[],bool ligne1, bool ligne2, bool ligne3, bool c1, bool c2, bool c3, bool d1, bool d2){&lt;br /&gt;
    bool v1=false, v2=false;&lt;br /&gt;
    //verif lignes&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[1]==0)&amp;amp;&amp;amp;(grille[2]==0))){&lt;br /&gt;
        v1=grille[0]==grille[1];&lt;br /&gt;
        v2=grille[1]==grille[2];&lt;br /&gt;
        ligne1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[3]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[5]==0))){&lt;br /&gt;
        v1=grille[3]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[5];&lt;br /&gt;
        ligne2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[6]==0)&amp;amp;&amp;amp;(grille[7]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[6]==grille[7];&lt;br /&gt;
        v2=grille[7]==grille[8];&lt;br /&gt;
        ligne3=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    //verif colonnes&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[3]==0)&amp;amp;&amp;amp;(grille[6]==0))){&lt;br /&gt;
        v1=grille[0]==grille[3];&lt;br /&gt;
        v2=grille[3]==grille[6];&lt;br /&gt;
        c1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[1]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[7]==0))){&lt;br /&gt;
        v1=grille[1]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[7];&lt;br /&gt;
        c2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[2]==0)&amp;amp;&amp;amp;(grille[5]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[2]==grille[5];&lt;br /&gt;
        v2=grille[5]==grille[8];&lt;br /&gt;
        c3=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    //verif diagonales&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[0]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[8];&lt;br /&gt;
        d1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[2]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[6]==0))){&lt;br /&gt;
        v1=grille[2]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[6];&lt;br /&gt;
        d2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    bool win=ligne1||ligne2;&lt;br /&gt;
    win=win||ligne3;&lt;br /&gt;
    win=win||c1;&lt;br /&gt;
    win=win||c2;&lt;br /&gt;
    win=win||c3;&lt;br /&gt;
    win=win||d1;&lt;br /&gt;
    win=win||d2;&lt;br /&gt;
    return win;&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Côté électronique, nous avons en notre possession les PCB des 6 faces du cube.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc effectué la soudure de toutes les faces restantes et donc des 45 LEDs restantes:&lt;br /&gt;
[[Fichier:6 faces soudees.JPG|130px|Faces totalement soudees]]&lt;br /&gt;
Cette étape nous a pris un temps considérable :&lt;br /&gt;
* Réalisation des 27 vias sur chaque face&lt;br /&gt;
* Soudure de 9 LED CMS par face&lt;br /&gt;
* Étamage de tous les câbles&lt;br /&gt;
* Soudure des câble pour réaliser les ponts entre les faces&lt;br /&gt;
&lt;br /&gt;
Seulement après tout cela, nous avons pu avoir nos 6 faces correctement soudées. Nous avons continué de travailler jusqu'à la mise en place d'un prototype.&lt;br /&gt;
&lt;br /&gt;
== Poursuite du cube &amp;amp; idées ==&lt;br /&gt;
Par la suite, nous avons réalisé un premier prototype du cube de la manière suivante :&lt;br /&gt;
chaque anode de la première série de trois faces a été reliée à une autre de la deuxième série de trois faces. &lt;br /&gt;
&lt;br /&gt;
Nous avons obtenu le prototype suivant : [[Fichier:Proto.JPG|130px|1er prototype]]&lt;br /&gt;
&lt;br /&gt;
Les autres circuits permettant d'obtenir un cube avec l'électronique totalement embarquée n'ont pas été réalisée. Nous avons donc laissé le MBED et la carte de multiplexage à l'extérieur. &lt;br /&gt;
Voici ce que nous pouvons présenter à l'heure actuelle :&lt;br /&gt;
[[Fichier:Cube.JPG|130px|Cube à l'état actuel]]&lt;br /&gt;
&lt;br /&gt;
Le test de ce 1er prototype et des codes développés se fera durant la vidéo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour les cartes supplémentaires, nous avions prévu d'en concevoir 3 : &lt;br /&gt;
Une carte pour les piles permettant d’alimenter le MBED.&lt;br /&gt;
Une seconde comportant le MBED, le capacitive Touch Adafruit et l’accéléromètre.&lt;br /&gt;
Une troisième qui correspond à la carte de multiplexage mais en miniature avec des composants CMS.&lt;br /&gt;
La liaison entre chaque se faisant par des fils.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cartes elec.JPG|130px|Schéma des 3 cartes à réaliser]]&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
Ce projet nous aura permis d'approfondir nos connaissances dans deux principaux domaines : la conception de circuits électroniques, ainsi que le développement d'une application orientée microcontrôleur.&lt;br /&gt;
D’autre part, ce projet nous auras permis d’exercer la gestion de projet et de se rendre compte de nos erreurs. La principale erreur a été de ne pas se projeter assez vite vers un premier prototype. Au lieu de cela, nous sommes restés un moment sur le test de chaque composant séparément en essayant de prévoir son introduction à l’électronique du cube. Nous avons pris du retard en négligeant un peu la partie électronique et création de carte et nous nous sommes rendus compte que celle-ci n’était pas des moindres et prenant un certain temps.&lt;br /&gt;
&lt;br /&gt;
= Fichiers Rendus =&lt;br /&gt;
Rapport du projet : [[Fichier:Rapport_Projet_DUPLOUY_ZEGGAI.pdf]]&lt;br /&gt;
&lt;br /&gt;
Code source du dé électronique : [[Fichier:Code_DeElectronique.txt]]&lt;br /&gt;
&lt;br /&gt;
Code source + bibliothèques : [[Fichier:Codes_et_bibliotheques_de_electronique.zip]]&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Codes_et_bibliotheques_de_electronique.zip&amp;diff=21168</id>
		<title>Fichier:Codes et bibliotheques de electronique.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Codes_et_bibliotheques_de_electronique.zip&amp;diff=21168"/>
				<updated>2015-05-11T21:50:06Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : Code source dé électronique + bibliothèques&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Code source dé électronique + bibliothèques&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Code_DeElectronique.txt&amp;diff=21166</id>
		<title>Fichier:Code DeElectronique.txt</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Code_DeElectronique.txt&amp;diff=21166"/>
				<updated>2015-05-11T21:49:14Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : Code source Dé électronique&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Code source Dé électronique&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_Projet_DUPLOUY_ZEGGAI.pdf&amp;diff=21165</id>
		<title>Fichier:Rapport Projet DUPLOUY ZEGGAI.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_Projet_DUPLOUY_ZEGGAI.pdf&amp;diff=21165"/>
				<updated>2015-05-11T21:47:49Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : Rapport Dé électronique communiquant Duplouy Zeggaï&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rapport Dé électronique communiquant Duplouy Zeggaï&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=D%C3%A9_%C3%A9lectronique_communiquant&amp;diff=20615</id>
		<title>Dé électronique communiquant</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=D%C3%A9_%C3%A9lectronique_communiquant&amp;diff=20615"/>
				<updated>2015-05-04T19:37:40Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : /* Semaine 12 (du 20/04/2015 au 26/04/2015) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cahier des charges =&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
Dans une époque où la technologie concerne le mode de vie de presque tout le monde, la plupart des gens ont tendance à se tourner vers les nouvelles technologies (smartphone, ordinateur) pour se divertir, et ainsi délaisser les anciens jeux de société. Afin de faire revivre ce genre de jeu, nous avons décidé de revisiter un pilier du jeu de société : le dé à jouer.&lt;br /&gt;
&lt;br /&gt;
=== Objectif du Projet ===&lt;br /&gt;
L'objectif de ce projet est de réaliser un dé à jouer programmable du même type que les [http://www.futurocube.com/ futurocubes].&lt;br /&gt;
&lt;br /&gt;
=== Idées de fonctionnalités === &lt;br /&gt;
Voici quelques idées d'applications qu'on pourrait mettre en place :&lt;br /&gt;
* Dé à jouer classique : chiffre aléatoire de 1 à 6&lt;br /&gt;
* Jeu du morpion (Tic Tac Toe)&lt;br /&gt;
* SNAKE fonctionnant avec l'accéléromètre&lt;br /&gt;
* Eclairage &amp;quot;d'ambiance&amp;quot; avec variation aléatoire des couleurs&lt;br /&gt;
* Modélisation d'un Rubik's Cube 3x3&lt;br /&gt;
* Jeu de mémoire couleur/son (comme le jeu Simon)&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel - utilité ===&lt;br /&gt;
Nous allons nous baser sur :&lt;br /&gt;
* un microcontrôleur de type MBED (ARM Cortex M3) [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 2/2/2015&amp;lt;/span&amp;gt;] : Cerveau du dé - Sons/bruitages&lt;br /&gt;
&lt;br /&gt;
La documentation est disponible [http://developer.mbed.org/platforms/mbed-LPC1768/#schematics-and-data-sheets ici].&lt;br /&gt;
Les programmes implémentés seront codés en C/C++.&lt;br /&gt;
&lt;br /&gt;
Ensuite, les composants suivants doivent être intégrés :&lt;br /&gt;
* LED RGB (54 LEDs) : Elles seront multiplexés à l'aide de transistors. [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;9 LED Rouges/Jaunes fournies le 4/2/2015&amp;lt;/span&amp;gt;] 54 x [http://fr.farnell.com/avago-technologies/asmb-mtb1-0a3a2/led-rgb-plcc4-surface-noire/dp/2401106 LED] [&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;100 LEDs RGB commandées chez Farnell le 18/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
* 18 transistors NPN [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;3 fournis le 4/2/2015&amp;lt;/span&amp;gt;] &lt;br /&gt;
&lt;br /&gt;
* 18 x [http://fr.farnell.com/on-semiconductor/bc548brl1g/transistor-npn-30v-100ma-to-92/dp/2317545 Transistor] [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;20 BC548BRL1G commandées chez Farnell fournies le 11/3/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 18 x [http://fr.farnell.com/diodes-inc/bc848b-7-f/transistor-npn-sot23/dp/1773620 Transistor CMS] [&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;100 BC848B-7-F commandées chez Farnell le 18/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
* Résistances : à voir avec les encadrants et en fonction des tests (Savoir si on doit en placer une à l'anode ou une à chaque cathode)&lt;br /&gt;
* Accéléromètre : Orientation dans l'espace et réveil de l'appareil après la détection d'un mouvement. [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; fourni le 11/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Alimentation : Rechargeable via usb.&lt;br /&gt;
* 6 faces &amp;quot;tactiles&amp;quot; via le centre de chaque face : Possible par résistances capacitives, touches tactiles (SparkFun Touch Shield), boutons poussoirs (Tests à réaliser pour déterminer la meilleure méthode).&lt;br /&gt;
&lt;br /&gt;
== Étapes du projet ==&lt;br /&gt;
=== Étape 1 ===&lt;br /&gt;
* Choix des jeux et fonctionnalités à intégrer au dé en tenant compte des contraintes matérielles&lt;br /&gt;
* Aperçu du matériel disponible et nécessaire, puis choix des composants&lt;br /&gt;
* Élaboration du schéma électronique à adopter&lt;br /&gt;
* Découverte de la plateforme MBED&lt;br /&gt;
&lt;br /&gt;
=== Étape 2 ===&lt;br /&gt;
Cette étape occupera la plus grande partie de la durée du projet.&lt;br /&gt;
* Réalisation du code des fonctionnalités à intégrer sur la plateforme MBED&lt;br /&gt;
* Réalisation des circuits électroniques nécessaires via Altium Designer&lt;br /&gt;
* Début du montage du cube&lt;br /&gt;
&lt;br /&gt;
=== Étape 3 ===&lt;br /&gt;
* Montage final du cube&lt;br /&gt;
* Réalisation de programmes optionnels s'il reste du temps (fonctionnalités compliquées à implémenter ou pensées plus tard dans le projet)&lt;br /&gt;
* Tests des fonctionnalités sur le matériel&lt;br /&gt;
&lt;br /&gt;
= Avancée du projet =&lt;br /&gt;
== Semaine 1 (du 26/01/2015 au 01/02/2015) == &lt;br /&gt;
[[Fichier:Contrôle_DIODES.jpg|130px|thumb|Schéma multiplexage LED]]&lt;br /&gt;
Nous avons surtout porté nos recherches sur du matériel électronique spécifique, notamment pour l'aspect &amp;quot;tactile&amp;quot; de notre cube. En effet, il est possible d'utiliser les techniques suivantes :&lt;br /&gt;
* Résistance et capacité : On utilise une simple résistance et un métal conducteur. En touchant celui-ci avec notre doigt, on le transforme en capacité. On peut voir le principe [https://skyduino.wordpress.com/2012/06/02/arduino-faire-une-touche-tactile-avec-une-simple-resistance/ ici].&lt;br /&gt;
* Résistance capteur de pression : Prête à être utilisée mais assez chère. Il y a bien d'autres alternatives.&lt;br /&gt;
* [https://www.sparkfun.com/products/12013 Touch Shield] : A voir avec l'intégration des LED.&lt;br /&gt;
* Boutons réalisés sur le principe du [https://www.sparkfun.com/products/7835 Button Pad] à raison d'un par face : Dans le pire des cas ...&lt;br /&gt;
&lt;br /&gt;
Puis nous nous sommes intéressés à la connexion des LEDs. Elles seront au nombre de 54, soit 9 par face, et en plus, ce sera des LED RGB.&lt;br /&gt;
Nous avons trouvé pour cela une solution de multiplexage à l'aide de transistors NPN.&lt;br /&gt;
Voici un petit schéma du branchement possible sur une face avec 9 LEDs RGB : &lt;br /&gt;
Il sera possible de le porter à plus grande échelle par la suite.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de tester les solutions du &amp;quot;tactile&amp;quot; et le branchement des LEDs.&lt;br /&gt;
&lt;br /&gt;
Nous avons également discuté avec nos encadrants sur le matériel et ses limites, c'est-à-dire le tactile, la connexion des LEDs, l’accéléromètre (disponible à Polytech), le MBED, les sons (réalisables avec le MBED) et le côté alimentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 (du 02/02/2015 au 08/02/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons surtout porté nos recherches sur la méthode de multiplexage des LEDs. Faute d'avoir des LEDs RGB, nous avons testé le multiplexage selon le schéma précédent avec 3 LEDs simples, soit une LED RGB. Nous avons réalisé le test d'allumer 1 seule des LEDs (pour avoir une couleur) puis 2 (mélange de couleurs).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test3LED1.JPG|130px|thumb|left|Test 1 multiplexage d'une LED RGB (avec 3 LEDs)]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test3LED2.JPG|130px|thumb|centre|Test 2 multiplexage d'une LED RGB (avec 3 LEDs)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé le branchement afin d'obtenir une ligne de LEDs RGB selon le schéma précédant, soient 3 fois 3 LEDs simples. On peut voir ci-dessous le branchement et le résultat du test :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:TestMUX1.JPG|130px|thumb|left|Branchement d'une ligne de 3 LEDs RGB (9 LEDs basiques)]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:TestMUX2.PNG|130px|thumb|centre|Résultat du multiplexage d'une ligne de LEDs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de tester le multiplexage des LEDs sur une face, et d'aborder le côté &amp;quot;tactile&amp;quot; du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 (du 09/02/2015 au 15/02/2015) ==&lt;br /&gt;
&lt;br /&gt;
Suite aux résultats du multiplexage des LEDs, nous avons commencé la réalisation du codage de l'allumage de celles-ci selon le schéma complet suivant :&lt;br /&gt;
&lt;br /&gt;
Parallèlement, nous avons porté nos recherches sur l'accéléromètre ADXL335. Nous avons effectué quelques tests pour déterminer le fonctionnement exact. &lt;br /&gt;
Nous avons récupéré les valeurs de celui-ci sur les broches analogiques du MBED et à l'aide de la fonction read() qui renvoie logiquement une valeur entre 0.0 et 1.0. &lt;br /&gt;
Nous avons codé le petit programme de test suivant pour tester selon l'axe Y: &lt;br /&gt;
[[Fichier:54MUX.JPG|160px|thumb|left|Schéma complet du multiplexage]]&lt;br /&gt;
''&lt;br /&gt;
    DigitalOut myled1(LED1);&lt;br /&gt;
    DigitalOut myled2(LED2);&lt;br /&gt;
    DigitalOut myled3(LED3);&lt;br /&gt;
    DigitalOut myled4(LED4);&lt;br /&gt;
    DigitalOut verif (p5);&lt;br /&gt;
    DigitalOut verif2 (p30);&lt;br /&gt;
    AnalogIn x(p15);   // 0.4&amp;lt;X&amp;lt;0.6&lt;br /&gt;
    AnalogIn y(p16);   // 0.4&amp;lt;Y&amp;lt;0.6&lt;br /&gt;
    AnalogIn z(p17);   // 0.4&amp;lt;Z&amp;lt;0.6&lt;br /&gt;
    int main() {&lt;br /&gt;
        while(1) {&lt;br /&gt;
            wait(0.2);&lt;br /&gt;
            float m1 = x.read();&lt;br /&gt;
            float m2 = y.read();&lt;br /&gt;
            float m3 = z.read();&lt;br /&gt;
        &lt;br /&gt;
            if (m2&amp;gt;0.5) myled1=1; else myled1=0;&lt;br /&gt;
            if (m2&amp;gt;0.52) myled2=1; else myled2=0;&lt;br /&gt;
            if (m2&amp;gt;0.54) myled3=1; else myled3=0;&lt;br /&gt;
            if (m2&amp;gt;0.56) myled4=1; else myled4=0;&lt;br /&gt;
            if (m2&amp;gt;0.58) verif=1; else verif=0;&lt;br /&gt;
            if (m2&amp;gt;0.6) verif2=1; else verif2=0;}}&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut voir le résultat ici :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Testaccel.avi]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 (du 16/02/2015 au 22/02/2015) ==&lt;br /&gt;
Durant cette semaine, nous avons observé le comportement de l'accéléromètre via l'utilitaire Minicom et la liaison série entre le microcontrôleur et le PC. Nous avons ainsi vérifié le fonctionnement de l'accéléromètre selon chaque axe, et ainsi confirmer les pistes observées la semaine dernière. Nous avons ainsi pu réfléchir à une solution tactile pour notre dé.&lt;br /&gt;
&lt;br /&gt;
Après nos recherches sur internet, nous avons pu voir que peu de solutions sont disponibles pour notre MBED.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera ainsi d'approfondir nos recherches sur cette solution tactile.&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 (du 23/02/2015 au 01/03/2015) ==&lt;br /&gt;
Pendant cette semaine, nous avons poursuivi nos recherches sur la partie tactile de notre cube. Nous avons notamment réfléchi à 2 solutions :&lt;br /&gt;
* L'utilisation du [https://www.sparkfun.com/products/12013 SparkFun Touch Shield], que nous avons pu nous procurer. Néanmoins, ce pad est spécialement conçu pour être connecté sur Arduino Uno. Il n'est donc pas évident de l'adapter à notre MBED.&lt;br /&gt;
* La fabrication de touches tactiles &amp;quot;Do It Yourself&amp;quot; sur [https://skyduino.wordpress.com/2012/06/02/arduino-faire-une-touche-tactile-avec-une-simple-resistance/ ce modèle]. Néanmoins, le code de cette solution est fait pour fonctionner sous Arduino, il faudrait donc réfléchir à l'adapter à notre MBED.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'emprunter une carte Arduino Uno, afin de tester ces deux solutions, et envisager de les porter sur notre MBED.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la prochaine séance sera de se décider sur la solution tactile de notre cube, ou sur une alternative à adopter.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 (du 09/03/2015 au 15/03/2015) ==&lt;br /&gt;
Lors de cette sixième semaine, nous avons continué à travailler sur la solution tactile à adopter, et nous avons spécialement étudié la manipulation des ports du microprocesseur du MBED, afin de pouvoir étudier l'utilisation de touches tactiles &amp;quot;Do It Yourself&amp;quot;. Après quelques essais infructueux, nous étions prêts à nous orienter vers une solution alternative. Nous avons aussi rendu la carte Arduino Uno qui nous avait été fournie.&lt;br /&gt;
&lt;br /&gt;
Aussi, notre commande de transistors BC548 est arrivée cette semaine, nous avons pu nous les procurer, en vue de l'élaboration de nos PCB.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de trouver la solution alternative à adopter pour l'interaction entre l'utilisateur et le dé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 (du 16/03/2015 au 22/03/2015) ==&lt;br /&gt;
Pendant cette semaine, une solution concernant l'interaction Utilisateur-Dé nous est arrivée : nous avons pu nous procurer un [https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/overview Adafruit MPR121 Breakout Board à 12 touches], et un autre à 8 touches. Pour sa simplicité de branchement, nous avons décidé d'utiliser celui à 12 touches. Il nous permettra de créer 6 touches tactiles, une pour chaque face. Nous connecterons cette board via les ports I²C du microcontrôleur.&lt;br /&gt;
&lt;br /&gt;
De plus, M. Boé nous a suggéré d'utiliser un accéléromètre permettant d'influer sur la consommation énergétique du microprocesseur. Il nous a ainsi fourni l'accéléromètre ADXL345, pouvant communiquer avec le microprocesseur via deux protocoles : SPI ou I²C. Nous avons tout d'abord décidé d'utiliser le protocole I²C, mais le programme-test ne fonctionnait pas comme on le voulait. L'impression des valeurs de l'accéléromètre devait se faire via une liaison série vers le PC, mais rien ne se passait à l'écran.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de terminer la configuration de l'accéléromètre, et de configurer la board tactile.&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 (du 23/03/2015 au 29/03/2015) ==&lt;br /&gt;
Nous avons continué la configuration de l'accéléromètre, en utilisant des bibliothèques obtenues sur le site de développement MBED. N'ayant pas réussi à résoudre le problème de la communication I²C, nous avons décidé d'utiliser les ports SPI pour obtenir les valeurs, avec une bibliothèque paramétrant l'utilisation des ports SPI pour l'accéléromètre. Le code suivant nous a permis d'afficher les valeurs reçues sur les ports SPI via la liaison série :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;ADXL345.h&amp;quot;&lt;br /&gt;
    ADXL345 accelerometer(p5, p6, p7, p8);&lt;br /&gt;
    Serial pc(USBTX, USBRX);&lt;br /&gt;
    int main() {&lt;br /&gt;
        int readings[3] = {0, 0, 0};&lt;br /&gt;
        pc.printf(&amp;quot;Starting ADXL345 test...\n&amp;quot;);&lt;br /&gt;
        pc.printf(&amp;quot;Device ID is: 0x%02x\n&amp;quot;, accelerometer.getDevId());&lt;br /&gt;
        //Go into standby mode to configure the device.&lt;br /&gt;
        accelerometer.setPowerControl(0x00);&lt;br /&gt;
        //Full resolution, +/-16g, 4mg/LSB.&lt;br /&gt;
        accelerometer.setDataFormatControl(0x0B);&lt;br /&gt;
        //3.2kHz data rate.&lt;br /&gt;
        accelerometer.setDataRate(ADXL345_3200HZ);&lt;br /&gt;
        //Measurement mode.&lt;br /&gt;
        accelerometer.setPowerControl(0x08);&lt;br /&gt;
        while (1) {&lt;br /&gt;
            wait(0.1);&lt;br /&gt;
            accelerometer.getOutput(readings);&lt;br /&gt;
            //13-bit, sign extended values.&lt;br /&gt;
            pc.printf(&amp;quot;%i, %i, %i\n&amp;quot;, (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi configuré la board tactile. Elle communique avec le microcontrôleur par les ports I²C. Avec une bibliothèque obtenue sur le site de développement MBED, nous avons réalisé un programme-test qui permet d'allumer les LEDs du microcontrôleur en fonction des touches actives ou non. Voici l'algorithme général de ce programme, exécuté en boucle :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //led1, led2, led3 et led4 initialement à 0&lt;br /&gt;
 Si (touche1 == 1) alors led4=1;&lt;br /&gt;
 Si (touche2 == 1) alors led3=1;&lt;br /&gt;
 Si (touche3 == 1) alors {led3=1; led4=1;}&lt;br /&gt;
 Si (touche4 == 1) alors led2=1;&lt;br /&gt;
 Si (touche5 == 1) alors {led2=1; led4=1;}&lt;br /&gt;
 Si (touche6 == 1) alors {led2=1; led3=1;}&lt;br /&gt;
 Si (touche7 == 1) alors {led2=1; led3=1; led4=1;}&lt;br /&gt;
 Si (touche8 == 1) alors led1=1;&lt;br /&gt;
 Si (touche9 == 1) alors {led1=1; led4=1;}&lt;br /&gt;
 Si (touche10 == 1) alors {led1=1; led3=1;}&lt;br /&gt;
 Si (touche11 == 1) alors {led1=1; led3=1; led4=1;}&lt;br /&gt;
 Si (touche12 == 1) alors {led1=1; led2=1;}&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de commencer l'élaboration des cartes PCB, et de paramétrer l'utilisation d'un élément piézoélectrique pour l'émission de sons.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 (du 30/03/2015 au 05/04/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons commencé à créer une carte PCB avec le logiciel Altium Designer. Nous avons tout d'abord créé la carte permettant le multiplexage des LEDs. Nous avons placé sur cette carte 18 transistors BC548, 18 résistances, ainsi qu'un décodeur 3 vers 8 74LS138, permettant d'avoir une sortie à l'état bas et les 7 autres à l'état haut, selon [http://ecee.colorado.edu/~mcclurel/sn74ls138rev5.pdf cette datasheet]. Les pistes se feront des 2 côtés de la carte. A l'issue de cette semaine, nous avons pu envoyer notre modèle au service électronique pour élaboration. &lt;br /&gt;
&lt;br /&gt;
/* Images (Altium) à venir */&lt;br /&gt;
&lt;br /&gt;
Parallèlement, nous avons travaillé sur l'émission d'une gamme de sons par une pièce piézoélectrique. Sur le site de développement MBED, nous avons pu trouver une bibliothèque permettant l'élaboration d'une note et de sa durée, et par extension l'élaboration d'une mélodie.&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;mbed.h&amp;quot;&lt;br /&gt;
    #include &amp;lt;Sound.h&amp;gt;&lt;br /&gt;
    Sound sound(p21, p10);&lt;br /&gt;
    const Sound::sound_t WESTMINSTER[] =     {&lt;br /&gt;
        //   hanon siji 0:b(flat)   1:tujo  2:#(sharp)&lt;br /&gt;
        //   |  C1 - B9 kan deno onkai(Gx ha 9x ni okikae te siji)  0xFF=end data&lt;br /&gt;
        //   |  |   time (1/1[ms]/count)   &lt;br /&gt;
        //   |  |   |    envelope(yoin) (1/1 [ms]/count)&lt;br /&gt;
        //   |  |   |    |&lt;br /&gt;
            {1,0xC5,300,500},&lt;br /&gt;
            {1,0xD5,300,500},&lt;br /&gt;
            {1,0xE5,300,500},&lt;br /&gt;
            {1,0xF5,300,500},&lt;br /&gt;
            {1,0x85,300,500},&lt;br /&gt;
            {1,0x95,300,500},&lt;br /&gt;
            {1,0xA5,300,500},&lt;br /&gt;
            {1,0xB5,300,500},&lt;br /&gt;
            {1,0x75,300,500},&lt;br /&gt;
            {1,0x65,300,500},&lt;br /&gt;
            {1,0x55,300,500},&lt;br /&gt;
            {1,0xFF,1000,0},    // end&lt;br /&gt;
    };&lt;br /&gt;
    int main() {&lt;br /&gt;
         //---------------------&lt;br /&gt;
         // enso data no settei&lt;br /&gt;
         //---------------------&lt;br /&gt;
         // sound.sound_enso(&amp;quot;/local/enso.txt&amp;quot;);     // mbed local file data &amp;quot;enso.txt&amp;quot; load (sita ni data no rei wo oite oku)&lt;br /&gt;
        sound.sound_enso((Sound::sound_t*)WESTMINSTER);  &lt;br /&gt;
        //---------------------------------------------------&lt;br /&gt;
        // output tone&lt;br /&gt;
        //---------------------------------------------------&lt;br /&gt;
        // tone1 &lt;br /&gt;
        Sound::sound_t oto = {1,0x95,200,100};&lt;br /&gt;
        sound.sound_sound(oto);&lt;br /&gt;
        while(sound.sound_sound() == true){}       &lt;br /&gt;
        // tone2&lt;br /&gt;
        oto.hanon = 1; oto.onkai = 0xA5; oto.time = 2000; oto.envelope = 1000;&lt;br /&gt;
        sound.sound_sound(oto);&lt;br /&gt;
        while(sound.sound_sound() == true){}&lt;br /&gt;
        //---------------&lt;br /&gt;
        // output melody&lt;br /&gt;
        //--------------&lt;br /&gt;
        sound.sound_enso(true);&lt;br /&gt;
        while(1) {&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous travaillerons ultérieurement sur la sélection de notes à adopter.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de continuer l'élaboration des cartes électroniques, ainsi de commencer le développement des programmes finaux.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 (du 06/04/2015 au 12/04/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons continué l'élaboration des circuits électroniques. Nous avons commencé à concevoir les faces, soit les cartes contenant 9 LEDs RGB. Nous avons eu des LEDs CMS, nous avons donc dû créer ces composants sur Altium Designer.&lt;br /&gt;
&lt;br /&gt;
Parallèlement nous avons commencé à travailler sur les programmes finaux. Nous avons développé un programme permettant d'allumer une LED une par une, selon la couleur voulue, et selon le schéma suivant :&lt;br /&gt;
&lt;br /&gt;
/* Image à venir */&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;mbed.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;Random.h&amp;quot;&lt;br /&gt;
    BusOut myled(LED4,LED3,LED2,LED1);&lt;br /&gt;
    DigitalOut anode[9]={p12,p13,p14,p15,p16,p17,p18,p19,p20};&lt;br /&gt;
    BusOut base_couleur(p30,p29,p28);&lt;br /&gt;
    BusOut collecteur(p24,p23,p22);&lt;br /&gt;
    void allume_LED(int led, int face, char couleur){&lt;br /&gt;
        for (int i=0;i&amp;lt;9;i++) anode[i]=0;&lt;br /&gt;
        // sélection anode (&amp;quot;face&amp;quot;)&lt;br /&gt;
        if ((led == 1)||(led == 4)||(led == 7)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[0]=1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[3] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[6] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        else if ((led == 2)||(led == 5)||(led == 8)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[1] = 1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[4] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[7] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        else if ((led == 3)||(led == 6)||(led == 9)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[2] = 1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[5] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[8] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        // sélection collecteur (&amp;quot;ligne&amp;quot; de LEDs)&lt;br /&gt;
        if ((face == 1)||(face == 3)||(face == 5)){&lt;br /&gt;
            if ((led &amp;gt; 0) &amp;amp;&amp;amp; (led &amp;lt; 4)) collecteur.write(0);&lt;br /&gt;
            else if ((led &amp;gt; 3) &amp;amp;&amp;amp; (led &amp;lt; 7)) collecteur.write(1);&lt;br /&gt;
            else if ((led &amp;gt; 6) &amp;amp;&amp;amp; (led &amp;lt; 10)) collecteur.write(2);&lt;br /&gt;
        }&lt;br /&gt;
        else if ((face == 2)||(face == 4)||(face == 6)){&lt;br /&gt;
            if ((led &amp;gt; 0) &amp;amp;&amp;amp; (led &amp;lt; 4)) collecteur.write(3);&lt;br /&gt;
            else if ((led &amp;gt; 3) &amp;amp;&amp;amp; (led &amp;lt; 7)) collecteur.write(4);&lt;br /&gt;
            else if ((led &amp;gt; 6) &amp;amp;&amp;amp; (led &amp;lt; 10)) collecteur.write(5);&lt;br /&gt;
        }&lt;br /&gt;
        //sélection couleur (base)&lt;br /&gt;
        if (couleur == 'r') base_couleur.write(4);&lt;br /&gt;
        else if (couleur == 'g') base_couleur.write(2);&lt;br /&gt;
        else if (couleur == 'b') base_couleur.write(1);&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
A partir de ce programme, nous avons conçu une fonction affichant sur une face un chiffre selon le principe d'un dé. Chaque LED sera allumée une par une, mais avec la fréquence de travail très élevée du microprocesseur (environ 100 MHz), notre œil aura l'impression qu'elles sont allumées en même temps. La fonction prend comme paramètre le chiffre affiché, ainsi que le temps d'affichage en secondes :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    void affiche_de(int chiffre, float time){&lt;br /&gt;
    Timer t;&lt;br /&gt;
    t.start();&lt;br /&gt;
    while (t.read() &amp;lt;= time){&lt;br /&gt;
        if (chiffre == 1) allume_LED(5,1,'r');&lt;br /&gt;
        else if (chiffre == 2) {&lt;br /&gt;
            allume_LED(1,1,'r');&lt;br /&gt;
            allume_LED(9,1,'r');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 3) {&lt;br /&gt;
            allume_LED(1,1,'b');&lt;br /&gt;
            allume_LED(5,1,'b');&lt;br /&gt;
            allume_LED(9,1,'b');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 4) {&lt;br /&gt;
            allume_LED(1,1,'b');&lt;br /&gt;
            allume_LED(3,1,'b');&lt;br /&gt;
            allume_LED(7,1,'b');&lt;br /&gt;
            allume_LED(9,1,'b');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 5) {&lt;br /&gt;
            allume_LED(1,1,'g');&lt;br /&gt;
            allume_LED(3,1,'g');&lt;br /&gt;
            allume_LED(5,1,'g');&lt;br /&gt;
            allume_LED(7,1,'g');&lt;br /&gt;
            allume_LED(9,1,'g');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 6) {&lt;br /&gt;
            allume_LED(1,1,'g');&lt;br /&gt;
            allume_LED(3,1,'g');&lt;br /&gt;
            allume_LED(4,1,'g');&lt;br /&gt;
            allume_LED(6,1,'g');&lt;br /&gt;
            allume_LED(7,1,'g');&lt;br /&gt;
            allume_LED(9,1,'g');&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    t.stop();&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi paramétré un générateur d'entiers aléatoires compris entre 1 et 6. A partir d'une bibliothèque obtenue sur le site de développement MBED, nous utilisons une classe &amp;quot;Random&amp;quot; permettant de générer ce chiffre. Ici, un exemple d'affichage d'un chiffre aléatoire :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 int main() {&lt;br /&gt;
        Random r;&lt;br /&gt;
        int i;&lt;br /&gt;
        r.init();&lt;br /&gt;
        //génération d'un entier aléatoire entre 1 et 6&lt;br /&gt;
        uint8_t chiffre = r.getByte();&lt;br /&gt;
        chiffre = (chiffre % 6)+1;&lt;br /&gt;
        //petite simulation&lt;br /&gt;
        for(i=1;i&amp;lt;10;i++) {&lt;br /&gt;
            if (i&amp;lt;4) allume_LED(i,1,'r');&lt;br /&gt;
            else if ((i&amp;gt;3) &amp;amp;&amp;amp; (i&amp;lt;7)) allume_LED(i,1,'b');&lt;br /&gt;
            else if (i&amp;gt;6) allume_LED(i,1,'g');&lt;br /&gt;
            wait_ms(200);&lt;br /&gt;
        }&lt;br /&gt;
        //affichage du chiffre aléatoire&lt;br /&gt;
        if ((chiffre &amp;gt; 0) &amp;amp;&amp;amp; (chiffre &amp;lt; 7)) affiche_de(chiffre,15);&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons pu récupérer la carte électronique de multiplexage élaborée précédemment. Sur cette carte, les pistes ont été dessinées des deux côtés. Nous avons aussi obtenu un boitier de piles fonctionnant via USB que nous utiliserons comme batterie, ainsi qu'une breadboard de petite taille permettant de fixer le microcontrôleur, l'accéléromètre et la board tactile dessus.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:MUXcotecompo_recto.jpg|200px|thumb|left|Carte électronique du multiplexage des LEDs, côté composants (recto)]]&lt;br /&gt;
[[Fichier:MUX_verso.jpg|200px|thumb|centre|Carte électronique du multiplexage des LEDs (verso)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de continuer, voire de terminer l'élaboration des circuits électroniques des faces, de travailler sur la carte de multiplexage, ainsi que de continuer le développement des programmes finaux.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 (du 13/04/2015 au 19/04/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons pu avoir une discussion avec M. Boé, afin de faire le point sur notre projet. Il nous a ainsi suggéré de revoir la taille de notre cube, afin de diminuer la taille des faces. La carte de multiplexage réalisée étant trop grande, nous avons décidé d'envisager une nouvelle carte de multiplexage plus petite, pour ainsi obtenir des faces de dimension 6x6 cm environ. Nous avons aussi décidé de créer un PCB spécialement pour des piles de type CR2032, et qu'un autre pour le MBED, l'accéléromètre et la board tactile, et ainsi abandonner l'idée de la breadboard. Nous avons ainsi revu l'élaboration de la face comportant nos LEDs RGB CMS.&lt;br /&gt;
&lt;br /&gt;
Côté informatique, nous avons avancé dans notre code en créant une fonction réalisant une petite animation des LEDs, pour l'instant sur une seule face :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //une animation &amp;quot;d'ambiance&amp;quot;, pour l'instant sur une seule face&lt;br /&gt;
 void animations(float duree_anim){&lt;br /&gt;
    char couleurs[7] = {'w','j','r','p','b','g','t'};&lt;br /&gt;
    int coul_suiv,led_suiv,j;&lt;br /&gt;
    Timer t;&lt;br /&gt;
    //toutes les LEDs de la même couleur&lt;br /&gt;
    for(j=0;j&amp;lt;7;j++){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while (t.read() &amp;lt;= (duree_anim/7)){&lt;br /&gt;
            for(int i=1;i&amp;lt;10;i++) allume_LED(i,1,couleurs[j]);&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
        t.reset();&lt;br /&gt;
        //changement de couleur progressif, une LED à la fois&lt;br /&gt;
        if (j==6) coul_suiv=0;&lt;br /&gt;
        else coul_suiv=j+1;&lt;br /&gt;
        led_suiv=1;&lt;br /&gt;
        t.start();&lt;br /&gt;
        while (led_suiv &amp;lt; 10){&lt;br /&gt;
            while (t.read() &amp;lt;= (1.5/9)){&lt;br /&gt;
                for(int k=1;k&amp;lt;=led_suiv;k++) allume_LED(k,1,couleurs[coul_suiv]);&lt;br /&gt;
                for(int i=led_suiv+1;i&amp;lt;10;i++) allume_LED(i,1,couleurs[j]);&lt;br /&gt;
            }&lt;br /&gt;
            led_suiv++;&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
        t.reset();&lt;br /&gt;
    }&lt;br /&gt;
    anim=true;&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la prochaine séance sera de créer une fonction de morpion, ainsi que de tester la carte de multiplexage sur une face.&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 (du 20/04/2015 au 26/04/2015) ==&lt;br /&gt;
Durant cette semaine, nous avons continué notre code en commençant la programmation d'une fonction &amp;quot;morpion&amp;quot;. Cette fonction est assez longue à concevoir, et sera complétée d'une autre fonction vérifiant la victoire au morpion. Voici la fonction &amp;quot;morpion&amp;quot; (la fonction &amp;quot;win&amp;quot; sera élaborée plus tard) :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 void morpion(){&lt;br /&gt;
    led_eteinte();&lt;br /&gt;
    int grille[9]={0,0,0,0,0,0,0,0,0};&lt;br /&gt;
    int tour=0;&lt;br /&gt;
    char coul;&lt;br /&gt;
    bool ligne1=false, ligne2=false, ligne3=false, c1=false, c2=false, c3=false, d1=false, d2=false, gagne=false;&lt;br /&gt;
    //déroulement de la partie&lt;br /&gt;
    while ((!gagne)||(tour&amp;lt;9)){&lt;br /&gt;
        tour++;&lt;br /&gt;
        //&amp;quot;sélection&amp;quot; joueur : rouge pour joueur 1, vert pour joueur 2&lt;br /&gt;
        if ((tour%2)==1) coul='r';&lt;br /&gt;
        else coul='g';&lt;br /&gt;
        //sélection case via touches&lt;br /&gt;
        //milieu&lt;br /&gt;
        if (touche2==1) {&lt;br /&gt;
            if (grille[4]==0){&lt;br /&gt;
                allume_LED(5,2,coul);&lt;br /&gt;
                grille[4]=abs((tour%2)-2); //1 pour joueur 2, 2 pour joueur 1&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche1==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //haut gauche&lt;br /&gt;
            if (touche5==1) { &lt;br /&gt;
                if (grille[0]==0){&lt;br /&gt;
                    allume_LED(1,2,coul);&lt;br /&gt;
                    grille[0]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas gauche&lt;br /&gt;
            else if (touche6==1){ &lt;br /&gt;
                if (grille[6]==0){&lt;br /&gt;
                    allume_LED(7,2,coul);&lt;br /&gt;
                    grille[6]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //gauche&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[3]==0){&lt;br /&gt;
                    allume_LED(4,2,coul);&lt;br /&gt;
                    grille[3]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche5==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //haut gauche&lt;br /&gt;
            if (touche1==1) { &lt;br /&gt;
                if (grille[0]==0){&lt;br /&gt;
                    allume_LED(1,2,coul);&lt;br /&gt;
                    grille[0]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut droite&lt;br /&gt;
            else if (touche3==1){ &lt;br /&gt;
                if (grille[2]==0){&lt;br /&gt;
                    allume_LED(3,2,coul);&lt;br /&gt;
                    grille[2]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[1]==0){&lt;br /&gt;
                    allume_LED(2,2,coul);&lt;br /&gt;
                    grille[1]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche3==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //bas droite&lt;br /&gt;
            if (touche6==1) { &lt;br /&gt;
                if (grille[8]==0){&lt;br /&gt;
                    allume_LED(9,2,coul);&lt;br /&gt;
                    grille[8]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut droite&lt;br /&gt;
            else if (touche5==1) {&lt;br /&gt;
                if (grille[2]==0){&lt;br /&gt;
                    allume_LED(3,2,coul);&lt;br /&gt;
                    grille[2]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //droite&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[5]==0){&lt;br /&gt;
                    allume_LED(6,2,coul);&lt;br /&gt;
                    grille[5]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche6==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //bas gauche&lt;br /&gt;
            if (touche1==1) { &lt;br /&gt;
                if (grille[6]==0){&lt;br /&gt;
                    allume_LED(7,2,coul);&lt;br /&gt;
                    grille[6]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas droite&lt;br /&gt;
            else if (touche3==1){ &lt;br /&gt;
                if (grille[8]==0){&lt;br /&gt;
                    allume_LED(9,2,coul);&lt;br /&gt;
                    grille[8]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[7]==0){&lt;br /&gt;
                    allume_LED(8,2,coul);&lt;br /&gt;
                    grille[7]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        //allumage du reste de la grille&lt;br /&gt;
        for(int k=0;k&amp;lt;9;k++){&lt;br /&gt;
            if (grille[k]==1) allume_LED(k+1,2,'r');&lt;br /&gt;
            else if (grille[k]==2) allume_LED(k+1,2,'g');&lt;br /&gt;
        }&lt;br /&gt;
        //vérif ligne complétée&lt;br /&gt;
        gagne=win(grille,ligne1,ligne2,ligne3,c1,c2,c3,d1,d2);&lt;br /&gt;
    }&lt;br /&gt;
    Timer t;&lt;br /&gt;
    //vérif victoire joueur 1&lt;br /&gt;
    if(((tour%2)==1)&amp;amp;&amp;amp;(gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'r');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    //vérif victoire joueur 2&lt;br /&gt;
    else if (((tour%2)==0)&amp;amp;&amp;amp;(gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'g');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    //vérif match nul&lt;br /&gt;
    else if ((tour==9)&amp;amp;&amp;amp;(!gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'b');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    morp=true;&lt;br /&gt;
 }&lt;br /&gt;
'' &lt;br /&gt;
&lt;br /&gt;
A noter qu'ici, nous avons modélisé notre grille à l'aide d'un tableau à une dimension. Nous aurions très bien pu le faire aussi sous la forme d'une matrice à deux dimensions.&lt;br /&gt;
&lt;br /&gt;
Côté électronique, nous avons récupéré le PCB d'une face. Nous avons alors procédé au soudage des 9 LEDs CMS composant notre face, et nous avons procédé aux tests d'allumage et de multiplexage. Les LEDs s'allument comme nous le désirons.&lt;br /&gt;
&lt;br /&gt;
/* Image à venir*/&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les 2 semaines restantes sera de pouvoir au moins présenter un prototype de notre cube montrant son fonctionnement global.&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 (du 27/04/2015 au 03/05/2015) ==&lt;br /&gt;
Côté informatique, nous avons continué notre code en intégrant à notre programme final les différentes bibliothèques nécessaires : l'accéléromètre (ADXL345.h), la board tactile (MPR121.h), ainsi que pour le son de notre pièce piézoélectrique (Sound.h). Pour l'émission de ce son, nous avons repris la fonction d'émission d'une mélodie détaillée plus haut, et nous l'avons adaptée pour n'émettre qu'une seule note. Nous avons aussi créé la fonction de vérification de victoire au morpion :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //vérification victoire&lt;br /&gt;
 bool win(int grille[],bool ligne1, bool ligne2, bool ligne3, bool c1, bool c2, bool c3, bool d1, bool d2){&lt;br /&gt;
    bool v1=false, v2=false;&lt;br /&gt;
    //verif lignes&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[1]==0)&amp;amp;&amp;amp;(grille[2]==0))){&lt;br /&gt;
        v1=grille[0]==grille[1];&lt;br /&gt;
        v2=grille[1]==grille[2];&lt;br /&gt;
        ligne1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[3]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[5]==0))){&lt;br /&gt;
        v1=grille[3]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[5];&lt;br /&gt;
        ligne2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[6]==0)&amp;amp;&amp;amp;(grille[7]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[6]==grille[7];&lt;br /&gt;
        v2=grille[7]==grille[8];&lt;br /&gt;
        ligne3=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    //verif colonnes&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[3]==0)&amp;amp;&amp;amp;(grille[6]==0))){&lt;br /&gt;
        v1=grille[0]==grille[3];&lt;br /&gt;
        v2=grille[3]==grille[6];&lt;br /&gt;
        c1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[1]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[7]==0))){&lt;br /&gt;
        v1=grille[1]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[7];&lt;br /&gt;
        c2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[2]==0)&amp;amp;&amp;amp;(grille[5]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[2]==grille[5];&lt;br /&gt;
        v2=grille[5]==grille[8];&lt;br /&gt;
        c3=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    //verif diagonales&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[0]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[8];&lt;br /&gt;
        d1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[2]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[6]==0))){&lt;br /&gt;
        v1=grille[2]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[6];&lt;br /&gt;
        d2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    bool win=ligne1||ligne2;&lt;br /&gt;
    win=win||ligne3;&lt;br /&gt;
    win=win||c1;&lt;br /&gt;
    win=win||c2;&lt;br /&gt;
    win=win||c3;&lt;br /&gt;
    win=win||d1;&lt;br /&gt;
    win=win||d2;&lt;br /&gt;
    return win;&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Côté électronique, nous avons en notre possession les PCB des 6 faces du cube.&lt;br /&gt;
&lt;br /&gt;
= Fichiers Rendus =&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=D%C3%A9_%C3%A9lectronique_communiquant&amp;diff=20586</id>
		<title>Dé électronique communiquant</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=D%C3%A9_%C3%A9lectronique_communiquant&amp;diff=20586"/>
				<updated>2015-05-03T19:08:43Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cahier des charges =&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
Dans une époque où la technologie concerne le mode de vie de presque tout le monde, la plupart des gens ont tendance à se tourner vers les nouvelles technologies (smartphone, ordinateur) pour se divertir, et ainsi délaisser les anciens jeux de société. Afin de faire revivre ce genre de jeu, nous avons décidé de revisiter un pilier du jeu de société : le dé à jouer.&lt;br /&gt;
&lt;br /&gt;
=== Objectif du Projet ===&lt;br /&gt;
L'objectif de ce projet est de réaliser un dé à jouer programmable du même type que les [http://www.futurocube.com/ futurocubes].&lt;br /&gt;
&lt;br /&gt;
=== Idées de fonctionnalités === &lt;br /&gt;
Voici quelques idées d'applications qu'on pourrait mettre en place :&lt;br /&gt;
* Dé à jouer classique : chiffre aléatoire de 1 à 6&lt;br /&gt;
* Jeu du morpion (Tic Tac Toe)&lt;br /&gt;
* SNAKE fonctionnant avec l'accéléromètre&lt;br /&gt;
* Eclairage &amp;quot;d'ambiance&amp;quot; avec variation aléatoire des couleurs&lt;br /&gt;
* Modélisation d'un Rubik's Cube 3x3&lt;br /&gt;
* Jeu de mémoire couleur/son (comme le jeu Simon)&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel - utilité ===&lt;br /&gt;
Nous allons nous baser sur :&lt;br /&gt;
* un microcontrôleur de type MBED (ARM Cortex M3) [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;fourni le 2/2/2015&amp;lt;/span&amp;gt;] : Cerveau du dé - Sons/bruitages&lt;br /&gt;
&lt;br /&gt;
La documentation est disponible [http://developer.mbed.org/platforms/mbed-LPC1768/#schematics-and-data-sheets ici].&lt;br /&gt;
Les programmes implémentés seront codés en C/C++.&lt;br /&gt;
&lt;br /&gt;
Ensuite, les composants suivants doivent être intégrés :&lt;br /&gt;
* LED RGB (54 LEDs) : Elles seront multiplexés à l'aide de transistors. [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;9 LED Rouges/Jaunes fournies le 4/2/2015&amp;lt;/span&amp;gt;] 54 x [http://fr.farnell.com/avago-technologies/asmb-mtb1-0a3a2/led-rgb-plcc4-surface-noire/dp/2401106 LED] [&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;100 LEDs RGB commandées chez Farnell le 18/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
* 18 transistors NPN [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;3 fournis le 4/2/2015&amp;lt;/span&amp;gt;] &lt;br /&gt;
&lt;br /&gt;
* 18 x [http://fr.farnell.com/on-semiconductor/bc548brl1g/transistor-npn-30v-100ma-to-92/dp/2317545 Transistor] [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;20 BC548BRL1G commandées chez Farnell fournies le 11/3/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* 18 x [http://fr.farnell.com/diodes-inc/bc848b-7-f/transistor-npn-sot23/dp/1773620 Transistor CMS] [&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;100 BC848B-7-F commandées chez Farnell le 18/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
* Résistances : à voir avec les encadrants et en fonction des tests (Savoir si on doit en placer une à l'anode ou une à chaque cathode)&lt;br /&gt;
* Accéléromètre : Orientation dans l'espace et réveil de l'appareil après la détection d'un mouvement. [&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; fourni le 11/2/2015&amp;lt;/span&amp;gt;]&lt;br /&gt;
* Alimentation : Rechargeable via usb.&lt;br /&gt;
* 6 faces &amp;quot;tactiles&amp;quot; via le centre de chaque face : Possible par résistances capacitives, touches tactiles (SparkFun Touch Shield), boutons poussoirs (Tests à réaliser pour déterminer la meilleure méthode).&lt;br /&gt;
&lt;br /&gt;
== Étapes du projet ==&lt;br /&gt;
=== Étape 1 ===&lt;br /&gt;
* Choix des jeux et fonctionnalités à intégrer au dé en tenant compte des contraintes matérielles&lt;br /&gt;
* Aperçu du matériel disponible et nécessaire, puis choix des composants&lt;br /&gt;
* Élaboration du schéma électronique à adopter&lt;br /&gt;
* Découverte de la plateforme MBED&lt;br /&gt;
&lt;br /&gt;
=== Étape 2 ===&lt;br /&gt;
Cette étape occupera la plus grande partie de la durée du projet.&lt;br /&gt;
* Réalisation du code des fonctionnalités à intégrer sur la plateforme MBED&lt;br /&gt;
* Réalisation des circuits électroniques nécessaires via Altium Designer&lt;br /&gt;
* Début du montage du cube&lt;br /&gt;
&lt;br /&gt;
=== Étape 3 ===&lt;br /&gt;
* Montage final du cube&lt;br /&gt;
* Réalisation de programmes optionnels s'il reste du temps (fonctionnalités compliquées à implémenter ou pensées plus tard dans le projet)&lt;br /&gt;
* Tests des fonctionnalités sur le matériel&lt;br /&gt;
&lt;br /&gt;
= Avancée du projet =&lt;br /&gt;
== Semaine 1 (du 26/01/2015 au 01/02/2015) == &lt;br /&gt;
[[Fichier:Contrôle_DIODES.jpg|130px|thumb|Schéma multiplexage LED]]&lt;br /&gt;
Nous avons surtout porté nos recherches sur du matériel électronique spécifique, notamment pour l'aspect &amp;quot;tactile&amp;quot; de notre cube. En effet, il est possible d'utiliser les techniques suivantes :&lt;br /&gt;
* Résistance et capacité : On utilise une simple résistance et un métal conducteur. En touchant celui-ci avec notre doigt, on le transforme en capacité. On peut voir le principe [https://skyduino.wordpress.com/2012/06/02/arduino-faire-une-touche-tactile-avec-une-simple-resistance/ ici].&lt;br /&gt;
* Résistance capteur de pression : Prête à être utilisée mais assez chère. Il y a bien d'autres alternatives.&lt;br /&gt;
* [https://www.sparkfun.com/products/12013 Touch Shield] : A voir avec l'intégration des LED.&lt;br /&gt;
* Boutons réalisés sur le principe du [https://www.sparkfun.com/products/7835 Button Pad] à raison d'un par face : Dans le pire des cas ...&lt;br /&gt;
&lt;br /&gt;
Puis nous nous sommes intéressés à la connexion des LEDs. Elles seront au nombre de 54, soit 9 par face, et en plus, ce sera des LED RGB.&lt;br /&gt;
Nous avons trouvé pour cela une solution de multiplexage à l'aide de transistors NPN.&lt;br /&gt;
Voici un petit schéma du branchement possible sur une face avec 9 LEDs RGB : &lt;br /&gt;
Il sera possible de le porter à plus grande échelle par la suite.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de tester les solutions du &amp;quot;tactile&amp;quot; et le branchement des LEDs.&lt;br /&gt;
&lt;br /&gt;
Nous avons également discuté avec nos encadrants sur le matériel et ses limites, c'est-à-dire le tactile, la connexion des LEDs, l’accéléromètre (disponible à Polytech), le MBED, les sons (réalisables avec le MBED) et le côté alimentation.&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 (du 02/02/2015 au 08/02/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons surtout porté nos recherches sur la méthode de multiplexage des LEDs. Faute d'avoir des LEDs RGB, nous avons testé le multiplexage selon le schéma précédent avec 3 LEDs simples, soit une LED RGB. Nous avons réalisé le test d'allumer 1 seule des LEDs (pour avoir une couleur) puis 2 (mélange de couleurs).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test3LED1.JPG|130px|thumb|left|Test 1 multiplexage d'une LED RGB (avec 3 LEDs)]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test3LED2.JPG|130px|thumb|centre|Test 2 multiplexage d'une LED RGB (avec 3 LEDs)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé le branchement afin d'obtenir une ligne de LEDs RGB selon le schéma précédant, soient 3 fois 3 LEDs simples. On peut voir ci-dessous le branchement et le résultat du test :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:TestMUX1.JPG|130px|thumb|left|Branchement d'une ligne de 3 LEDs RGB (9 LEDs basiques)]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:TestMUX2.PNG|130px|thumb|centre|Résultat du multiplexage d'une ligne de LEDs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de tester le multiplexage des LEDs sur une face, et d'aborder le côté &amp;quot;tactile&amp;quot; du projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 (du 09/02/2015 au 15/02/2015) ==&lt;br /&gt;
&lt;br /&gt;
Suite aux résultats du multiplexage des LEDs, nous avons commencé la réalisation du codage de l'allumage de celles-ci selon le schéma complet suivant :&lt;br /&gt;
&lt;br /&gt;
Parallèlement, nous avons porté nos recherches sur l'accéléromètre ADXL335. Nous avons effectué quelques tests pour déterminer le fonctionnement exact. &lt;br /&gt;
Nous avons récupéré les valeurs de celui-ci sur les broches analogiques du MBED et à l'aide de la fonction read() qui renvoie logiquement une valeur entre 0.0 et 1.0. &lt;br /&gt;
Nous avons codé le petit programme de test suivant pour tester selon l'axe Y: &lt;br /&gt;
[[Fichier:54MUX.JPG|160px|thumb|left|Schéma complet du multiplexage]]&lt;br /&gt;
''&lt;br /&gt;
    DigitalOut myled1(LED1);&lt;br /&gt;
    DigitalOut myled2(LED2);&lt;br /&gt;
    DigitalOut myled3(LED3);&lt;br /&gt;
    DigitalOut myled4(LED4);&lt;br /&gt;
    DigitalOut verif (p5);&lt;br /&gt;
    DigitalOut verif2 (p30);&lt;br /&gt;
    AnalogIn x(p15);   // 0.4&amp;lt;X&amp;lt;0.6&lt;br /&gt;
    AnalogIn y(p16);   // 0.4&amp;lt;Y&amp;lt;0.6&lt;br /&gt;
    AnalogIn z(p17);   // 0.4&amp;lt;Z&amp;lt;0.6&lt;br /&gt;
    int main() {&lt;br /&gt;
        while(1) {&lt;br /&gt;
            wait(0.2);&lt;br /&gt;
            float m1 = x.read();&lt;br /&gt;
            float m2 = y.read();&lt;br /&gt;
            float m3 = z.read();&lt;br /&gt;
        &lt;br /&gt;
            if (m2&amp;gt;0.5) myled1=1; else myled1=0;&lt;br /&gt;
            if (m2&amp;gt;0.52) myled2=1; else myled2=0;&lt;br /&gt;
            if (m2&amp;gt;0.54) myled3=1; else myled3=0;&lt;br /&gt;
            if (m2&amp;gt;0.56) myled4=1; else myled4=0;&lt;br /&gt;
            if (m2&amp;gt;0.58) verif=1; else verif=0;&lt;br /&gt;
            if (m2&amp;gt;0.6) verif2=1; else verif2=0;}}&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut voir le résultat ici :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Testaccel.avi]]&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 (du 16/02/2015 au 22/02/2015) ==&lt;br /&gt;
Durant cette semaine, nous avons observé le comportement de l'accéléromètre via l'utilitaire Minicom et la liaison série entre le microcontrôleur et le PC. Nous avons ainsi vérifié le fonctionnement de l'accéléromètre selon chaque axe, et ainsi confirmer les pistes observées la semaine dernière. Nous avons ainsi pu réfléchir à une solution tactile pour notre dé.&lt;br /&gt;
&lt;br /&gt;
Après nos recherches sur internet, nous avons pu voir que peu de solutions sont disponibles pour notre MBED.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera ainsi d'approfondir nos recherches sur cette solution tactile.&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 (du 23/02/2015 au 01/03/2015) ==&lt;br /&gt;
Pendant cette semaine, nous avons poursuivi nos recherches sur la partie tactile de notre cube. Nous avons notamment réfléchi à 2 solutions :&lt;br /&gt;
* L'utilisation du [https://www.sparkfun.com/products/12013 SparkFun Touch Shield], que nous avons pu nous procurer. Néanmoins, ce pad est spécialement conçu pour être connecté sur Arduino Uno. Il n'est donc pas évident de l'adapter à notre MBED.&lt;br /&gt;
* La fabrication de touches tactiles &amp;quot;Do It Yourself&amp;quot; sur [https://skyduino.wordpress.com/2012/06/02/arduino-faire-une-touche-tactile-avec-une-simple-resistance/ ce modèle]. Néanmoins, le code de cette solution est fait pour fonctionner sous Arduino, il faudrait donc réfléchir à l'adapter à notre MBED.&lt;br /&gt;
&lt;br /&gt;
C'est pourquoi nous avons décidé d'emprunter une carte Arduino Uno, afin de tester ces deux solutions, et envisager de les porter sur notre MBED.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la prochaine séance sera de se décider sur la solution tactile de notre cube, ou sur une alternative à adopter.&lt;br /&gt;
&lt;br /&gt;
== Semaine 6 (du 09/03/2015 au 15/03/2015) ==&lt;br /&gt;
Lors de cette sixième semaine, nous avons continué à travailler sur la solution tactile à adopter, et nous avons spécialement étudié la manipulation des ports du microprocesseur du MBED, afin de pouvoir étudier l'utilisation de touches tactiles &amp;quot;Do It Yourself&amp;quot;. Après quelques essais infructueux, nous étions prêts à nous orienter vers une solution alternative. Nous avons aussi rendu la carte Arduino Uno qui nous avait été fournie.&lt;br /&gt;
&lt;br /&gt;
Aussi, notre commande de transistors BC548 est arrivée cette semaine, nous avons pu nous les procurer, en vue de l'élaboration de nos PCB.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de trouver la solution alternative à adopter pour l'interaction entre l'utilisateur et le dé.&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 (du 16/03/2015 au 22/03/2015) ==&lt;br /&gt;
Pendant cette semaine, une solution concernant l'interaction Utilisateur-Dé nous est arrivée : nous avons pu nous procurer un [https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/overview Adafruit MPR121 Breakout Board à 12 touches], et un autre à 8 touches. Pour sa simplicité de branchement, nous avons décidé d'utiliser celui à 12 touches. Il nous permettra de créer 6 touches tactiles, une pour chaque face. Nous connecterons cette board via les ports I²C du microcontrôleur.&lt;br /&gt;
&lt;br /&gt;
De plus, M. Boé nous a suggéré d'utiliser un accéléromètre permettant d'influer sur la consommation énergétique du microprocesseur. Il nous a ainsi fourni l'accéléromètre ADXL345, pouvant communiquer avec le microprocesseur via deux protocoles : SPI ou I²C. Nous avons tout d'abord décidé d'utiliser le protocole I²C, mais le programme-test ne fonctionnait pas comme on le voulait. L'impression des valeurs de l'accéléromètre devait se faire via une liaison série vers le PC, mais rien ne se passait à l'écran.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de terminer la configuration de l'accéléromètre, et de configurer la board tactile.&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 (du 23/03/2015 au 29/03/2015) ==&lt;br /&gt;
Nous avons continué la configuration de l'accéléromètre, en utilisant des bibliothèques obtenues sur le site de développement MBED. N'ayant pas réussi à résoudre le problème de la communication I²C, nous avons décidé d'utiliser les ports SPI pour obtenir les valeurs, avec une bibliothèque paramétrant l'utilisation des ports SPI pour l'accéléromètre. Le code suivant nous a permis d'afficher les valeurs reçues sur les ports SPI via la liaison série :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;ADXL345.h&amp;quot;&lt;br /&gt;
    ADXL345 accelerometer(p5, p6, p7, p8);&lt;br /&gt;
    Serial pc(USBTX, USBRX);&lt;br /&gt;
    int main() {&lt;br /&gt;
        int readings[3] = {0, 0, 0};&lt;br /&gt;
        pc.printf(&amp;quot;Starting ADXL345 test...\n&amp;quot;);&lt;br /&gt;
        pc.printf(&amp;quot;Device ID is: 0x%02x\n&amp;quot;, accelerometer.getDevId());&lt;br /&gt;
        //Go into standby mode to configure the device.&lt;br /&gt;
        accelerometer.setPowerControl(0x00);&lt;br /&gt;
        //Full resolution, +/-16g, 4mg/LSB.&lt;br /&gt;
        accelerometer.setDataFormatControl(0x0B);&lt;br /&gt;
        //3.2kHz data rate.&lt;br /&gt;
        accelerometer.setDataRate(ADXL345_3200HZ);&lt;br /&gt;
        //Measurement mode.&lt;br /&gt;
        accelerometer.setPowerControl(0x08);&lt;br /&gt;
        while (1) {&lt;br /&gt;
            wait(0.1);&lt;br /&gt;
            accelerometer.getOutput(readings);&lt;br /&gt;
            //13-bit, sign extended values.&lt;br /&gt;
            pc.printf(&amp;quot;%i, %i, %i\n&amp;quot;, (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi configuré la board tactile. Elle communique avec le microcontrôleur par les ports I²C. Avec une bibliothèque obtenue sur le site de développement MBED, nous avons réalisé un programme-test qui permet d'allumer les LEDs du microcontrôleur en fonction des touches actives ou non. Voici l'algorithme général de ce programme, exécuté en boucle :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //led1, led2, led3 et led4 initialement à 0&lt;br /&gt;
 Si (touche1 == 1) alors led4=1;&lt;br /&gt;
 Si (touche2 == 1) alors led3=1;&lt;br /&gt;
 Si (touche3 == 1) alors {led3=1; led4=1;}&lt;br /&gt;
 Si (touche4 == 1) alors led2=1;&lt;br /&gt;
 Si (touche5 == 1) alors {led2=1; led4=1;}&lt;br /&gt;
 Si (touche6 == 1) alors {led2=1; led3=1;}&lt;br /&gt;
 Si (touche7 == 1) alors {led2=1; led3=1; led4=1;}&lt;br /&gt;
 Si (touche8 == 1) alors led1=1;&lt;br /&gt;
 Si (touche9 == 1) alors {led1=1; led4=1;}&lt;br /&gt;
 Si (touche10 == 1) alors {led1=1; led3=1;}&lt;br /&gt;
 Si (touche11 == 1) alors {led1=1; led3=1; led4=1;}&lt;br /&gt;
 Si (touche12 == 1) alors {led1=1; led2=1;}&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de commencer l'élaboration des cartes PCB, et de paramétrer l'utilisation d'un élément piézoélectrique pour l'émission de sons.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 (du 30/03/2015 au 05/04/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons commencé à créer une carte PCB avec le logiciel Altium Designer. Nous avons tout d'abord créé la carte permettant le multiplexage des LEDs. Nous avons placé sur cette carte 18 transistors BC548, 18 résistances, ainsi qu'un décodeur 3 vers 8 74LS138, permettant d'avoir une sortie à l'état bas et les 7 autres à l'état haut, selon [http://ecee.colorado.edu/~mcclurel/sn74ls138rev5.pdf cette datasheet]. Les pistes se feront des 2 côtés de la carte. A l'issue de cette semaine, nous avons pu envoyer notre modèle au service électronique pour élaboration. &lt;br /&gt;
&lt;br /&gt;
/* Images (Altium) à venir */&lt;br /&gt;
&lt;br /&gt;
Parallèlement, nous avons travaillé sur l'émission d'une gamme de sons par une pièce piézoélectrique. Sur le site de développement MBED, nous avons pu trouver une bibliothèque permettant l'élaboration d'une note et de sa durée, et par extension l'élaboration d'une mélodie.&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;mbed.h&amp;quot;&lt;br /&gt;
    #include &amp;lt;Sound.h&amp;gt;&lt;br /&gt;
    Sound sound(p21, p10);&lt;br /&gt;
    const Sound::sound_t WESTMINSTER[] =     {&lt;br /&gt;
        //   hanon siji 0:b(flat)   1:tujo  2:#(sharp)&lt;br /&gt;
        //   |  C1 - B9 kan deno onkai(Gx ha 9x ni okikae te siji)  0xFF=end data&lt;br /&gt;
        //   |  |   time (1/1[ms]/count)   &lt;br /&gt;
        //   |  |   |    envelope(yoin) (1/1 [ms]/count)&lt;br /&gt;
        //   |  |   |    |&lt;br /&gt;
            {1,0xC5,300,500},&lt;br /&gt;
            {1,0xD5,300,500},&lt;br /&gt;
            {1,0xE5,300,500},&lt;br /&gt;
            {1,0xF5,300,500},&lt;br /&gt;
            {1,0x85,300,500},&lt;br /&gt;
            {1,0x95,300,500},&lt;br /&gt;
            {1,0xA5,300,500},&lt;br /&gt;
            {1,0xB5,300,500},&lt;br /&gt;
            {1,0x75,300,500},&lt;br /&gt;
            {1,0x65,300,500},&lt;br /&gt;
            {1,0x55,300,500},&lt;br /&gt;
            {1,0xFF,1000,0},    // end&lt;br /&gt;
    };&lt;br /&gt;
    int main() {&lt;br /&gt;
         //---------------------&lt;br /&gt;
         // enso data no settei&lt;br /&gt;
         //---------------------&lt;br /&gt;
         // sound.sound_enso(&amp;quot;/local/enso.txt&amp;quot;);     // mbed local file data &amp;quot;enso.txt&amp;quot; load (sita ni data no rei wo oite oku)&lt;br /&gt;
        sound.sound_enso((Sound::sound_t*)WESTMINSTER);  &lt;br /&gt;
        //---------------------------------------------------&lt;br /&gt;
        // output tone&lt;br /&gt;
        //---------------------------------------------------&lt;br /&gt;
        // tone1 &lt;br /&gt;
        Sound::sound_t oto = {1,0x95,200,100};&lt;br /&gt;
        sound.sound_sound(oto);&lt;br /&gt;
        while(sound.sound_sound() == true){}       &lt;br /&gt;
        // tone2&lt;br /&gt;
        oto.hanon = 1; oto.onkai = 0xA5; oto.time = 2000; oto.envelope = 1000;&lt;br /&gt;
        sound.sound_sound(oto);&lt;br /&gt;
        while(sound.sound_sound() == true){}&lt;br /&gt;
        //---------------&lt;br /&gt;
        // output melody&lt;br /&gt;
        //--------------&lt;br /&gt;
        sound.sound_enso(true);&lt;br /&gt;
        while(1) {&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous travaillerons ultérieurement sur la sélection de notes à adopter.&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de continuer l'élaboration des cartes électroniques, ainsi de commencer le développement des programmes finaux.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 (du 06/04/2015 au 12/04/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons continué l'élaboration des circuits électroniques. Nous avons commencé à concevoir les faces, soit les cartes contenant 9 LEDs RGB. Nous avons eu des LEDs CMS, nous avons donc dû créer ces composants sur Altium Designer.&lt;br /&gt;
&lt;br /&gt;
Parallèlement nous avons commencé à travailler sur les programmes finaux. Nous avons développé un programme permettant d'allumer une LED une par une, selon la couleur voulue, et selon le schéma suivant :&lt;br /&gt;
&lt;br /&gt;
/* Image à venir */&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    #include &amp;quot;mbed.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;Random.h&amp;quot;&lt;br /&gt;
    BusOut myled(LED4,LED3,LED2,LED1);&lt;br /&gt;
    DigitalOut anode[9]={p12,p13,p14,p15,p16,p17,p18,p19,p20};&lt;br /&gt;
    BusOut base_couleur(p30,p29,p28);&lt;br /&gt;
    BusOut collecteur(p24,p23,p22);&lt;br /&gt;
    void allume_LED(int led, int face, char couleur){&lt;br /&gt;
        for (int i=0;i&amp;lt;9;i++) anode[i]=0;&lt;br /&gt;
        // sélection anode (&amp;quot;face&amp;quot;)&lt;br /&gt;
        if ((led == 1)||(led == 4)||(led == 7)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[0]=1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[3] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[6] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        else if ((led == 2)||(led == 5)||(led == 8)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[1] = 1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[4] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[7] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        else if ((led == 3)||(led == 6)||(led == 9)){&lt;br /&gt;
            if ((face == 1) || (face == 2)) anode[2] = 1;&lt;br /&gt;
            else if ((face == 3) || (face == 4)) anode[5] = 1;&lt;br /&gt;
            else if ((face == 5) || (face == 6)) anode[8] = 1;&lt;br /&gt;
        }&lt;br /&gt;
        // sélection collecteur (&amp;quot;ligne&amp;quot; de LEDs)&lt;br /&gt;
        if ((face == 1)||(face == 3)||(face == 5)){&lt;br /&gt;
            if ((led &amp;gt; 0) &amp;amp;&amp;amp; (led &amp;lt; 4)) collecteur.write(0);&lt;br /&gt;
            else if ((led &amp;gt; 3) &amp;amp;&amp;amp; (led &amp;lt; 7)) collecteur.write(1);&lt;br /&gt;
            else if ((led &amp;gt; 6) &amp;amp;&amp;amp; (led &amp;lt; 10)) collecteur.write(2);&lt;br /&gt;
        }&lt;br /&gt;
        else if ((face == 2)||(face == 4)||(face == 6)){&lt;br /&gt;
            if ((led &amp;gt; 0) &amp;amp;&amp;amp; (led &amp;lt; 4)) collecteur.write(3);&lt;br /&gt;
            else if ((led &amp;gt; 3) &amp;amp;&amp;amp; (led &amp;lt; 7)) collecteur.write(4);&lt;br /&gt;
            else if ((led &amp;gt; 6) &amp;amp;&amp;amp; (led &amp;lt; 10)) collecteur.write(5);&lt;br /&gt;
        }&lt;br /&gt;
        //sélection couleur (base)&lt;br /&gt;
        if (couleur == 'r') base_couleur.write(4);&lt;br /&gt;
        else if (couleur == 'g') base_couleur.write(2);&lt;br /&gt;
        else if (couleur == 'b') base_couleur.write(1);&lt;br /&gt;
    }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
A partir de ce programme, nous avons conçu une fonction affichant sur une face un chiffre selon le principe d'un dé. Chaque LED sera allumée une par une, mais avec la fréquence de travail très élevée du microprocesseur (environ 100 MHz), notre œil aura l'impression qu'elles sont allumées en même temps. La fonction prend comme paramètre le chiffre affiché, ainsi que le temps d'affichage en secondes :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
    void affiche_de(int chiffre, float time){&lt;br /&gt;
    Timer t;&lt;br /&gt;
    t.start();&lt;br /&gt;
    while (t.read() &amp;lt;= time){&lt;br /&gt;
        if (chiffre == 1) allume_LED(5,1,'r');&lt;br /&gt;
        else if (chiffre == 2) {&lt;br /&gt;
            allume_LED(1,1,'r');&lt;br /&gt;
            allume_LED(9,1,'r');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 3) {&lt;br /&gt;
            allume_LED(1,1,'b');&lt;br /&gt;
            allume_LED(5,1,'b');&lt;br /&gt;
            allume_LED(9,1,'b');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 4) {&lt;br /&gt;
            allume_LED(1,1,'b');&lt;br /&gt;
            allume_LED(3,1,'b');&lt;br /&gt;
            allume_LED(7,1,'b');&lt;br /&gt;
            allume_LED(9,1,'b');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 5) {&lt;br /&gt;
            allume_LED(1,1,'g');&lt;br /&gt;
            allume_LED(3,1,'g');&lt;br /&gt;
            allume_LED(5,1,'g');&lt;br /&gt;
            allume_LED(7,1,'g');&lt;br /&gt;
            allume_LED(9,1,'g');&lt;br /&gt;
        }&lt;br /&gt;
        else if (chiffre == 6) {&lt;br /&gt;
            allume_LED(1,1,'g');&lt;br /&gt;
            allume_LED(3,1,'g');&lt;br /&gt;
            allume_LED(4,1,'g');&lt;br /&gt;
            allume_LED(6,1,'g');&lt;br /&gt;
            allume_LED(7,1,'g');&lt;br /&gt;
            allume_LED(9,1,'g');&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    t.stop();&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Nous avons aussi paramétré un générateur d'entiers aléatoires compris entre 1 et 6. A partir d'une bibliothèque obtenue sur le site de développement MBED, nous utilisons une classe &amp;quot;Random&amp;quot; permettant de générer ce chiffre. Ici, un exemple d'affichage d'un chiffre aléatoire :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 int main() {&lt;br /&gt;
        Random r;&lt;br /&gt;
        int i;&lt;br /&gt;
        r.init();&lt;br /&gt;
        //génération d'un entier aléatoire entre 1 et 6&lt;br /&gt;
        uint8_t chiffre = r.getByte();&lt;br /&gt;
        chiffre = (chiffre % 6)+1;&lt;br /&gt;
        //petite simulation&lt;br /&gt;
        for(i=1;i&amp;lt;10;i++) {&lt;br /&gt;
            if (i&amp;lt;4) allume_LED(i,1,'r');&lt;br /&gt;
            else if ((i&amp;gt;3) &amp;amp;&amp;amp; (i&amp;lt;7)) allume_LED(i,1,'b');&lt;br /&gt;
            else if (i&amp;gt;6) allume_LED(i,1,'g');&lt;br /&gt;
            wait_ms(200);&lt;br /&gt;
        }&lt;br /&gt;
        //affichage du chiffre aléatoire&lt;br /&gt;
        if ((chiffre &amp;gt; 0) &amp;amp;&amp;amp; (chiffre &amp;lt; 7)) affiche_de(chiffre,15);&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons pu récupérer la carte électronique de multiplexage élaborée précédemment. Sur cette carte, les pistes ont été dessinées des deux côtés. Nous avons aussi obtenu un boitier de piles fonctionnant via USB que nous utiliserons comme batterie, ainsi qu'une breadboard de petite taille permettant de fixer le microcontrôleur, l'accéléromètre et la board tactile dessus.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:MUXcotecompo_recto.jpg|200px|thumb|left|Carte électronique du multiplexage des LEDs, côté composants (recto)]]&lt;br /&gt;
[[Fichier:MUX_verso.jpg|200px|thumb|centre|Carte électronique du multiplexage des LEDs (verso)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la semaine prochaine sera de continuer, voire de terminer l'élaboration des circuits électroniques des faces, de travailler sur la carte de multiplexage, ainsi que de continuer le développement des programmes finaux.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11 (du 13/04/2015 au 19/04/2015) ==&lt;br /&gt;
Lors de cette semaine, nous avons pu avoir une discussion avec M. Boé, afin de faire le point sur notre projet. Il nous a ainsi suggéré de revoir la taille de notre cube, afin de diminuer la taille des faces. La carte de multiplexage réalisée étant trop grande, nous avons décidé d'envisager une nouvelle carte de multiplexage plus petite, pour ainsi obtenir des faces de dimension 6x6 cm environ. Nous avons aussi décidé de créer un PCB spécialement pour des piles de type CR2032, et qu'un autre pour le MBED, l'accéléromètre et la board tactile, et ainsi abandonner l'idée de la breadboard. Nous avons ainsi revu l'élaboration de la face comportant nos LEDs RGB CMS.&lt;br /&gt;
&lt;br /&gt;
Côté informatique, nous avons avancé dans notre code en créant une fonction réalisant une petite animation des LEDs, pour l'instant sur une seule face :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //une animation &amp;quot;d'ambiance&amp;quot;, pour l'instant sur une seule face&lt;br /&gt;
 void animations(float duree_anim){&lt;br /&gt;
    char couleurs[7] = {'w','j','r','p','b','g','t'};&lt;br /&gt;
    int coul_suiv,led_suiv,j;&lt;br /&gt;
    Timer t;&lt;br /&gt;
    //toutes les LEDs de la même couleur&lt;br /&gt;
    for(j=0;j&amp;lt;7;j++){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while (t.read() &amp;lt;= (duree_anim/7)){&lt;br /&gt;
            for(int i=1;i&amp;lt;10;i++) allume_LED(i,1,couleurs[j]);&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
        t.reset();&lt;br /&gt;
        //changement de couleur progressif, une LED à la fois&lt;br /&gt;
        if (j==6) coul_suiv=0;&lt;br /&gt;
        else coul_suiv=j+1;&lt;br /&gt;
        led_suiv=1;&lt;br /&gt;
        t.start();&lt;br /&gt;
        while (led_suiv &amp;lt; 10){&lt;br /&gt;
            while (t.read() &amp;lt;= (1.5/9)){&lt;br /&gt;
                for(int k=1;k&amp;lt;=led_suiv;k++) allume_LED(k,1,couleurs[coul_suiv]);&lt;br /&gt;
                for(int i=led_suiv+1;i&amp;lt;10;i++) allume_LED(i,1,couleurs[j]);&lt;br /&gt;
            }&lt;br /&gt;
            led_suiv++;&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
        t.reset();&lt;br /&gt;
    }&lt;br /&gt;
    anim=true;&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
L'objectif pour la prochaine séance sera de créer une fonction de morpion, ainsi que de tester la carte de multiplexage sur une face.&lt;br /&gt;
&lt;br /&gt;
== Semaine 12 (du 20/04/2015 au 26/04/2015) ==&lt;br /&gt;
Durant cette semaine, nous avons continué notre code en commençant la programmation d'une fonction &amp;quot;morpion&amp;quot;. Cette fonction est assez longue à concevoir, et sera complétée d'une autre fonction vérifiant la victoire au morpion. Voici la fonction &amp;quot;morpion&amp;quot; (la fonction &amp;quot;win&amp;quot; sera élaborée plus tard) :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 void morpion(){&lt;br /&gt;
    led_eteinte();&lt;br /&gt;
    int grille[9]={0,0,0,0,0,0,0,0,0};&lt;br /&gt;
    int tour=0;&lt;br /&gt;
    char coul;&lt;br /&gt;
    bool ligne1=false, ligne2=false, ligne3=false, c1=false, c2=false, c3=false, d1=false, d2=false, gagne=false;&lt;br /&gt;
    //déroulement de la partie&lt;br /&gt;
    while ((!gagne)||(tour&amp;lt;9)){&lt;br /&gt;
        tour++;&lt;br /&gt;
        //&amp;quot;sélection&amp;quot; joueur : rouge pour joueur 1, vert pour joueur 2&lt;br /&gt;
        if ((tour%2)==1) coul='r';&lt;br /&gt;
        else coul='g';&lt;br /&gt;
        //sélection case via touches&lt;br /&gt;
        //milieu&lt;br /&gt;
        if (touche2==1) {&lt;br /&gt;
            if (grille[4]==0){&lt;br /&gt;
                allume_LED(5,2,coul);&lt;br /&gt;
                grille[4]=abs((tour%2)-2); //1 pour joueur 2, 2 pour joueur 1&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche1==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //haut gauche&lt;br /&gt;
            if (touche5==1) { &lt;br /&gt;
                if (grille[0]==0){&lt;br /&gt;
                    allume_LED(1,2,coul);&lt;br /&gt;
                    grille[0]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas gauche&lt;br /&gt;
            else if (touche6==1){ &lt;br /&gt;
                if (grille[6]==0){&lt;br /&gt;
                    allume_LED(7,2,coul);&lt;br /&gt;
                    grille[6]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //gauche&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[3]==0){&lt;br /&gt;
                    allume_LED(4,2,coul);&lt;br /&gt;
                    grille[3]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche5==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //haut gauche&lt;br /&gt;
            if (touche1==1) { &lt;br /&gt;
                if (grille[0]==0){&lt;br /&gt;
                    allume_LED(1,2,coul);&lt;br /&gt;
                    grille[0]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut droite&lt;br /&gt;
            else if (touche3==1){ &lt;br /&gt;
                if (grille[2]==0){&lt;br /&gt;
                    allume_LED(3,2,coul);&lt;br /&gt;
                    grille[2]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[1]==0){&lt;br /&gt;
                    allume_LED(2,2,coul);&lt;br /&gt;
                    grille[1]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche3==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //bas droite&lt;br /&gt;
            if (touche6==1) { &lt;br /&gt;
                if (grille[8]==0){&lt;br /&gt;
                    allume_LED(9,2,coul);&lt;br /&gt;
                    grille[8]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //haut droite&lt;br /&gt;
            else if (touche5==1) {&lt;br /&gt;
                if (grille[2]==0){&lt;br /&gt;
                    allume_LED(3,2,coul);&lt;br /&gt;
                    grille[2]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //droite&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[5]==0){&lt;br /&gt;
                    allume_LED(6,2,coul);&lt;br /&gt;
                    grille[5]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (touche6==1) {&lt;br /&gt;
            wait(1);&lt;br /&gt;
            //bas gauche&lt;br /&gt;
            if (touche1==1) { &lt;br /&gt;
                if (grille[6]==0){&lt;br /&gt;
                    allume_LED(7,2,coul);&lt;br /&gt;
                    grille[6]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas droite&lt;br /&gt;
            else if (touche3==1){ &lt;br /&gt;
                if (grille[8]==0){&lt;br /&gt;
                    allume_LED(9,2,coul);&lt;br /&gt;
                    grille[8]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            //bas&lt;br /&gt;
            else {&lt;br /&gt;
                if (grille[7]==0){&lt;br /&gt;
                    allume_LED(8,2,coul);&lt;br /&gt;
                    grille[7]=abs((tour%2)-2);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        //allumage du reste de la grille&lt;br /&gt;
        for(int k=0;k&amp;lt;9;k++){&lt;br /&gt;
            if (grille[k]==1) allume_LED(k+1,2,'r');&lt;br /&gt;
            else if (grille[k]==2) allume_LED(k+1,2,'g');&lt;br /&gt;
        }&lt;br /&gt;
        //vérif ligne complétée&lt;br /&gt;
        gagne=win(grille,ligne1,ligne2,ligne3,c1,c2,c3,d1,d2);&lt;br /&gt;
    }&lt;br /&gt;
    Timer t;&lt;br /&gt;
    //vérif victoire joueur 1&lt;br /&gt;
    if(((tour%2)==1)&amp;amp;&amp;amp;(gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'r');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    //vérif victoire joueur 2&lt;br /&gt;
    else if (((tour%2)==0)&amp;amp;&amp;amp;(gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'g');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    //vérif match nul&lt;br /&gt;
    else if ((tour==9)&amp;amp;&amp;amp;(!gagne)){&lt;br /&gt;
        t.start();&lt;br /&gt;
        while(t.read()&amp;lt;=5){&lt;br /&gt;
            for(int i=0;i&amp;lt;9;i++){&lt;br /&gt;
                allume_LED(i,2,'b');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        t.stop();&lt;br /&gt;
    }&lt;br /&gt;
    morp=true;&lt;br /&gt;
 }&lt;br /&gt;
'' &lt;br /&gt;
&lt;br /&gt;
A noter qu'ici, nous avons modélisé notre grille à l'aide d'un tableau à une dimension. Nous aurions très bien pu le faire aussi sous la forme d'une matrice à deux dimensions.&lt;br /&gt;
&lt;br /&gt;
Côté électronique, nous avons récupéré le PCB d'une face. Nous avons alors procédé au soudage des 9 LEDs CMS composant notre face, et nous avons procédé aux tests d'allumage et de multiplexage. Les LEDs s'allument comme nous le désirons.&lt;br /&gt;
&lt;br /&gt;
/* Image à venir*/&lt;br /&gt;
&lt;br /&gt;
L'objectif pour les 2 semaines restantes sera de pouvoir présenter au moins un prototype de notre cube montrant son fonctionnement global.&lt;br /&gt;
&lt;br /&gt;
== Semaine 13 (du 27/04/2015 au 03/05/2015) ==&lt;br /&gt;
Côté informatique, nous avons continué notre code en intégrant à notre programme final les différentes bibliothèques nécessaires : l'accéléromètre (ADXL345.h), la board tactile (MPR121.h), ainsi que pour le son de notre pièce piézoélectrique (Sound.h). Pour l'émission de ce son, nous avons repris la fonction d'émission d'une mélodie détaillée plus haut, et nous l'avons adaptée pour n'émettre qu'une seule note. Nous avons aussi créé la fonction de vérification de victoire au morpion :&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
 //vérification victoire&lt;br /&gt;
 bool win(int grille[],bool ligne1, bool ligne2, bool ligne3, bool c1, bool c2, bool c3, bool d1, bool d2){&lt;br /&gt;
    bool v1=false, v2=false;&lt;br /&gt;
    //verif lignes&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[1]==0)&amp;amp;&amp;amp;(grille[2]==0))){&lt;br /&gt;
        v1=grille[0]==grille[1];&lt;br /&gt;
        v2=grille[1]==grille[2];&lt;br /&gt;
        ligne1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[3]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[5]==0))){&lt;br /&gt;
        v1=grille[3]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[5];&lt;br /&gt;
        ligne2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[6]==0)&amp;amp;&amp;amp;(grille[7]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[6]==grille[7];&lt;br /&gt;
        v2=grille[7]==grille[8];&lt;br /&gt;
        ligne3=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    //verif colonnes&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[3]==0)&amp;amp;&amp;amp;(grille[6]==0))){&lt;br /&gt;
        v1=grille[0]==grille[3];&lt;br /&gt;
        v2=grille[3]==grille[6];&lt;br /&gt;
        c1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[1]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[7]==0))){&lt;br /&gt;
        v1=grille[1]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[7];&lt;br /&gt;
        c2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[2]==0)&amp;amp;&amp;amp;(grille[5]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[2]==grille[5];&lt;br /&gt;
        v2=grille[5]==grille[8];&lt;br /&gt;
        c3=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    //verif diagonales&lt;br /&gt;
    if (!((grille[0]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[8]==0))){&lt;br /&gt;
        v1=grille[0]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[8];&lt;br /&gt;
        d1=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    if (!((grille[2]==0)&amp;amp;&amp;amp;(grille[4]==0)&amp;amp;&amp;amp;(grille[6]==0))){&lt;br /&gt;
        v1=grille[2]==grille[4];&lt;br /&gt;
        v2=grille[4]==grille[6];&lt;br /&gt;
        d2=v1&amp;amp;&amp;amp;v2;&lt;br /&gt;
    }&lt;br /&gt;
    bool win=ligne1||ligne2;&lt;br /&gt;
    win=win||ligne3;&lt;br /&gt;
    win=win||c1;&lt;br /&gt;
    win=win||c2;&lt;br /&gt;
    win=win||c3;&lt;br /&gt;
    win=win||d1;&lt;br /&gt;
    win=win||d2;&lt;br /&gt;
    return win;&lt;br /&gt;
 }&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Côté électronique, nous avons en notre possession les PCB des 6 faces du cube.&lt;br /&gt;
&lt;br /&gt;
= Fichiers Rendus =&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:MUXcotecompo_recto.jpg&amp;diff=20585</id>
		<title>Fichier:MUXcotecompo recto.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:MUXcotecompo_recto.jpg&amp;diff=20585"/>
				<updated>2015-05-03T18:56:03Z</updated>
		
		<summary type="html">&lt;p&gt;Mzeggai : PCB multiplexage côté composants (sans les composants, recto)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PCB multiplexage côté composants (sans les composants, recto)&lt;/div&gt;</summary>
		<author><name>Mzeggai</name></author>	</entry>

	</feed>